[mpich2-commits] r7494 - in mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc: . config contrib/dist doc include include/hwloc include/private m4 src tests tests/embedded tests/linux tests/linux/gather tests/ports tests/ports/include tests/ports/include/sys tests/xml utils

balaji at mcs.anl.gov balaji at mcs.anl.gov
Wed Nov 24 03:21:55 CST 2010


Author: balaji
Date: 2010-11-24 03:21:55 -0600 (Wed, 24 Nov 2010)
New Revision: 7494

Added:
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/bitmap.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cuda.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cudart.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/myriexpress.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cuda.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cudart.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_first_last_weight.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_singlify.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_string.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.exclude
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.exclude
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.source
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.bz2
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/test-gather-topology.sh.in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/hwloc-gather-topology.sh.in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/myriexpress.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xmlbuffer.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.1in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/misc.h
Removed:
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_first_last_weight.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_singlify.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_string.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.options
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz.output
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather-topology.sh.in
Modified:
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/AUTHORS
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/COPYING
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/HACKING
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/README
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/autogen.sh
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/distscript.csh
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc.m4
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_attributes.m4
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_visibility.m4
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_internal.m4
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/contrib/dist/make_dist_tarball
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen-config.cfg.in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen.cfg
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc-hello.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc.doxy
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/config.h.in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cpuset.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/glibc-sched.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/helper.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux-libnuma.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/openfabrics-verbs.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/rename.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/cpuid.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/debug.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/misc.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/private.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/m4/decl.m4
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/bind.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/cpuset.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/dolib.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/hwloc.dtd
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/misc.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-aix.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-darwin.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-freebsd.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-hpux.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-osf.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-solaris.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-synthetic.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-x86.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-xml.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/traversal.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/do_test.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/main.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/run-embedded-tests.sh
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/glibc-sched.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bind.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_cache_covering_cpuset.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_closest_objs.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_largest_objs_inside_cpuset.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_next_obj_covering_cpuset.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_below_array_by_type.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_covering_cpuset.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_inside_cpuset.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_shared_cache_covering_obj.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_insert_misc.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_is_thissystem.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_object_userdata.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_synthetic.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_type_depth.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux-libnuma.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/README
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/test-topology.sh.in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/openfabrics-verbs.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/cpuset.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/kstat.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/numa.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/pthread_np.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/radset.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/cpuset.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/lgrp_user.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/mpctl.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/processor.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/procset.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/rset.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/sysctl.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/thread.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/windows.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16amd64-8n2c-cpusets.xml
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t-offlines.xml
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t.xml
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/8em64t-2mi2ma2c.xml
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/test-topology.sh.in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/Makefile.am
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.1in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.1in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.1in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc.7in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-cairo.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-color.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-draw.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-fig.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-text.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-windows.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-xml.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.1in
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.c
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.h
   mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/test-hwloc-distrib.sh.in
Log:
Updated hwloc version to 1.1rc3. MPICH2 specific patches to follow.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/AUTHORS
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/AUTHORS	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/AUTHORS	2010-11-24 09:21:55 UTC (rev 7494)
@@ -5,3 +5,4 @@
 Nathalie Furmento <Nathalie.Furmento at labri.fr>
 Samuel Thibault <Samuel.Thibault at labri.fr>
 Jeff Squyres <jsquyres at cisco.com>
+Alexey Kardashevskiy <aik at au1.ibm.com>

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/COPYING
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/COPYING	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/COPYING	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
-Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
-All rights reserved.
+Copyright © 2009 CNRS
+Copyright © 2009 INRIA
+Copyright © 2009 Université Bordeaux 1
 Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
 
 Redistribution and use in source and binary forms, with or without

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/HACKING
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/HACKING	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/HACKING	2010-11-24 09:21:55 UTC (rev 7494)
@@ -18,10 +18,19 @@
   flavor of "make dist" will fail if these tools are not available):
 
   - doxygen with man, pdf and html support
-  - help2man
-  - fig2dev
-  - w3m
+  - a latex distribution with pdflatex, and the usually recommended
+    package files (such as float.sty) and fonts (such as ptmr8t)
+  - fig2dev (transfig package)
+  - gs (ghostscript package)
+  - epstopdf
+  - w3m or lynx (to generate the README)
 
+  On Debian systems, the following packages should be enough:
+    doxygen ghostscript texlive-latex-base texlive-latex-recommended 
+    texlive-fonts-recommended texlive-font-utils transfig w3m
+  On RedHat systems:
+    ghostscript doxygen transfig tetex tetex-latex w3m
+
 - *** BEFORE MAKING AN OFFICIAL RELEASE TARBALL: the release manager
   MUST update the VERSION file:
 
@@ -53,11 +62,12 @@
   "make check".
 
 - For the windows zipball, make sure you have Microsoft's lib tool in
-  PATH, and remember to copy README and NEWS at the root of the zip into
-  README.txt and NEWS.txt files with CRLF:
+  PATH, to pass --enable-static to ./configure, and remember to copy README and
+  NEWS at the root of the zip into README.txt and NEWS.txt files with CRLF:
 
   sed -e 's/$/'$'\015'/ < README > $prefix/README.txt
   sed -e 's/$/'$'\015'/ < NEWS > $prefix/NEWS.txt
+  sed -e 's/$/'$'\015'/ < COPYING > $prefix/COPYING.txt
 
 - make maintainer-clean can be used to properly remove the generated
   documentations.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,5 @@
-# Copyright © 2009      INRIA, Université Bordeaux 1
+# Copyright © 2009      INRIA
+# Copyright © 2009      Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 # Note that the -I directory must *exactly* match what was specified

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/NEWS	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,6 @@
-Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+Copyright © 2009 CNRS
+Copyright © 2009-2010 INRIA
+Copyright © 2009-2010 Université Bordeaux 1
 Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 $COPYRIGHT$
@@ -14,6 +16,55 @@
 0.9 (as initially released as "libtopology", then re-branded to "hwloc"
 in v0.9.1).
 
+Version 1.1.0
+-------------
+
+* API
+  + Increase HWLOC_API_VERSION to 0x00010100 so that API changes may be
+    detected at build-time.
+  + Add a memory binding interface.
+  + The cpuset API (hwloc/cpuset.h) is now deprecated. It is replaced by
+    the bitmap API (hwloc/bitmap.h) which offers the same features with more
+    generic names since it applies to CPU sets, node sets and more.
+    Backward compatibility with the cpuset API and ABI is still provided but
+    it will be removed in a future release.
+    Old types (hwloc_cpuset_t, ...) are still available as a way to clarify
+    what kind of hwloc_bitmap_t each API function manipulates.
+    Upgrading to the new API only requires to replace hwloc_cpuset_ function
+    calls with the corresponding hwloc_bitmap_ calls, with the following
+    renaming exceptions:
+    - hwloc_cpuset_cpu -> hwloc_bitmap_only
+    - hwloc_cpuset_all_but_cpu -> hwloc_bitmap_allbut
+    - hwloc_cpuset_from_string -> hwloc_bitmap_sscanf
+  + Add an `infos' array in each object to store couples of info names and
+    values. It enables generic storage of things like the old dmi board infos
+    that were previously stored in machine specific attributes.
+  + Add linesize cache attribute.
+* Features
+  + Bitmaps (and thus CPU sets and node sets) are dynamically (re-)allocated,
+    the maximal number of CPUs (HWLOC_NBMAXCPUS) has been removed.
+  + Improve the distance-based grouping code to better support irregular
+    distance matrices.
+  + Add support for device-tree to get cache information (useful on Power
+    architectures).
+* Helpers
+  + Add NVIDIA CUDA helpers in cuda.h and cudart.h to ease interoperability
+    with CUDA Runtime and Driver APIs.
+  + Add Myrinet Express helper in myriexpress.h to ease interoperability.
+* Tools
+  + Add hwloc-ps to list process' bindings.
+  + Add --membind and --mempolicy options to hwloc-bind.
+  + Improve tools command-line options by adding a generic --input option
+    (and more) which replaces the old --xml, --synthetic and --fsys-root.
+  + Cleanup lstopo output configuration by adding --output-format.
+  + Add --intersect in hwloc-calc, and replace --objects with --largest.
+  + Add the ability to work on standard input in hwloc-calc.
+  + Add --from, --to and --at in hwloc-distrib.
+  + Add taskset-specific functions and command-line tools options to
+    manipulate CPU set strings in the format of the taskset program.
+  + Install hwloc-gather-topology.sh on Linux.
+
+
 Version 1.0.2
 -------------
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/README
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/README	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/README	2010-11-24 09:21:55 UTC (rev 7494)
@@ -23,7 +23,7 @@
 hwloc supports the following operating systems:
 
   * Linux (including old kernels not having sysfs topology information, with
- knowledge of cpusets, offline cpus, and Kerrighed support)
+ knowledge of cpusets, offline cpus, ScaleMP vSMP, and Kerrighed support)
   * Solaris
   * AIX
   * Darwin / OS X
@@ -44,12 +44,12 @@
 
 hwloc can display the topology in a human-readable format, either in graphical
 mode (X11), or by exporting in one of several different formats, including:
-plain text, PDF, PNG, and FIG (see Examples below). Note that some of the
+plain text, PDF, PNG, and FIG (see CLI Examples below). Note that some of the
 export formats require additional support libraries.
 
 hwloc offers a programming interface for manipulating topologies and objects.
 It also brings a powerful CPU bitmap API that is used to describe topology
-objects location on physical/logical processors. See the Programming interface
+objects location on physical/logical processors. See the Programming Interface
 below. It may also be used to binding applications onto certain cores or memory
 nodes. Several utility programs are also provided to ease command-line
 manipulation of topology objects, binding of processes, and so on.
@@ -84,13 +84,15 @@
 package can be found when hwloc is configured and build. Similarly, lstopo's
 XML support requires the libxml2 development package.
 
-Examples
+CLI Examples
 
 On a 4-socket 2-core machine with hyperthreading, the lstopo tool may show the
-following outputs:
+following graphic output:
 
                                dudley.png
 
+Here's the equivalent output in textual form:
+
 Machine (16GB)
   Socket #0 + L3 #0 (4096KB)
  L2 #0 (1024KB) + L1 #0 (16KB) + Core #0
@@ -121,11 +123,80 @@
    PU #14 (phys=7)
    PU #15 (phys=15)
 
+Finally, here's the equivalent output in XML. Long lines were artificially
+broken for document clarity (in the real output, each XML tag is on a single
+line), and only socket #0 is shown for brevity:
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000ffff"
+   complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff"
+   allowed_cpuset="0x0000ffff"
+   dmi_board_vendor="Dell Computer Corporation" dmi_board_name="0RD318"
+   local_memory="16648183808">
+ <page_type size="4096" count="4064498"/>
+ <page_type size="2097152" count="0"/>
+ <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111"
+     complete_cpuset="0x00001111" online_cpuset="0x00001111"
+     allowed_cpuset="0x00001111">
+   <object type="Cache" os_level="-1" cpuset="0x00001111"
+       complete_cpuset="0x00001111" online_cpuset="0x00001111"
+       allowed_cpuset="0x00001111" cache_size="4194304" depth="3"
+       cache_linesize="64">
+     <object type="Cache" os_level="-1" cpuset="0x00000101"
+         complete_cpuset="0x00000101" online_cpuset="0x00000101"
+         allowed_cpuset="0x00000101" cache_size="1048576" depth="2"
+         cache_linesize="64">
+       <object type="Cache" os_level="-1" cpuset="0x00000101"
+           complete_cpuset="0x00000101" online_cpuset="0x00000101"
+           allowed_cpuset="0x00000101" cache_size="16384" depth="1"
+           cache_linesize="64">
+         <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101"
+             complete_cpuset="0x00000101" online_cpuset="0x00000101"
+             allowed_cpuset="0x00000101">
+           <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001"
+               complete_cpuset="0x00000001" online_cpuset="0x00000001"
+               allowed_cpuset="0x00000001"/>
+           <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100"
+               complete_cpuset="0x00000100" online_cpuset="0x00000100"
+               allowed_cpuset="0x00000100"/>
+         </object>
+       </object>
+     </object>
+     <object type="Cache" os_level="-1" cpuset="0x00001010"
+         complete_cpuset="0x00001010" online_cpuset="0x00001010"
+         allowed_cpuset="0x00001010" cache_size="1048576" depth="2"
+         cache_linesize="64">
+       <object type="Cache" os_level="-1" cpuset="0x00001010"
+           complete_cpuset="0x00001010" online_cpuset="0x00001010"
+           allowed_cpuset="0x00001010" cache_size="16384" depth="1"
+           cache_linesize="64">
+         <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010"
+             complete_cpuset="0x00001010" online_cpuset="0x00001010"
+             allowed_cpuset="0x00001010">
+           <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010"
+               complete_cpuset="0x00000010" online_cpuset="0x00000010"
+               allowed_cpuset="0x00000010"/>
+           <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000"
+               complete_cpuset="0x00001000" online_cpuset="0x00001000"
+               allowed_cpuset="0x00001000"/>
+         </object>
+       </object>
+     </object>
+   </object>
+ </object>
+ <!-- ...other sockets listed here ... -->
+  </object>
+</topology>
+
 On a 4-socket 2-core Opteron NUMA machine, the lstopo tool may show the
-following outputs:
+following graphic output:
 
                                hagrid.png
 
+Here's the equivalent output in textual form:
+
 Machine (64GB)
   NUMANode #0 (phys=0 8190MB) + Socket #0
  L2 #0 (1024KB) + L1 #0 (64KB) + Core #0 + PU #0 (phys=0)
@@ -152,11 +223,62 @@
  L2 #14 (1024KB) + L1 #14 (64KB) + Core #14 + PU #14 (phys=14)
  L2 #15 (1024KB) + L1 #15 (64KB) + Core #15 + PU #15 (phys=15)
 
+And here's the equivalent output in XML. Similar to above, line breaks were
+added and only PU#0 is shown for brevity:
+
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x000000ff"
+   complete_cpuset="0x000000ff" online_cpuset="0x000000ff"
+   allowed_cpuset="0x000000ff" nodeset="0x000000ff"
+   complete_nodeset="0x000000ff" allowed_nodeset="0x000000ff"
+   dmi_board_vendor="TYAN Computer Corp" dmi_board_name="S4881 ">
+ <page_type size="4096" count="0"/>
+ <page_type size="2097152" count="0"/>
+ <object type="NUMANode" os_level="-1" os_index="0" cpuset="0x00000003"
+     complete_cpuset="0x00000003" online_cpuset="0x00000003"
+     allowed_cpuset="0x00000003" nodeset="0x00000001"
+     complete_nodeset="0x00000001" allowed_nodeset="0x00000001"
+     local_memory="7514177536">
+   <page_type size="4096" count="1834516"/>
+   <page_type size="2097152" count="0"/>
+   <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003"
+       complete_cpuset="0x00000003" online_cpuset="0x00000003"
+       allowed_cpuset="0x00000003" nodeset="0x00000001"
+       complete_nodeset="0x00000001" allowed_nodeset="0x00000001">
+     <object type="Cache" os_level="-1" cpuset="0x00000001"
+         complete_cpuset="0x00000001" online_cpuset="0x00000001"
+         allowed_cpuset="0x00000001" nodeset="0x00000001"
+         complete_nodeset="0x00000001" allowed_nodeset="0x00000001"
+         cache_size="1048576" depth="2" cache_linesize="64">
+       <object type="Cache" os_level="-1" cpuset="0x00000001"
+           complete_cpuset="0x00000001" online_cpuset="0x00000001"
+           allowed_cpuset="0x00000001" nodeset="0x00000001"
+           complete_nodeset="0x00000001" allowed_nodeset="0x00000001"
+           cache_size="65536" depth="1" cache_linesize="64">
+         <object type="Core" os_level="-1" os_index="0"
+             cpuset="0x00000001" complete_cpuset="0x00000001"
+             online_cpuset="0x00000001" allowed_cpuset="0x00000001"
+             nodeset="0x00000001" complete_nodeset="0x00000001"
+             allowed_nodeset="0x00000001">
+           <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001"
+               complete_cpuset="0x00000001" online_cpuset="0x00000001"
+               allowed_cpuset="0x00000001" nodeset="0x00000001"
+               complete_nodeset="0x00000001" allowed_nodeset="0x00000001"/>
+         </object>
+       </object>
+     </object>
+  <!-- ...more objects listed here ... -->
+</topology>
+
 On a 2-socket quad-core Xeon (pre-Nehalem, with 2 dual-core dies into each
 socket):
 
                                emmett.png
 
+Here's the same output in text form:
+
 Machine (16GB)
   Socket #0
  L2 #0 (4096KB)
@@ -173,53 +295,148 @@
    L1 #6 (32KB) + Core #6 + PU #6 (phys=3)
    L1 #7 (32KB) + Core #7 + PU #7 (phys=7)
 
-Programming interface
+And the same output in XML (line breaks added, only PU#0 shown):
 
-The basic interface is available in hwloc.h. It mostly offers low-level
-routines for advanced programmers that want to manually manipulate objects and
-follow links between them. Developers should look at hwloc/helper.h, which
-provides good higher-level topology traversal examples.
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x000000ff"
+   complete_cpuset="0x000000ff" online_cpuset="0x000000ff"
+   allowed_cpuset="0x000000ff" dmi_board_vendor="Dell Inc."
+   dmi_board_name="0NR282" local_memory="16865292288">
+ <page_type size="4096" count="4117503"/>
+ <page_type size="2097152" count="0"/>
+ <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000055"
+     complete_cpuset="0x00000055" online_cpuset="0x00000055"
+     allowed_cpuset="0x00000055">
+   <object type="Cache" os_level="-1" cpuset="0x00000011"
+       complete_cpuset="0x00000011" online_cpuset="0x00000011"
+       allowed_cpuset="0x00000011" cache_size="4194304" depth="2"
+       cache_linesize="64">
+     <object type="Cache" os_level="-1" cpuset="0x00000001"
+         complete_cpuset="0x00000001" online_cpuset="0x00000001"
+         allowed_cpuset="0x00000001" cache_size="32768" depth="1"
+         cache_linesize="64">
+       <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001"
+           complete_cpuset="0x00000001" online_cpuset="0x00000001"
+           allowed_cpuset="0x00000001">
+         <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001"
+             complete_cpuset="0x00000001" online_cpuset="0x00000001"
+             allowed_cpuset="0x00000001"/>
+       </object>
+     </object>
+     <object type="Cache" os_level="-1" cpuset="0x00000010"
+         complete_cpuset="0x00000010" online_cpuset="0x00000010"
+         allowed_cpuset="0x00000010" cache_size="32768" depth="1"
+         cache_linesize="64">
+       <object type="Core" os_level="-1" os_index="1" cpuset="0x00000010"
+           complete_cpuset="0x00000010" online_cpuset="0x00000010"
+           allowed_cpuset="0x00000010">
+         <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010"
+             complete_cpuset="0x00000010" online_cpuset="0x00000010"
+             allowed_cpuset="0x00000010"/>
+       </object>
+     </object>
+   </object>
+  <!-- ...more objects listed here ... -->
+</topology>
 
-Each object contains a cpuset describing the list of processing units that it
-contains. These cpusets may be used for Binding. hwloc offers an extensive
-cpuset manipulation interface in hwloc/cpuset.h.
+Programming Interface
 
-Moreover, hwloc also comes with additional helpers for interoperability with
-several commonly used environments. For Linux, some specific helpers are
-available in hwloc/linux.h, and hwloc/linux-libnuma.h if using libnuma. On
-glibc-based systems, additional helpers are available in hwloc/glibc-sched.h.
-For Linux systems with the OpenFabrics verbs library, some dedicated helpers
-are provided in hwloc/openfabrics-verbs.h (this helper file is not yet useful
-on non-Linux systems with the OpenFabrics verbs library).
+The basic interface is available in hwloc.h. It essentially offers low-level
+routines for advanced programmers that want to manually manipulate objects and
+follow links between them. Documentation for everything in hwloc.h are provided
+later in this document. Developers should also look at hwloc/helper.h (and also
+in this document, which provides good higher-level topology traversal examples.
 
 To precisely define the vocabulary used by hwloc, a Terms and Definitions
 section is available and should probably be read first.
 
-Further documentation is available in a full set of HTML pages, man pages, and
-self-contained PDF files (formatted for both both US letter and A4 formats) in
-the source tarball in doc/doxygen-doc/. If you are building from a Subversion
-checkout, you will need to have Doxygen and pdflatex installed -- the
-documentation will be built during the normal "make" process. The documentation
-is installed during "make install" to $prefix/share/doc/hwloc/ and your systems
-default man page tree (under $prefix, of course).
+Each hwloc object contains a cpuset describing the list of processing units
+that it contains. These bitmaps may be used for CPU binding and Memory binding.
+hwloc offers an extensive bitmap manipulation interface in hwloc/bitmap.h.
 
-The following section presents an example of API usage.
+Moreover, hwloc also comes with additional helpers for interoperability with
+several commonly used environments. See the Interoperability with other
+software section for details.
 
-API example
+The complete API documentation is available in a full set of HTML pages, man
+pages, and self-contained PDF files (formatted for both both US letter and A4
+formats) in the source tarball in doc/doxygen-doc/.
 
+NOTE: If you are building the documentation from a Subversion checkout, you
+will need to have Doxygen and pdflatex installed -- the documentation will be
+built during the normal "make" process. The documentation is installed during
+"make install" to $prefix/share/doc/hwloc/ and your systems default man page
+tree (under $prefix, of course).
+
+Portability (especially when using the API or XML)
+
+As shown in CLI Examples, hwloc can obtain information on a wide variety of
+hardware topologies. However, some platforms and/or operating system versions
+will only report a subset of this information. For example, on an PPC64-based
+system with 32 cores (each with 2 hardware threads) running a default
+2.6.18-based kernel from RHEL 5.4, hwloc is only able to glean information
+about NUMA nodes and processor units (PUs). No information about caches,
+sockets, or cores is available.
+
+Here's the graphic output from lstopo on this platform when Simultaneous
+Multi-Threading (SMT) is enabled:
+
+                           ppc64-with-smt.png
+
+And here's the graphic output from lstopo on this platform when SMT is
+disabled:
+
+                          ppc64-without-smt.png
+
+Notice that hwloc only sees half the PUs when SMT is disabled. PU#15, for
+example, seems to change location from NUMA node #0 to #1. In reality, no PUs
+"moved" -- they were simply re-numbered when hwloc only saw half as many.
+Hence, PU#15 in the SMT-disabled picture probably corresponds to PU#30 in the
+SMT-enabled picture.
+
+This same "PUs have disappeared" effect can be seen on other platforms -- even
+platforms / OSs that provide much more information than the above PPC64 system.
+This is an unfortunate side-effect of how operating systems report information
+to hwloc.
+
+Note that upgrading the Linux kernel on the same PPC64 system mentioned above
+to 2.6.34, hwloc is able to discover all the topology information. The
+following picture shows the entire topology layout when SMT is enabled:
+
+                         ppc64-full-with-smt.png
+
+Developers using the hwloc API or XML output for portable applications should
+therefore be extremely careful to not make any assumptions about the structure
+of data that is returned. For example, per the above reported PPC topology, it
+is not safe to assume that PUs will always be descendants of cores.
+
+Additionally, future hardware may insert new topology elements that are not
+available in this version of hwloc. Long-lived applications that are meant to
+span multiple different hardware platforms should also be careful about making
+structure assumptions. For example, there may someday be an element "lower"
+than a PU, or perhaps a new element may exist between a core and a PU.
+
+API Example
+
 The following small C example (named ``hwloc-hello.c'') prints the topology of
 the machine and bring the process to the first logical processor of the second
 core of the machine.
 
 /* Example hwloc API program.
  *
- * Copyright ? 2009 INRIA, Universit? Bordeaux 1
- * Copyright ? 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright ? 2009-2010 INRIA
+ * Copyright ? 2009-2010 Universit? Bordeaux 1
+ * Copyright ? 2009-2010 Cisco Systems, Inc.  All rights reserved.
  *
  * hwloc-hello.c
  */
 
 #include <hwloc.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
 
 static void print_children(hwloc_topology_t topology, hwloc_obj_t obj,
                         int depth)
@@ -237,7 +454,7 @@
 int main(void)
 {
  int depth;
- unsigned i;
+ unsigned i, n;
  unsigned long size;
  int levels;
  char string[128];
@@ -249,7 +466,7 @@
  /* Allocate and initialize topology object. */
  hwloc_topology_init(&topology);
 
- /* ... Optionally, put detection configuration here to e.g. ignore
+ /* ... Optionally, put detection configuration here to ignore
     some objects types, define a synthetic topology, etc....
 
     The default is to detect all the objects of the machine that
@@ -263,9 +480,11 @@
     in case we need the topology depth later. */
  topodepth = hwloc_topology_get_depth(topology);
 
- /* First example:
-  * Walk the topology with an array style, from level 0 (always the
-  * system level) to the lowest level (always the proc level). */
+ /*****************************************************************
+  * First example:
+  * Walk the topology with an array style, from level 0 (always
+  * the system level) to the lowest level (always the proc level).
+  *****************************************************************/
  for (depth = 0; depth < topodepth; depth++) {
      printf("*** Objects at level %d\n", depth);
      for (i = 0; i < hwloc_get_nbobjs_by_depth(topology, depth);
@@ -277,13 +496,17 @@
      }
  }
 
- /* Second example:
-  * Walk the topology with a tree style. */
+ /*****************************************************************
+  * Second example:
+  * Walk the topology with a tree style.
+  *****************************************************************/
  printf("*** Printing overall tree\n");
  print_children(topology, hwloc_get_root_obj(topology), 0);
 
- /* Third example:
-  * Print the number of sockets. */
+ /*****************************************************************
+  * Third example:
+  * Print the number of sockets.
+  *****************************************************************/
  depth = hwloc_get_type_depth(topology, HWLOC_OBJ_SOCKET);
  if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
      printf("*** The number of sockets is unknown\n");
@@ -292,9 +515,11 @@
             hwloc_get_nbobjs_by_depth(topology, depth));
  }
 
- /* Fourth example:
-  * Compute the amount of cache that the first logical processor has above it.
-  */
+ /*****************************************************************
+  * Fourth example:
+  * Compute the amount of cache that the first logical processor
+  * has above it.
+  *****************************************************************/
  levels = 0;
  size = 0;
  for (obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_PU, 0);
@@ -304,13 +529,16 @@
      levels++;
      size += obj->attr->cache.size;
    }
- printf("*** Logical processor 0 has %u caches totaling %luKB\n", levels, size / 1024);
+ printf("*** Logical processor 0 has %d caches totaling %luKB\n",
+        levels, size / 1024);
 
- /* Fifth example:
+ /*****************************************************************
+  * Fifth example:
   * Bind to only one thread of the last core of the machine.
   *
   * First find out where cores are, or else smaller sets of CPUs if
-  * the OS doesn't have the notion of a "core". */
+  * the OS doesn't have the notion of a "core".
+  *****************************************************************/
  depth = hwloc_get_type_or_below_depth(topology, HWLOC_OBJ_CORE);
 
  /* Get last core. */
@@ -318,24 +546,47 @@
                 hwloc_get_nbobjs_by_depth(topology, depth) - 1);
  if (obj) {
      /* Get a copy of its cpuset that we may modify. */
-     cpuset = hwloc_cpuset_dup(obj->cpuset);
+     cpuset = hwloc_bitmap_dup(obj->cpuset);
 
      /* Get only one logical processor (in case the core is
         SMT/hyperthreaded). */
-     hwloc_cpuset_singlify(cpuset);
+     hwloc_bitmap_singlify(cpuset);
 
      /* And try to bind ourself there. */
      if (hwloc_set_cpubind(topology, cpuset, 0)) {
          char *str;
-         hwloc_cpuset_asprintf(&str, obj->cpuset);
-         printf("Couldn't bind to cpuset %s\n", str);
+         int error = errno;
+         hwloc_bitmap_asprintf(&str, obj->cpuset);
+         printf("Couldn't bind to cpuset %s: %s\n", str, strerror(error));
          free(str);
      }
 
      /* Free our cpuset copy */
-     hwloc_cpuset_free(cpuset);
+     hwloc_bitmap_free(cpuset);
  }
 
+ /*****************************************************************
+  * Sixth example:
+  * Allocate some memory on the last NUMA node, bind some existing
+  * memory to the last NUMA node.
+  *****************************************************************/
+ /* Get last node. */
+ n = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
+ if (n) {
+     void *m;
+     size_t size = 1024*1024;
+
+     obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, n - 1);
+     m = hwloc_alloc_membind_nodeset(topology, size, obj->nodeset,
+             HWLOC_MEMBIND_DEFAULT, 0);
+     hwloc_free_membind(topology, m, size);
+
+     m = malloc(size);
+     hwloc_set_area_membind_nodeset(topology, m, size, obj->nodeset,
+             HWLOC_MEMBIND_DEFAULT, 0);
+     free(m);
+ }
+
  /* Destroy topology object. */
  hwloc_topology_destroy(topology);
 
@@ -385,14 +636,26 @@
 *** 2 socket(s)
 shell$
 
-Questions and bugs
+Questions and Bugs
 
 Questions should be sent to the devel mailing list (http://www.open-mpi.org/
 community/lists/hwloc.php). Bug reports should be reported in the tracker (
 https://svn.open-mpi.org/trac/hwloc/).
 
-History / credits
+If hwloc discovers an incorrect topology for your machine, the very first thing
+you should check is to ensure that you have the most recent updates installed
+for your operating system. Indeed, most of hwloc topology discovery relies on
+hardware information retrieved through the operation system (e.g., via the /sys
+virtual filesystem of the Linux kernel). If upgrading your OS or Linux kernel
+does not solve your problem, you may also want to ensure that you are running
+the most recent version of the BIOS for your machine.
 
+If those things fail, contact us on the mailing list for additional help.
+Please attach the output of lstopo after having given the --enable-debug option
+to ./configure and rebuilt completely, to get debugging output.
+
+History / Credits
+
 hwloc is the evolution and merger of the libtopology (http://
 runtime.bordeaux.inria.fr/libtopology/) project and the Portable Linux
 Processor Affinity (PLPA) (http://www.open-mpi.org/projects/plpa/) project.
@@ -407,5 +670,5 @@
 
 -------------------------------------------------------------------------------
 
-Generated on Sun Apr 4 13:48:12 2010 for Hardware Locality (hwloc) by  doxygen
-1.6.3
+Generated on Fri Nov 5 2010 17:52:24 for Hardware Locality (hwloc) by  doxygen
+1.7.1

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/VERSION	2010-11-24 09:21:55 UTC (rev 7494)
@@ -6,8 +6,8 @@
 # <major>.<minor>.<release>.  If release is zero, then it is omitted.
 
 major=1
-minor=0
-release=2
+minor=1
+release=0
 
 # greek is used for alpha or beta release tags.  If it is non-empty,
 # it will be appended to the version number.  It does not have to be
@@ -50,4 +50,4 @@
 # 2. Version numbers are described in the Libtool current:revision:age
 # format.
 
-libhwloc_so_version=0:1:0
+libhwloc_so_version=1:0:1

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/autogen.sh
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/autogen.sh	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/autogen.sh	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,11 +1,2 @@
-#! /bin/sh
-
-if [ -n "$MPICH2_AUTOTOOLS_DIR" ] ; then
-    libtoolize=${MPICH2_AUTOTOOLS_DIR}/libtoolize
-    autoreconf=${MPICH2_AUTOTOOLS_DIR}/autoreconf
-else
-    libtoolize=${LIBTOOLIZE:-libtoolize}
-    autoreconf=${AUTORECONF:-autoreconf}
-fi
-
-$autoreconf -vif
+:
+autoreconf -ivf

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/distscript.csh
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/distscript.csh	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/distscript.csh	2010-11-24 09:21:55 UTC (rev 7494)
@@ -10,7 +10,8 @@
 #                         University of Stuttgart.  All rights reserved.
 # Copyright (c) 2004-2005 The Regents of the University of California.
 #                         All rights reserved.
-# Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+# Copyright © 2010 INRIA
+# Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 # $COPYRIGHT$
 # 
 # Additional copyrights may follow
@@ -103,8 +104,8 @@
 if ($vpath == 1 && ! -d $srcdir/doc/doxygen-doc) then
     echo "*** This is a VPATH 'make dist', but the srcdir does not already"
     echo "*** have a doxygen-doc tree built.  hwloc's config/distscript.csh"
-    echo "*** the docs to be built in the srcdir before executing 'make"
-    echo "*** dist' in a VPATH build."
+    echo "*** requores the docs to be built in the srcdir before executing"
+    echo "*** 'make dist' in a VPATH build."
     exit 1
 endif
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc.m4
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc.m4	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc.m4	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,7 @@
 dnl -*- Autoconf -*-
 dnl
-dnl Copyright 2009 INRIA, Université Bordeaux 1
+dnl Copyright (c) 2009 INRIA
+dnl Copyright (c) 2009 Université Bordeaux 1
 dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
 dnl                         University Research and Technology
 dnl                         Corporation.  All rights reserved.
@@ -8,6 +9,8 @@
 dnl                         All rights reserved.
 dnl Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, 
 dnl                         University of Stuttgart.  All rights reserved.
+dnl Copyright © 2010  INRIA
+dnl Copyright © 2010  Université of Bordeaux
 dnl Copyright © 2006-2010  Cisco Systems, Inc.  All rights reserved.
 
 # Main hwloc m4 macro, to be invoked by the user
@@ -21,7 +24,6 @@
 AC_DEFUN([HWLOC_SETUP_CORE],[
     AC_REQUIRE([AC_CANONICAL_TARGET])
     AC_REQUIRE([AC_PROG_CC])
-    AC_REQUIRE([AM_PROG_CC_C_O])
 
     AS_IF([test "x$4" != "x"],
           [cat <<EOF
@@ -31,9 +33,6 @@
 ###
 EOF])
 
-    # We want new Libtool.  None of that old stuff.  Pfft.    
-    LT_PREREQ([2.2.6])
-
     # If no prefix was defined, set a good value
     m4_ifval([$1], 
              [m4_define([hwloc_config_prefix],[$1/])],
@@ -93,6 +92,12 @@
     AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "yes"],
           [hwloc_debug=1
            hwloc_debug_msg="enabled"])
+    AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "" -a -d .svn],
+          [hwloc_debug=1
+           hwloc_debug_msg="enabled (SVN checkout default)"])
+    AS_IF([test "$hwloc_debug" = "" -a "$enable_debug" = "" -a -d .hg],
+          [hwloc_debug=1
+           hwloc_debug_msg="enabled (HG clone default)"])
     AS_IF([test "$hwloc_debug" = ""],
           [hwloc_debug=0
            hwloc_debug_msg="disabled"])
@@ -108,11 +113,11 @@
     AC_MSG_RESULT(m4_ifval([$1], hwloc_config_prefix, [(none)]))
 
     # Note that private/config.h *MUST* be listed first so that it
-    # becomes the "main" config header file.  Any AM_CONFIG_HEADERs
+    # becomes the "main" config header file.  Any AC_CONFIG_HEADERs
     # after that (hwloc/config.h) will only have selective #defines
     # replaced, not the entire file.
-    AM_CONFIG_HEADER(hwloc_config_prefix[include/private/config.h])
-    AM_CONFIG_HEADER(hwloc_config_prefix[include/hwloc/config.h])
+    AC_CONFIG_HEADER(hwloc_config_prefix[include/private/config.h])
+    AC_CONFIG_HEADER(hwloc_config_prefix[include/hwloc/config.h])
 
     # What prefix are we using?
     AC_MSG_CHECKING([for hwloc symbol prefix])
@@ -272,8 +277,6 @@
         esac
     esac
     
-    _HWLOC_CHECK_DIFF_U
-    
     AC_CHECK_SIZEOF([unsigned long])
     AC_DEFINE_UNQUOTED([HWLOC_SIZEOF_UNSIGNED_LONG], $ac_cv_sizeof_unsigned_long, [The size of `unsigned long', as computed by sizeof])
     AC_CHECK_SIZEOF([unsigned int])
@@ -318,30 +321,6 @@
       AC_DEFINE([HWLOC_HAVE_STDINT_H], [1], [Define to 1 if you have the <stdint.h> header file.])
     ])
     
-    AC_CHECK_TYPES([wchar_t], [
-      AC_CHECK_FUNCS([putwc])
-    ], [], [[#include <wchar.h>]])
-    
-    AC_CHECK_HEADERS([locale.h], [
-      AC_CHECK_FUNCS([setlocale])
-    ])
-    AC_CHECK_HEADERS([langinfo.h], [
-      AC_CHECK_FUNCS([nl_langinfo])
-    ])
-    hwloc_old_LIBS="$LIBS"
-    LIBS=
-    AC_CHECK_HEADERS([curses.h], [
-      AC_CHECK_HEADERS([term.h], [
-        AC_SEARCH_LIBS([tparm], [termcap ncursesw ncurses curses], [
-            AC_SUBST([HWLOC_TERMCAP_LIBS], ["$LIBS"])
-            AC_DEFINE([HWLOC_HAVE_LIBTERMCAP], [1],
-                      [Define to 1 if you have a library providing the termcap interface])
-          ])
-      ], [], [[#include <curses.h>]])
-    ])
-    LIBS="$hwloc_old_LIBS"
-    unset hwloc_old_LIBS
-
     AC_CHECK_TYPES([KAFFINITY,
                     PROCESSOR_CACHE_TYPE,
                     CACHE_DESCRIPTOR,
@@ -374,12 +353,6 @@
                     AC_DEFINE([HAVE_LIBKSTAT], 1, [Define to 1 if we have -lkstat])])
     ])
     
-    AC_CHECK_HEADERS([infiniband/verbs.h], [
-      AC_CHECK_LIB([ibverbs], [ibv_open_device], 
-                   [HWLOC_LIBS="-libverbs $HWLOC_LIBS"
-                    AC_DEFINE([HAVE_LIBIBVERBS], 1, [Define to 1 if we have -libverbs])])
-    ])
-    
     AC_CHECK_DECLS([_SC_NPROCESSORS_ONLN,
     		_SC_NPROCESSORS_CONF,
     		_SC_NPROC_ONLN,
@@ -424,36 +397,32 @@
     
     _HWLOC_CHECK_DECL([sched_setaffinity], [
       AC_MSG_CHECKING([for old prototype of sched_setaffinity])
-      AC_COMPILE_IFELSE(
+      AC_COMPILE_IFELSE([
         AC_LANG_PROGRAM([[
           #define _GNU_SOURCE
           #include <sched.h>
           static unsigned long mask;
-          ]], [[ sched_setaffinity(0, (void*) &mask);
-          ]]),
-        AC_DEFINE([HWLOC_HAVE_OLD_SCHED_SETAFFINITY], [1], [Define to 1 if glibc provides the old prototype of sched_setaffinity()])
-        AC_MSG_RESULT([yes]),
-        AC_MSG_RESULT([no])
-      )
+          ]], [[ sched_setaffinity(0, (void*) &mask); ]])],
+        [AC_DEFINE([HWLOC_HAVE_OLD_SCHED_SETAFFINITY], [1], [Define to 1 if glibc provides the old prototype of sched_setaffinity()])
+         AC_MSG_RESULT([yes])],
+        [AC_MSG_RESULT([no])])
     ], , [[
 #define _GNU_SOURCE
 #include <sched.h>
 ]])
     
     AC_MSG_CHECKING([for working CPU_SET])
-    AC_LINK_IFELSE(
+    AC_LINK_IFELSE([
       AC_LANG_PROGRAM([[
         #include <sched.h>
         cpu_set_t set;
-        ]], [[ CPU_ZERO(&set); CPU_SET(0, &set);
-        ]]),
-        AC_DEFINE([HWLOC_HAVE_CPU_SET], [1], [Define to 1 if the CPU_SET macro works])
-        AC_MSG_RESULT([yes]),
-        AC_MSG_RESULT([no])
-    )
+        ]], [[ CPU_ZERO(&set); CPU_SET(0, &set);]])],
+	[AC_DEFINE([HWLOC_HAVE_CPU_SET], [1], [Define to 1 if the CPU_SET macro works])
+         AC_MSG_RESULT([yes])],
+        [AC_MSG_RESULT([no])])
     
     AC_MSG_CHECKING([for working CPU_SET_S])
-    AC_LINK_IFELSE(
+    AC_LINK_IFELSE([
       AC_LANG_PROGRAM([[
           #include <sched.h>
           cpu_set_t *set;
@@ -462,15 +431,29 @@
           CPU_ZERO_S(CPU_ALLOC_SIZE(1024), set);
           CPU_SET_S(CPU_ALLOC_SIZE(1024), 0, set);
           CPU_FREE(set);
-        ]]),
-        AC_DEFINE([HWLOC_HAVE_CPU_SET_S], [1], [Define to 1 if the CPU_SET_S macro works])
-        AC_MSG_RESULT([yes]),
-        AC_MSG_RESULT([no])
-    )
+        ]])],
+        [AC_DEFINE([HWLOC_HAVE_CPU_SET_S], [1], [Define to 1 if the CPU_SET_S macro works])
+         AC_MSG_RESULT([yes])],
+        [AC_MSG_RESULT([no])])
 
-    # check for kerrighed, but don't abort if not found
-    HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [], [], [:])
+    AC_MSG_CHECKING([for working _syscall3])
+    AC_LINK_IFELSE([
+      AC_LANG_PROGRAM([[
+          #include <linux/unistd.h>
+          #include <errno.h>
+          #define __NR_hwloc_test 123
+          _syscall3(int, hwloc_test, int, param1, int, param2, int, param3);
+        ]], [[ hwloc_test(1, 2, 3); ]])],
+        [AC_DEFINE([HWLOC_HAVE__SYSCALL3], [1], [Define to 1 if the _syscall3 macro works])
+         AC_MSG_RESULT([yes])],
+        [AC_MSG_RESULT([no])])
 
+    # Check for kerrighed, but don't abort if not found.  It's illegal
+    # to pass in an empty 3rd argument, but we trust the output of
+    # pkg-config, so just give it a value that will always work:
+    # printf.
+    HWLOC_PKG_CHECK_MODULES([KERRIGHED], [kerrighed >= 2.0], [printf], [], [:])
+
     AC_PATH_PROGS([HWLOC_MS_LIB], [lib])
     AC_ARG_VAR([HWLOC_MS_LIB], [Path to Microsoft's Visual Studio `lib' tool])
 
@@ -516,10 +499,32 @@
     ])
     
     AC_CHECK_FUNCS([openat], [hwloc_have_openat=yes])
-    
-    AC_CHECK_DECL([numa_bitmask_alloc], [hwloc_have_linux_libnuma=yes], [],
-    	      [#include <numa.h>])
-    
+
+    AC_CHECK_HEADERS([malloc.h])
+    AC_CHECK_FUNCS([getpagesize memalign posix_memalign])
+
+    AC_CHECK_HEADERS([sys/utsname.h])
+    AC_CHECK_FUNCS([uname])
+
+    # set_mempolicy and mbind support   
+    AC_CHECK_HEADERS([numaif.h], [
+      AC_CHECK_LIB([numa], [set_mempolicy], [
+	enable_set_mempolicy=yes
+	AC_SUBST([HWLOC_LINUX_LIBNUMA_LIBS], ["-lnuma"])
+	AC_DEFINE([HWLOC_HAVE_SET_MEMPOLICY], [1], [Define to 1 if set_mempolicy is available.])
+      ])
+      AC_CHECK_LIB([numa], [mbind], [
+	enable_mbind=yes
+	AC_SUBST([HWLOC_LINUX_LIBNUMA_LIBS], ["-lnuma"])
+	AC_DEFINE([HWLOC_HAVE_MBIND], [1], [Define to 1 if mbind is available.])
+      ])
+      AC_CHECK_LIB([numa], [migrate_pages], [
+	enable_migrate_pages=yes
+	AC_SUBST([HWLOC_LINUX_LIBNUMA_LIBS], ["-lnuma"])
+	AC_DEFINE([HWLOC_HAVE_MIGRATE_PAGES], [1], [Define to 1 if migrate_pages is available.])
+      ])
+    ])
+
     AC_CHECK_HEADERS([pthread_np.h])
     AC_CHECK_DECLS([pthread_setaffinity_np],,[:],[[
       #include <pthread.h>
@@ -538,8 +543,22 @@
     AC_SEARCH_LIBS([pthread_getthrds_np], [pthread],
       AC_DEFINE([HWLOC_HAVE_PTHREAD_GETTHRDS_NP], 1, `Define to 1 if you have pthread_getthrds_np')
     )
-    
+
+    # XML support
+    if test "x$enable_xml" != "xno"; then
+        HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [xmlNewDoc], [:], [enable_xml="no"])
+    fi
+    if test "x$enable_xml" != "xno"; then
+        HWLOC_REQUIRES="libxml-2.0 $HWLOC_REQUIRES"
+        AC_DEFINE([HWLOC_HAVE_XML], [1], [Define to 1 if you have the `xml' library.])
+        AC_SUBST([HWLOC_HAVE_XML], [1])
+    else
+        AC_SUBST([HWLOC_HAVE_XML], [0])
+    fi
+    HWLOC_CFLAGS="$HWLOC_CFLAGS $HWLOC_XML_CFLAGS"    
+
     # Setup HWLOC's C, CPP, and LD flags, and LIBS
+    AC_SUBST(HWLOC_REQUIRES)
     HWLOC_CFLAGS="$hwloc_CC_c99_flags $HWLOC_CFLAGS"
     AC_SUBST(HWLOC_CFLAGS)
     HWLOC_CPPFLAGS='-I$(HWLOC_top_srcdir)/include -I$(HWLOC_top_builddir)/include'
@@ -564,7 +583,7 @@
     AC_MSG_CHECKING([for cpuid])
     old_CPPFLAGS="$CPPFLAGS"
     CFLAGS="$CFLAGS -I$HWLOC_top_srcdir/include"
-    AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[
+    AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
         #include <stdio.h>
         #include <private/cpuid.h>
       ]], [[
@@ -574,13 +593,11 @@
           printf("highest cpuid %x\n", eax);
           return 0;
         }
-      ]]), [
-      AC_MSG_RESULT([yes])
-      AC_DEFINE(HWLOC_HAVE_CPUID, 1, [Define to 1 if you have cpuid])
-      hwloc_have_cpuid=yes
-    ], [
-      AC_MSG_RESULT([no])
-    ])
+      ]])],
+      [AC_MSG_RESULT([yes])
+       AC_DEFINE(HWLOC_HAVE_CPUID, 1, [Define to 1 if you have cpuid])
+       hwloc_have_cpuid=yes],
+      [AC_MSG_RESULT([no])])
     CPPFLAGS="$old_CPPFLAGS"
 
     # Always generate these files
@@ -621,8 +638,17 @@
                        [test "x$hwloc_have_sched_setaffinity" = "xyes"])
         AM_CONDITIONAL([HWLOC_HAVE_LIBIBVERBS], 
                        [test "x$hwloc_have_libibverbs" = "xyes"])
+	AM_CONDITIONAL([HWLOC_HAVE_CUDA],
+		       [test "x$hwloc_have_cuda" = "xyes"])
+	AM_CONDITIONAL([HWLOC_HAVE_MYRIEXPRESS],
+		       [test "x$hwloc_have_myriexpress" = "xyes"])
+	AM_CONDITIONAL([HWLOC_HAVE_CUDART],
+		       [test "x$hwloc_have_cudart" = "xyes"])
         AM_CONDITIONAL([HWLOC_HAVE_CAIRO], [test "x$enable_cairo" != "xno"])
         AM_CONDITIONAL([HWLOC_HAVE_XML], [test "x$enable_xml" != "xno"])
+        AM_CONDITIONAL([HWLOC_HAVE_SET_MEMPOLICY], [test "x$enable_set_mempolicy" != "xno"])
+        AM_CONDITIONAL([HWLOC_HAVE_MBIND], [test "x$enable_mbind" != "xno"])
+        AM_CONDITIONAL([HWLOC_HAVE_BUNZIPP], [test "x$BUNZIPP" != "xfalse"])
 
         AM_CONDITIONAL([HWLOC_BUILD_DOXYGEN],
                        [test "x$hwloc_generate_doxs" = "xyes"])

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_attributes.m4
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_attributes.m4	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_attributes.m4	2010-11-24 09:21:55 UTC (rev 7494)
@@ -10,7 +10,8 @@
 # Copyright (c) 2004-2005 The Regents of the University of California.
 #                         All rights reserved.
 # and renamed for hwloc:
-# Copyright (c) 2009 INRIA, Université Bordeaux 1
+# Copyright (c) 2009 INRIA
+# Copyright (c) 2009 Université Bordeaux 1
 # Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
@@ -56,7 +57,11 @@
 #   Sun C++: skip
 #
 AC_DEFUN([_HWLOC_ATTRIBUTE_FAIL_SEARCH],[
-    AC_REQUIRE([AC_PROG_GREP])
+    # Be safe for systems that have ancient Autoconf's (e.g., RHEL5)
+    m4_ifdef([AC_PROG_GREP], 
+             [AC_REQUIRE([AC_PROG_GREP])],
+             [GREP=grep])
+
     if test -s conftest.err ; then
         for i in ignore skip ; do
             $GREP -iq $i conftest.err

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_visibility.m4
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_visibility.m4	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_check_visibility.m4	2010-11-24 09:21:55 UTC (rev 7494)
@@ -11,7 +11,8 @@
 #                         All rights reserved.
 # Copyright (c) 2006-2007 Cisco Systems, Inc.  All rights reserved.
 # and renamed for hwloc:
-# Copyright (c) 2009 INRIA, Université Bordeaux 1
+# Copyright (c) 2009 INRIA
+# Copyright (c) 2009 Université Bordeaux 1
 # Copyright (c) 2010 Cisco Systems, Inc.  All rights reserved.
 # 
 # Redistribution and use in source and binary forms, with or without
@@ -50,19 +51,30 @@
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 #
 
-
 # _HWLOC_CHECK_VISIBILITY
 # --------------------------------------------------------
 AC_DEFUN([_HWLOC_CHECK_VISIBILITY],[
-    AC_REQUIRE([AC_PROG_GREP])
+    # Be safe for systems that have ancient Autoconf's (e.g., RHEL5)
+    m4_ifdef([AC_PROG_GREP], 
+             [AC_REQUIRE([AC_PROG_GREP])],
+             [GREP=grep])
 
-    # Check if the compiler has support for visibility, like some versions of gcc, icc.
+    msg="whether to enable visibility"
+    # Check if the compiler has support for visibility, like some
+    # versions of gcc, icc.
     AC_ARG_ENABLE(visibility, 
         AC_HELP_STRING([--enable-visibility],
             [enable visibility feature of certain compilers/linkers (default: enabled)]))
+
+    case ${target} in
+      *-*-aix*|*-*-mingw*|*-*-cygwin*|*-*-hpux*)
+        enable_visibility=no
+        ;;
+    esac
+
     if test "$enable_visibility" = "no"; then
-        AC_MSG_CHECKING([enable symbol visibility])
-        AC_MSG_RESULT([no]) 
+        AC_MSG_CHECKING([$msg])
+        AC_MSG_RESULT([no (disabled)]) 
         have_visibility=0
     else
         CFLAGS_orig="$CFLAGS"
@@ -70,41 +82,40 @@
         hwloc_add=
         AC_CACHE_CHECK([if $CC supports -fvisibility],
             [hwloc_cv_cc_fvisibility],
-            [AC_TRY_LINK([
-                    #include <stdio.h>
+            [AC_LINK_IFELSE([AC_LANG_PROGRAM([[
                     __attribute__((visibility("default"))) int foo;
-                    void bar(void) { fprintf(stderr, "bar\n"); };
-                    ],[],
+                    ]],[[int i;]])],
+                    [hwloc_cv_cc_fvisibility=yes],
                     [if test -s conftest.err ; then
                         $GREP -iq "visibility" conftest.err
                         if test "$?" = "0" ; then
-                            hwloc_cv_cc_fvisibility="no"
+                            hwloc_cv_cc_fvisibility=no
                         else
-                            hwloc_cv_cc_fvisibility="yes"
+                            hwloc_cv_cc_fvisibility=yes
                         fi
                      else
-                        hwloc_cv_cc_fvisibility="yes"
+                        hwloc_cv_cc_fvisibility=yes
                      fi],
-                    [hwloc_cv_cc_fvisibility="no"])
+                    [hwloc_cv_cc_fvisibility=no])
                 ])
 
         if test "$hwloc_cv_cc_fvisibility" = "yes" ; then
             hwloc_add=" -fvisibility=hidden"
             have_visibility=1
-            AC_MSG_CHECKING([enable symbol visibility])
-            AC_MSG_RESULT([yes]) 
+            AC_MSG_CHECKING([$msg])
+            AC_MSG_RESULT([yes (via$hwloc_add)]) 
         elif test "$enable_visibility" = "yes"; then
             AC_MSG_ERROR([Symbol visibility support requested but compiler does not seem to support it.  Aborting])
         else 
-            AC_MSG_CHECKING([enable symbol visibility])
-            AC_MSG_RESULT([no]) 
+            AC_MSG_CHECKING([$msg])
+            AC_MSG_RESULT([no (unsupported)]) 
             have_visibility=0
         fi
         CFLAGS=$CFLAGS_orig
         HWLOC_VISIBILITY_CFLAGS=$hwloc_add
         unset hwloc_add 
     fi
+
     AC_DEFINE_UNQUOTED([HWLOC_C_HAVE_VISIBILITY], [$have_visibility],
             [Whether C compiler supports -fvisibility])
-
 ])

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_internal.m4
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_internal.m4	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/config/hwloc_internal.m4	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,7 @@
 dnl -*- Autoconf -*-
 dnl
-dnl Copyright 2009 INRIA, Université Bordeaux 1
+dnl Copyright (c) 2009 INRIA
+dnl Copyright (c) 2009 Université Bordeaux 1
 dnl Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
 dnl                         University Research and Technology
 dnl                         Corporation.  All rights reserved.
@@ -8,6 +9,7 @@
 dnl                         All rights reserved.
 dnl Copyright (c) 2004-2008 High Performance Computing Center Stuttgart, 
 dnl                         University of Stuttgart.  All rights reserved.
+dnl Copyright ©  2010 INRIA
 dnl Copyright ©  2006-2010 Cisco Systems, Inc.  All rights reserved.
 
 #-----------------------------------------------------------------------
@@ -39,7 +41,7 @@
     # Doxygen?
     AC_ARG_ENABLE([doxygen],
         [AC_HELP_STRING([--enable-doxygen],
-                        [enable support for building Doxygen documentation (note that this option is ONLY relevant in developer builds; Doxygen documentation is pre-built for tarball builds and this option is therefore ignored)])],,[enable_doxygen=no])
+                        [enable support for building Doxygen documentation (note that this option is ONLY relevant in developer builds; Doxygen documentation is pre-built for tarball builds and this option is therefore ignored)])])
 
     # Picky?
     AC_ARG_ENABLE(picky,
@@ -92,8 +94,14 @@
     AC_ARG_VAR([FIG2DEV], [Location of the fig2dev program (required for building the hwloc doxygen documentation)])
     AC_PATH_TOOL([FIG2DEV], [fig2dev])
     
+    AC_ARG_VAR([GS], [Location of the gs program (required for building the hwloc doxygen documentation)])
+    AC_PATH_TOOL([GS], [gs])
+
+    AC_ARG_VAR([EPSTOPDF], [Location of the epstopdf program (required for building the hwloc doxygen documentation)])
+    AC_PATH_TOOL([EPSTOPDF], [epstopdf])
+
     AC_MSG_CHECKING([if can build doxygen docs])
-    AS_IF([test "x$DOXYGEN" != "x" -a "x$PDFLATEX" != "x" -a "x$MAKEINDEX" != "x" -a "x$FIG2DEV" != "x"],
+    AS_IF([test "x$DOXYGEN" != "x" -a "x$PDFLATEX" != "x" -a "x$MAKEINDEX" != "x" -a "x$FIG2DEV" != "x" -a "x$GS" != "x" -a "x$EPSTOPDF" != "x"],
                  [hwloc_generate_doxs=yes], [hwloc_generate_doxs=no])
     AC_MSG_RESULT([$hwloc_generate_doxs])
     
@@ -135,6 +143,9 @@
     # specifically disabled by the user.
     AC_MSG_CHECKING([whether to enable "picky" compiler mode])
     hwloc_want_picky=0
+    AS_IF([test "$GCC" = "yes"],
+          [AS_IF([test -d "$srcdir/.svn" -o -d "$srcdir/.hg"],
+                 [hwloc_want_picky=1])])
     if test "$enable_picky" = "yes"; then
         if test "$GCC" = "yes"; then
             AC_MSG_RESULT([yes])
@@ -214,23 +225,32 @@
         AC_DEFINE([HWLOC_HAVE_CAIRO], [1], [Define to 1 if you have the `cairo' library.])
     fi
 
-    # XML support        
-    
-    if test "x$enable_xml" != "xno"; then
-        HWLOC_PKG_CHECK_MODULES([XML], [libxml-2.0], [xmlNewDoc], [:], [enable_xml="no"])
-    fi
-    
-    if test "x$enable_xml" != "xno"; then
-        HWLOC_REQUIRES="libxml-2.0 $HWLOC_REQUIRES"
-        AC_DEFINE([HWLOC_HAVE_XML], [1], [Define to 1 if you have the `xml' library.])
-        AC_SUBST([HWLOC_HAVE_XML], [1])
-        AC_CHECK_PROGS(XMLLINT, [xmllint])
-    else
-        AC_SUBST([HWLOC_HAVE_XML], [0])
-    fi
-    AC_SUBST(HWLOC_REQUIRES)
-    HWLOC_CFLAGS="$HWLOC_CFLAGS $HWLOC_XML_CFLAGS"
+    AC_CHECK_TYPES([wchar_t], [
+      AC_CHECK_FUNCS([putwc])
+    ], [], [[#include <wchar.h>]])
 
+    AC_CHECK_HEADERS([locale.h], [
+      AC_CHECK_FUNCS([setlocale])
+    ])
+    AC_CHECK_HEADERS([langinfo.h], [
+      AC_CHECK_FUNCS([nl_langinfo])
+    ])
+    hwloc_old_LIBS="$LIBS"
+    LIBS=
+    AC_CHECK_HEADERS([curses.h], [
+      AC_CHECK_HEADERS([term.h], [
+        AC_SEARCH_LIBS([tparm], [termcap ncursesw ncurses curses], [
+            AC_SUBST([HWLOC_TERMCAP_LIBS], ["$LIBS"])
+            AC_DEFINE([HWLOC_HAVE_LIBTERMCAP], [1],
+                      [Define to 1 if you have a library providing the termcap interface])
+          ])
+      ], [], [[#include <curses.h>]])
+    ])
+    LIBS="$hwloc_old_LIBS"
+    unset hwloc_old_LIBS
+
+    _HWLOC_CHECK_DIFF_U
+
     # Only generate this if we're building the utilities
     AC_CONFIG_FILES(
         hwloc_config_prefix[utils/Makefile]
@@ -250,18 +270,78 @@
 
     hwloc_build_tests=yes
 
+    # linux-libnuma.h testing requires libnuma with numa_bitmask_alloc()
+    AC_CHECK_DECL([numa_bitmask_alloc], [hwloc_have_linux_libnuma=yes], [],
+    	      [#include <numa.h>])
+
+    AC_CHECK_HEADERS([infiniband/verbs.h], [
+      AC_CHECK_LIB([ibverbs], [ibv_open_device],
+                   [AC_DEFINE([HAVE_LIBIBVERBS], 1, [Define to 1 if we have -libverbs])
+                    hwloc_have_libibverbs=yes])
+    ])
+
+    AC_CHECK_HEADERS([myriexpress.h], [
+      AC_MSG_CHECKING(if MX_NUMA_NODE exists)
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <myriexpress.h>]],
+                                         [[int a = MX_NUMA_NODE;]],
+                        [AC_MSG_RESULT(yes)
+                         AC_CHECK_LIB([myriexpress], [mx_get_info],
+                                      [AC_DEFINE([HAVE_MYRIEXPRESS], 1, [Define to 1 if we have -lmyriexpress])
+                                       hwloc_have_myriexpress=yes])],
+                        [AC_MSG_RESULT(no)])])])
+
+    AC_CHECK_HEADERS([cuda.h], [
+      AC_MSG_CHECKING(if CUDA_VERSION >= 3020)
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <cuda.h>
+#ifndef CUDA_VERSION
+#error CUDA_VERSION undefined
+#elif CUDA_VERSION < 3020
+#error CUDA_VERSION too old
+#endif]], [[int i = 3;]])],
+       [AC_MSG_RESULT(yes)
+        AC_CHECK_LIB([cuda], [cuInit],
+		     [AC_DEFINE([HAVE_CUDA], 1, [Define to 1 if we have -lcuda])
+		      hwloc_have_cuda=yes])],
+       [AC_MSG_RESULT(no)])])
+
+    AC_CHECK_HEADERS([cuda_runtime_api.h], [
+      AC_MSG_CHECKING(if CUDART_VERSION >= 3020)
+      AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <cuda_runtime_api.h>
+#ifndef CUDART_VERSION
+#error CUDART_VERSION undefined
+#elif CUDART_VERSION < 3020
+#error CUDART_VERSION too old
+#endif]], [[int i = 3;]])],
+       [AC_MSG_RESULT(yes)
+        AC_CHECK_LIB([cudart], [cudaGetDeviceCount],
+		     [AC_DEFINE([HAVE_CUDART], 1, [Define to 1 if we have -lcudart])
+		      hwloc_have_cudart=yes])],
+       [AC_MSG_RESULT(no)])])
+
+    if test "x$enable_xml" != "xno"; then
+        AC_CHECK_PROGS(XMLLINT, [xmllint])
+    fi
+
+    AC_CHECK_PROGS(BUNZIPP, bunzip2, false)
+
+    _HWLOC_CHECK_DIFF_U
+
     # Only generate these files if we're making the tests
     AC_CONFIG_FILES(
-        hwloc_config_prefix[tests/Makefile ]
+        hwloc_config_prefix[tests/Makefile]
         hwloc_config_prefix[tests/linux/Makefile]
+        hwloc_config_prefix[tests/linux/gather/Makefile]
         hwloc_config_prefix[tests/xml/Makefile]
         hwloc_config_prefix[tests/ports/Makefile]
-        hwloc_config_prefix[tests/linux/gather-topology.sh]
+        hwloc_config_prefix[tests/linux/hwloc-gather-topology.sh]
+        hwloc_config_prefix[tests/linux/gather/test-gather-topology.sh]
         hwloc_config_prefix[tests/linux/test-topology.sh]
         hwloc_config_prefix[tests/xml/test-topology.sh]
         hwloc_config_prefix[utils/test-hwloc-distrib.sh])
 
-    AC_CONFIG_COMMANDS([chmoding-scripts], [chmod +x ]hwloc_config_prefix[tests/linux/test-topology.sh ]hwloc_config_prefix[tests/xml/test-topology.sh ]hwloc_config_prefix[tests/linux/gather-topology.sh ]hwloc_config_prefix[utils/test-hwloc-distrib.sh])
+    AC_CONFIG_COMMANDS([chmoding-scripts], [chmod +x ]hwloc_config_prefix[tests/linux/test-topology.sh ]hwloc_config_prefix[tests/xml/test-topology.sh ]hwloc_config_prefix[tests/linux/hwloc-gather-topology.sh ]hwloc_config_prefix[tests/linux/gather/test-gather-topology.sh ]hwloc_config_prefix[utils/test-hwloc-distrib.sh])
 
     # These links are only needed in standalone mode.  It would
     # be nice to m4 foreach this somehow, but whenever I tried
@@ -281,6 +361,4 @@
 	hwloc_config_prefix[tests/ports/topology-freebsd.c]:hwloc_config_prefix[src/topology-freebsd.c]
 	hwloc_config_prefix[tests/ports/topology-hpux.c]:hwloc_config_prefix[src/topology-hpux.c])
     ])
-
-	echo done setting up tests
 ])dnl

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/configure.ac	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,8 @@
 # -*- shell-script -*-
 #
-# Copyright © 2009      CNRS, INRIA, Université Bordeaux 1
+# Copyright © 2009      CNRS
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009      Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 #
 # See COPYING in top-level directory.
@@ -34,10 +36,13 @@
 AM_INIT_AUTOMAKE([1.10 dist-bzip2 subdir-objects foreign tar-ustar -Wall -Werror])
 m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
 
-# Libtool2 is needed
+# We want new Libtool.  None of that old stuff.  Pfft.    
 m4_ifdef([LT_PREREQ], [],
 	 [m4_fatal([libtool version 2.2.6 or higher is required], [63])])
+LT_PREREQ([2.2.6])
 
+AC_LANG([C])
+
 # Make configure depend on the VERSION file, since it's used in AC_INIT
 AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION'])
 
@@ -124,7 +129,7 @@
              [HWLOC_BUILD_STANDALONE])])
 
 # Setup the hwloc core
-HWLOC_SETUP_CORE([], [], [AC_MSG_ERROR([Cannot build hwloc])], [1])
+HWLOC_SETUP_CORE([], [], [AC_MSG_ERROR([Cannot continue])], [1])
 
 # Setup hwloc's docs, utils, and tests
 AS_IF([test "$hwloc_mode" = "standalone"],
@@ -142,8 +147,8 @@
 
 # Setup libtool, but disable C++, F77, Java and Windows Resource
 # Compiler support -- we don't need that stuff.
-AM_DISABLE_SHARED
-AM_ENABLE_STATIC
+AM_ENABLE_SHARED
+AM_DISABLE_STATIC
 AM_PROG_LIBTOOL([win32-dll])
 LT_LANG([C])
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/contrib/dist/make_dist_tarball
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/contrib/dist/make_dist_tarball	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/contrib/dist/make_dist_tarball	2010-11-24 09:21:55 UTC (rev 7494)
@@ -23,8 +23,8 @@
 #
 
 AM_TARGET_VERSION=1.11.1
-AC_TARGET_VERSION=2.65
-LT_TARGET_VERSION=2.2.6b
+AC_TARGET_VERSION=2.68
+LT_TARGET_VERSION=2.4
 
 #
 # First things first -- check that the auto versions that we have are

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,5 @@
-# Copyright © 2009      INRIA, Université Bordeaux 1
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CPPFLAGS = $(HWLOC_CPPFLAGS)
@@ -57,11 +58,14 @@
        $(srcdir)/hwloc.doxy \
        $(HWLOC_top_srcdir)/include/hwloc.h \
        $(HWLOC_top_srcdir)/include/hwloc/helper.h \
-       $(HWLOC_top_srcdir)/include/hwloc/cpuset.h \
+       $(HWLOC_top_srcdir)/include/hwloc/bitmap.h \
        $(HWLOC_top_srcdir)/include/hwloc/glibc-sched.h \
        $(HWLOC_top_srcdir)/include/hwloc/linux.h \
        $(HWLOC_top_srcdir)/include/hwloc/linux-libnuma.h \
-       $(HWLOC_top_srcdir)/include/hwloc/openfabrics-verbs.h
+       $(HWLOC_top_srcdir)/include/hwloc/cuda.h \
+       $(HWLOC_top_srcdir)/include/hwloc/cudart.h \
+       $(HWLOC_top_srcdir)/include/hwloc/openfabrics-verbs.h \
+       $(HWLOC_top_srcdir)/include/hwloc/myriexpress.h
 
 #
 # Create the images that we need for the PDF output and the HTML
@@ -251,54 +255,76 @@
         $(DOX_MAN_DIR)/man3/HWLOC_TYPE_DEPTH_MULTIPLE.3 \
         $(DOX_MAN_DIR)/man3/HWLOC_TYPE_DEPTH_UNKNOWN.3 \
         $(DOX_MAN_DIR)/man3/hwloc_compare_types.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpubind_policy_t.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_alloc.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_free.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_dup.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_copy.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_all_but_cpu.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_and.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_andnot.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_clr.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_clr_range.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_compare.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_compare_first.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_fill.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_first.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_foreach_begin.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_foreach_end.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpubind_flags_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_membind_flags_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_membind_policy_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_alloc.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_alloc_full.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_free.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_dup.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_copy.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_allbut.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_and.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_andnot.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_clr.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_clr_range.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_compare.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_compare_first.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_fill.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_first.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_foreach_begin.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_foreach_end.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_glibc_sched_affinity.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_ith_ulong.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_from_ith_ulong.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_sscanf.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_from_ulong.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_intersects.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_isequal.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_isfull.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_isincluded.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_isset.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_iszero.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_last.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_next.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_not.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_only.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_or.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_set.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_set_range.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_set_ith_ulong.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_singlify.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_snprintf.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_asprintf.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_nodeset.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_nodeset_strict.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_nodeset.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_nodeset_strict.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_glibc_sched_affinity.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_to_ith_ulong.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_linux_libnuma_bitmask.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_linux_libnuma_nodemask.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_linux_libnuma_ulongs.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_string.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_from_ulong.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_intersects.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_isequal.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_isfull.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_isincluded.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_isset.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_iszero.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_last.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_next.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_not.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_or.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_set.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_set_range.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_singlify.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_snprintf.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_asprintf.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_t.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_glibc_sched_affinity.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_ith_ulong.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_linux_libnuma_bitmask.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_linux_libnuma_nodemask.3 \
         $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_linux_libnuma_ulongs.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_to_ulong.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_weight.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_cpuset_xor.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_from_linux_libnuma_bitmask.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_from_linux_libnuma_nodemask.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_from_linux_libnuma_ulongs.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_to_linux_libnuma_bitmask.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_to_linux_libnuma_nodemask.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_to_linux_libnuma_ulongs.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_to_ulong.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_weight.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_bitmap_xor.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cpuset_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_const_cpuset_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_nodeset_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_const_nodeset_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cuda_get_device_cpuset.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_cudart_get_device_cpuset.3 \
         $(DOX_MAN_DIR)/man3/hwloc_distribute.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_distributev.3 \
         $(DOX_MAN_DIR)/man3/hwloc_get_closest_objs.3 \
         $(DOX_MAN_DIR)/man3/hwloc_get_common_ancestor_obj.3 \
         $(DOX_MAN_DIR)/man3/hwloc_get_cache_covering_cpuset.3 \
@@ -338,10 +364,11 @@
         $(DOX_MAN_DIR)/man3/hwloc_get_type_or_below_depth.3 \
         $(DOX_MAN_DIR)/man3/hwloc_ibv_get_device_cpuset.3 \
         $(DOX_MAN_DIR)/man3/hwloc_linux_parse_cpumap_file.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_mx_board_get_device_cpuset.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_mx_endpoint_get_device_cpuset.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_attr_u.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_attr_u_hwloc_cache_attr_s.3 \
-        $(DOX_MAN_DIR)/man3/hwloc_obj_attr_u_hwloc_machine_attr_s.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_attr_u_hwloc_group_attr_s.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_memory_s.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_cpuset_snprintf.3 \
@@ -353,15 +380,35 @@
         $(DOX_MAN_DIR)/man3/hwloc_obj_type_of_string.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_type_string.3 \
         $(DOX_MAN_DIR)/man3/hwloc_obj_type_t.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_obj_get_info_by_name.3 \
         $(DOX_MAN_DIR)/man3/hwloc_get_cpubind.3 \
         $(DOX_MAN_DIR)/man3/hwloc_get_proc_cpubind.3 \
         $(DOX_MAN_DIR)/man3/hwloc_get_thread_cpubind.3 \
         $(DOX_MAN_DIR)/man3/hwloc_set_cpubind.3 \
         $(DOX_MAN_DIR)/man3/hwloc_set_proc_cpubind.3 \
         $(DOX_MAN_DIR)/man3/hwloc_set_thread_cpubind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_alloc.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_alloc_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_alloc_membind_policy.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_alloc_membind_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_alloc_membind_policy_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_free_membind.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_get_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_get_membind_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_set_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_set_membind_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_get_area_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_get_area_membind_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_set_area_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_set_area_membind_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_get_proc_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_get_proc_membind_nodeset.3  \
+        $(DOX_MAN_DIR)/man3/hwloc_set_proc_membind.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_set_proc_membind_nodeset.3  \
         $(DOX_MAN_DIR)/man3/hwloc_topology_check.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_destroy.3 \
 	$(DOX_MAN_DIR)/man3/hwloc_topology_export_xml.3 \
+	$(DOX_MAN_DIR)/man3/hwloc_topology_export_xmlbuffer.3 \
 	$(DOX_MAN_DIR)/man3/hwloc_topology_insert_misc_object_by_cpuset.3 \
 	$(DOX_MAN_DIR)/man3/hwloc_topology_insert_misc_object_by_parent.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_flags_e.3 \
@@ -378,21 +425,27 @@
         $(DOX_MAN_DIR)/man3/hwloc_topology_set_pid.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_set_synthetic.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_set_xml.3 \
+        $(DOX_MAN_DIR)/man3/hwloc_topology_set_xmlbuffer.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_support.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_discovery_support.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_cpubind_support.3 \
         $(DOX_MAN_DIR)/man3/hwloc_topology_t.3 \
-        $(DOX_MAN_DIR)/man3/hwlocality_binding.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_cpubinding.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_membinding.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_bitmap.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_configuration.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_conversion.3 \
-        $(DOX_MAN_DIR)/man3/hwlocality_cpuset.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_creation.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_cuda.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_cudart.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_glibc_sched.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_binding.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_helper_cpuset.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_find_cache.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_find_covering.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_find_coverings.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_find_inside.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_helper_nodeset.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_traversal.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_traversal_basic.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_helper_types.3 \
@@ -400,6 +453,8 @@
         $(DOX_MAN_DIR)/man3/hwlocality_linux_libnuma_bitmask.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_linux_libnuma_nodemask.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_linux_libnuma_ulongs.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_openfabrics.3 \
+        $(DOX_MAN_DIR)/man3/hwlocality_myriexpress.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_objects.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_traversal.3 \
         $(DOX_MAN_DIR)/man3/hwlocality_types.3

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen-config.cfg.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen-config.cfg.in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen-config.cfg.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,3 +1,4 @@
+# Copyright © 2010 INRIA
 # Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
 
 # See big comments in doxygen.cfg about the purpose of this file.
@@ -8,11 +9,14 @@
 		@top_srcdir@/doc/hwloc.doxy \
 		@top_srcdir@/include/hwloc.h \
 		@top_srcdir@/include/hwloc/helper.h \
-		@top_srcdir@/include/hwloc/cpuset.h \
+		@top_srcdir@/include/hwloc/bitmap.h \
 		@top_srcdir@/include/hwloc/glibc-sched.h \
 		@top_srcdir@/include/hwloc/linux.h \
 		@top_srcdir@/include/hwloc/linux-libnuma.h \
-		@top_srcdir@/include/hwloc/openfabrics-verbs.h
+		@top_srcdir@/include/hwloc/cuda.h \
+		@top_srcdir@/include/hwloc/cudart.h \
+		@top_srcdir@/include/hwloc/openfabrics-verbs.h \
+		@top_srcdir@/include/hwloc/myriexpress.h
 
 EXAMPLE_PATH   = @top_srcdir@/doc
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen.cfg
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen.cfg	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/doxygen.cfg	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,3 +1,4 @@
+# Copyright © 2010 INRIA
 # Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
 
 # Doxyfile 1.5.9

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc-hello.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc-hello.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc-hello.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,12 +1,16 @@
 /* Example hwloc API program.
  *
- * Copyright © 2009 INRIA, Université Bordeaux 1
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  *
- * hwloc-hello.c 
+ * hwloc-hello.c
  */
 
 #include <hwloc.h>
+#include <errno.h>
+#include <stdio.h>
+#include <string.h>
 
 static void print_children(hwloc_topology_t topology, hwloc_obj_t obj, 
                            int depth)
@@ -24,7 +28,7 @@
 int main(void)
 {
     int depth;
-    unsigned i;
+    unsigned i, n;
     unsigned long size;
     int levels;
     char string[128];
@@ -116,24 +120,47 @@
                    hwloc_get_nbobjs_by_depth(topology, depth) - 1);
     if (obj) {
         /* Get a copy of its cpuset that we may modify. */
-        cpuset = hwloc_cpuset_dup(obj->cpuset);
+        cpuset = hwloc_bitmap_dup(obj->cpuset);
 
         /* Get only one logical processor (in case the core is
            SMT/hyperthreaded). */
-        hwloc_cpuset_singlify(cpuset);
+        hwloc_bitmap_singlify(cpuset);
 
         /* And try to bind ourself there. */
         if (hwloc_set_cpubind(topology, cpuset, 0)) {
             char *str;
-            hwloc_cpuset_asprintf(&str, obj->cpuset);
-            printf("Couldn't bind to cpuset %s\n", str);
+            int error = errno;
+            hwloc_bitmap_asprintf(&str, obj->cpuset);
+            printf("Couldn't bind to cpuset %s: %s\n", str, strerror(error));
             free(str);
         }
 
         /* Free our cpuset copy */
-        hwloc_cpuset_free(cpuset);
+        hwloc_bitmap_free(cpuset);
     }
 
+    /*****************************************************************
+     * Sixth example:
+     * Allocate some memory on the last NUMA node, bind some existing
+     * memory to the last NUMA node.
+     *****************************************************************/
+    /* Get last node. */
+    n = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
+    if (n) {
+        void *m;
+        size_t size = 1024*1024;
+
+        obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, n - 1);
+        m = hwloc_alloc_membind_nodeset(topology, size, obj->nodeset,
+                HWLOC_MEMBIND_DEFAULT, 0);
+        hwloc_free_membind(topology, m, size);
+
+        m = malloc(size);
+        hwloc_set_area_membind_nodeset(topology, m, size, obj->nodeset,
+                HWLOC_MEMBIND_DEFAULT, 0);
+        free(m);
+    }
+
     /* Destroy topology object. */
     hwloc_topology_destroy(topology);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc.doxy
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc.doxy	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/doc/hwloc.doxy	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -408,9 +410,9 @@
 section is available and should probably be read first.  
 
 Each hwloc object contains a cpuset describing the list of processing
-units that it contains.  These cpusets may be used for \ref
-hwlocality_binding.  hwloc offers an extensive cpuset manipulation
-interface in hwloc/cpuset.h.
+units that it contains.  These bitmaps may be used for \ref
+hwlocality_cpubinding and \ref hwlocality_membinding.  hwloc offers an extensive
+bitmap manipulation interface in hwloc/bitmap.h.
 
 Moreover, hwloc also comes with additional helpers for
 interoperability with several commonly used environments.
@@ -428,7 +430,7 @@
 $prefix/share/doc/hwloc/ and your systems default man page tree (under
 $prefix, of course).
 
-\subsection portability Portability (especially when using the API or XML)
+\subsection portability Portability
 
 As shown in \ref cli_examples, hwloc can obtain information on a wide
 variety of hardware topologies.  However, some platforms and/or
@@ -439,6 +441,17 @@
 nodes and processor units (PUs).  No information about caches,
 sockets, or cores is available.
 
+Similarly, Operating System have varying support for CPU and memory binding,
+e.g. while some Operating Systems provide interfaces for all kinds of CPU and
+memory bindings, some others provide only interfaces for a limited number of
+kinds of CPU and memory binding, and some do not provide any binding interface
+at all.  Hwloc's binding functions would then simply return the ENOSYS error
+(Function not implemented), meaning that the underlying Operating System
+does not provide any interface for them. \ref hwlocality_cpubinding and \ref
+hwlocality_membinding provide more information on which hwloc binding functions
+should be preferred because interfaces for them are usually available on the
+supported Operating Systems.
+
 Here's the graphic output from lstopo on this platform when
 Simultaneous Multi-Threading (SMT) is enabled:
 
@@ -581,6 +594,26 @@
 in favor of hwloc, which is distributed as an Open MPI sub-project.
 
 \htmlonly
+</div><div class="section" id="further_reading">
+\endhtmlonly
+\section further_read Further Reading
+
+The documentation chapters include
+
+<ul>
+<li> \ref termsanddefs 
+<li> \ref tools
+<li> \ref envvar
+<li> \ref cpu_mem_bind
+<li> \ref interoperability
+<li> \ref threadsafety
+<li> \ref embed
+<li> \ref switchfromplpa
+</ul>
+
+Make sure to have had a look at those too!
+
+\htmlonly
 </div>
 \endhtmlonly
 
@@ -601,10 +634,24 @@
 <dt>CPU set</dt>
   <dd>The set of logical processors (or processing units) logically included in an object
   (if it makes sense).  They are always expressed using physical logical
-  processor numbers (as announced by the OS).  They are just masks, they do \em
-  not have any relation with an operating system actual binding notion like
+  processor numbers (as announced by the OS).  They are implemented as the
+  ::hwloc_bitmap_t opaque structure.  hwloc CPU sets are just masks, they
+  do \em not have any relation with an operating system actual binding notion like
   Linux' cpusets.</dd>
 
+<dt>Node set</dt>
+  <dd>The set of NUMA memory nodes logically included in an object
+  (if it makes sense).  They are always expressed using physical node
+  numbers (as announced by the OS).  They are implemented with the
+  ::hwloc_bitmap_t opaque structure.
+  as bitmaps.</dd>
+
+<dt>Bitmap</dt>
+  <dd>A possibly-infinite set of bits used for describing sets of objects
+  such as CPUs (CPU sets) or memory nodes (Node sets). They are implemented
+  with the ::hwloc_bitmap_t opaque structure.
+</dd>
+
 <dt>Parent object</dt>
   <dd>The object logically containing the current object, for example
   because its CPU set includes the CPU set of the current object.</dd>
@@ -694,20 +741,20 @@
 
 hwloc-bind binds processes to specific hardware objects through a
 flexible syntax.  A simple example is binding an executable to
-specific cores (or sockets or cpusets or ...).  The hwloc-bind(1) man
+specific cores (or sockets or bitmaps or ...).  The hwloc-bind(1) man
 page provides much more detail on what is possible.
 
 hwloc-bind can also be used to retrieve the current process' binding.
 
 \section cli_hwloc_calc hwloc-calc
 
-hwloc-calc is generally used to create cpuset strings to pass to
+hwloc-calc is generally used to create bitmap strings to pass to
 hwloc-bind.  Although hwloc-bind accepts many forms of object
-specification (i.e., cpuset strings are one of many forms that
+specification (i.e., bitmap strings are one of many forms that
 hwloc-bind understands), they can be useful, compact representations
 in shell scripts, for example.
 
-hwloc-calc generates cpuset strings from given hardware objects with
+hwloc-calc generates bitmap strings from given hardware objects with
 the ability to aggregate them, intersect them, and more.  hwloc-calc
 generally uses the same syntax than hwloc-bind, but multiple instances
 may be composed to generate complex combinations.  
@@ -718,14 +765,21 @@
 
 \section cli_hwloc_distrib hwloc-distrib
 
-hwloc-distrib generates a set of cpuset strings that are uniformly
+hwloc-distrib generates a set of bitmap strings that are uniformly
 distributed across the machine for the given number of processes.
 These strings may be used with hwloc-bind to run processes to maximize
 their memory bandwidth by properly distributing them across the
 machine.
 
+\section cli_hwloc_ps hwloc-ps
 
+hwloc-ps is a tool to display the bindings of processes that are
+currently running on the local machine.  By default, hwloc-ps only
+lists processes that are bound; unbound process (and Linux kernel
+threads) are not displayed.
 
+
+
 \page envvar Environment variables
 
 The behavior of the hwloc library and tools may be tuned thanks to the
@@ -772,6 +826,44 @@
 
 
 
+\page cpu_mem_bind CPU Binding and Memory Binding
+
+Some OSes do not systematically provide separate functions for CPU and Memory
+binding.  This means that CPU binding functions may have have effects on the
+memory binding policy, and changing the memory binding policy may change the CPU
+binding of the current thread.  This is often not a problem for the application,
+so by default hwloc will make use of these functions when they provide better
+binding support.
+
+If the application does not want any CPU binding change when changing the
+memory policy, it needs to use the HWLOC_MEMBIND_NOCPUBIND flag to prevent
+hwloc from using OS functions which would change the CPU binding.  Conversely,
+HWLOC_CPUBIND_NOMEMBIND can be passed to cpu binding function to prevent hwloc
+form using OS functions woudl change the memory binding policy.  Of course, this
+will thus reduce hwloc's support for binding, so their use is discouraged.
+
+One can however avoid using these flags but still closely control both memory
+and CPU binding, by allocating memory and touching it, and then changing the
+CPU binding.  The already-really-allocated memory will not be migrated, thus
+even if the memory binding policy gets changed by the CPU binding order, the
+effect will have been achieved.  On binding and allocating further memory, the
+CPU binding should be performed again in case the memory binding altered the
+previously-selected CPU binding.
+
+Not all OSes support the notion of a current memory binding policy for the
+current process but those often still provide a way to allocate data on a given
+node set. Conversely, some OSes support the notion of a current memory binding
+policy, and do not permit to allocate data on a given node set without just
+changing the current policy and allocate the data. Hwloc provides functions
+that set the current memory binding policies (if supported) as well as
+functions which allocat memory bound to given node set.  By default, it
+does not use the former to achieve the latter, so that users can use both
+on OSes where they are both supported, and get both effects at the same time.
+For convenience, hwloc however also provides the hwloc_alloc_membind_policy
+and hwloc_alloc_membind_policy_nodeset helpers which are allowed to change the
+current memory binding policy of the process, in order to achieve memory binding
+even if that means having to change the current memory binding policy.
+
 \page interoperability Interoperability with other software
 
 Although hwloc offers its own portable interface, it still may have to
@@ -817,6 +909,32 @@
   processors near an OpenFabrics device.
  </dd>
 
+<dt>Myrinet Express</dt>
+ <dd>
+  hwloc/myriexpress.h offers interoperability with the Myrinet
+  Express interface.  It can return the list of processors near
+  a Myrinet board managed by the MX driver.
+ </dd>
+
+<dt>NVIDIA CUDA</dt>
+ <dd>
+  hwloc/cuda.h and hwloc/cudart.h enable interoperability with
+  NVIDIA CUDA Driver and Runtime interfaces. For instance, it may
+  return the list of processors near NVIDIA GPUs.
+ </dd>
+
+<dt>Taskset command-line tool</dt>
+ <dd>
+  The taskset command-line tool is widely used for binding
+  processes. It manipulates CPU set strings in a format that
+  is slightly different from hwloc's one (it does not divide the
+  string in fixed-size subsets and separates them with commas).
+  To ease interoperability, hwloc offers routines to convert
+  hwloc CPU sets from/to taskset-specific string format.
+  Most hwloc command-line tools also support the --taskset
+  option to manipulate taskset-specific strings.
+ </dd>
+
 </dl>
 
 
@@ -922,9 +1040,8 @@
 to build, you can use hwloc's embedded m4 capabilities.  We have
 tested the embedded m4 with projects that use Autoconf 2.65, Automake
 1.11.1, and Libtool 2.2.6b.  Slightly earlier versions of may also
-work but are untested.  Autoconf versions prior to 2.63 are almost
-certain to not work because hwloc uses macros that were introduced in
-2.63.
+work but are untested.  Autoconf versions prior to 2.65 are almost
+certain to not work.
 
 You can either copy all the config/hwloc*m4 files from the hwloc
 source tree to the directory where your project's m4 files reside, or
@@ -933,22 +1050,46 @@
 your Makefile.am's ACLOCAL_AMFLAGS).
 
 The following macros can then be used from your configure script (only
-HWLOC_INIT <em>must</em> be invoked if using the m4 macros):
+HWLOC_SETUP_CORE <em>must</em> be invoked if using the m4 macros):
 
-- HWLOC_INIT(config-dir-prefix, action-upon-success,
-  action-upon-failure): Invoke the hwloc configuration tests and setup
-  the hwloc tree to build.  The first argument is the prefix to use
-  for AC_OUTPUT files -- it's where the hwloc tree is located relative
-  to <tt>$top_srcdir</tt>.  Hence, if your embedded hwloc is located
-  in the source tree at contrib/hwloc, you should pass
-  <tt>[contrib/hwloc]</tt> as the first argument.  If HWLOC_INIT and
-  the rest of <tt>configure</tt> completes successfully, then "make"
-  traversals of the hwloc tree with standard Automake targets (all,
-  clean, install, etc.) should behave as expected.  For example, it is
-  safe to list the hwloc directory in the SUBDIRS of a higher-level
-  Makefile.am.  <strong>NOTE: If the HWLOC_SET_SYMBOL_PREFIX macro is
-  used, it must be invoked <em>before</em> HWLOC_INIT.</strong>
+- HWLOC_SETUP_CORE(config-dir-prefix, action-upon-success,
+  action-upon-failure, print_banner_or_not): Invoke the hwloc
+  configuration tests and setup the hwloc tree to build.  The first
+  argument is the prefix to use for AC_OUTPUT files -- it's where the
+  hwloc tree is located relative to <tt>$top_srcdir</tt>.  Hence, if
+  your embedded hwloc is located in the source tree at contrib/hwloc,
+  you should pass <tt>[contrib/hwloc]</tt> as the first argument.  If
+  HWLOC_SETUP_CORE and the rest of <tt>configure</tt> completes
+  successfully, then "make" traversals of the hwloc tree with standard
+  Automake targets (all, clean, install, etc.) should behave as
+  expected.  For example, it is safe to list the hwloc directory in
+  the SUBDIRS of a higher-level Makefile.am.  The last argument, if
+  not empty, will cause the macro to display an announcement banner
+  that it is starting the hwloc core configuration tests.
 
+  HWLOC_SETUP_CORE will set the following environment variables and
+  AC_SUBST them: HWLOC_EMBEDDED_CFLAGS, HWLOC_EMBEDDED_CPPFLAGS, and
+  HWLOC_EMBEDDED_LIBS.  These flags are filled with the values
+  discovered in the hwloc-specific m4 tests, and can be used in your
+  build process as relevant.  The _CFLAGS, _CPPFLAGS, and _LIBS
+  variables are necessary to build libhwloc (or libhwloc_embedded)
+  itself.  
+
+  HWLOC_SETUP_CORE also sets HWLOC_EMBEDDED_LDADD environment variable
+  (and AC_SUBSTs it) to contain the location of the
+  libhwloc_embedded.la convenience Libtool archive.  It can be used in
+  your build process to link an application or other library against
+  the embedded hwloc library.
+
+  <strong>NOTE: If the HWLOC_SET_SYMBOL_PREFIX macro is used, it must
+  be invoked <em>before</em> HWLOC_SETUP_CORE.</strong>
+
+- HWLOC_BUILD_STANDALONE: HWLOC_SETUP_CORE defaults to building hwloc
+  in an "embedded" mode (described above).  If HWLOC_BUILD_STANDALONE
+  is invoked *before* HWLOC_SETUP_CORE, the embedded definitions will
+  not apply (e.g., libhwloc.la will be built, not
+  libhwloc_embedded.la).
+
 - HWLOC_SET_SYMBOL_PREFIX(foo_): Tells the hwloc to prefix all of
   hwloc's types and public symbols with "foo_"; meaning that function
   hwloc_init() becomes foo_hwloc_init().  Enum values are prefixed
@@ -963,23 +1104,36 @@
   an external hwloc, you may get multiple symbol definitions when
   linking your final library or application.
 
+- HWLOC_SETUP_DOCS, HWLOC_SETUP_UTILS, HWLOC_SETUP_TESTS: These three
+  macros only apply when hwloc is built in "standalone" mode (i.e.,
+  they should NOT be invoked unless HWLOC_BUILD_STANDALONE has already
+  been invoked).
+
 - HWLOC_DO_AM_CONDITIONALS: If you embed hwloc in a larger project and
-  build it conditionally (e.g., if HWLOC_INIT is invoked
-  conditionally), you must unconditionally invoke
+  build it conditionally with Automake (e.g., if HWLOC_SETUP_CORE is
+  invoked conditionally), you must unconditionally invoke
   HWLOC_DO_AM_CONDITIONALS to avoid warnings from Automake (for the
   cases where hwloc is not selected to be built).  This macro is
   necessary because hwloc uses some AM_CONDITIONALs to build itself,
   and AM_CONDITIONALs cannot be defined conditionally.  Note that it
   is safe (but unnecessary) to call HWLOC_DO_AM_CONDITIONALS even if
-  HWLOC_INIT is invoked unconditionally.
+  HWLOC_SETUP_CORE is invoked unconditionally.  If you are not using
+  Automake to build hwloc, this macro is unncessary (and will actually
+  cause errors because it invoked AM_* macros that will be undefined).
 
-NOTE: When using the HWLOC_INIT m4 macro, it may be necessary to
-explicitly invoke AC_CANONICAL_TARGET and/or AC_USE_SYSTEM_EXTENSIONS
-macros early in the configure script (e.g., after AC_INIT but before
+<strong>NOTE:</strong> When using the HWLOC_SETUP_CORE m4 macro, it may
+be necessary to explicitly invoke AC_CANONICAL_TARGET (which requires
+config.sub and config.guess) and/or AC_USE_SYSTEM_EXTENSIONS macros
+early in the configure script (e.g., after AC_INIT but before
 AM_INIT_AUTOMAKE).  See the Autoconf documentation for further
 information.
 
+Also note that hwloc's top-level configure.ac script uses exactly the
+macros described above to build hwloc in a standalone mode (by
+default).  You may want to examine it for one example of how these
+macros are used.
 
+
 \section embedding_example Example Embedding hwloc
 
 Here's an example of integrating with a larger project named sandbox
@@ -997,10 +1151,11 @@
      Libtool convenience library that hwloc will generate.  The latter 
      is any dependent support libraries that may be needed by 
      $(HWLOC_EMBEDDED_LDADD).
-  4. Add "$(HWLOC_EMBEDDED_CPPFLAGS)" to AM_CPPFLAGS
+  4. Add "$(HWLOC_EMBEDDED_CFLAGS)" to AM_CFLAGS
+  5. Add "$(HWLOC_EMBEDDED_CPPFLAGS)" to AM_CPPFLAGS
 shell$ edit configure.ac
   1. Add "HWLOC_SET_SYMBOL_PREFIX(sandbox_hwloc_)" line
-  2. Add "HWLOC_INIT([my-embedded-hwloc], [happy=yes], [happy=no])" line
+  2. Add "HWLOC_SETUP_CORE([my-embedded-hwloc], [happy=yes], [happy=no])" line
   3. Add error checking for happy=no case
 shell$ edit sandbox.c
   1. Add #include <hwloc.h>
@@ -1095,7 +1250,7 @@
 But as mentioned above, we discourage the use of these conversion
 methods for actual binding.  Instead, hwloc offers its own binding
 model using the \p cpuset field of objects.  These cpusets may be
-duplicated, modified, combined, etc. (see hwloc/cpuset.h for details)
+duplicated, modified, combined, etc. (see hwloc/bitmap.h for details)
 and then passed to hwloc_set_cpubind() for binding.
 
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
-# Copyright 2009      INRIA, Université Bordeaux 1
-# Copyright 2009-2010 Cisco Systems, Inc.  All rights reserved.
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
+# Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 # Only install the headers if we're in standalone mode (meaning:
 # *don't* install the headers if we're in embedded mode).
@@ -8,9 +9,13 @@
 include_HEADERS = hwloc.h
 include_hwlocdir = $(includedir)/hwloc
 include_hwloc_HEADERS = \
+        hwloc/bitmap.h \
         hwloc/cpuset.h \
         hwloc/helper.h \
+        hwloc/myriexpress.h \
         hwloc/openfabrics-verbs.h \
+        hwloc/cuda.h \
+        hwloc/cudart.h \
         hwloc/rename.h
 nodist_include_hwloc_HEADERS = hwloc/config.h 
 

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/bitmap.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/bitmap.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/bitmap.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,286 @@
+/*
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
+ * See COPYING in top-level directory.
+ */
+
+/** \file
+ * \brief The bitmap API, for use in hwloc itself.
+ */
+
+#ifndef HWLOC_BITMAP_H
+#define HWLOC_BITMAP_H
+
+#include <hwloc/config.h>
+#include <assert.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** \defgroup hwlocality_bitmap The bitmap API
+ *
+ * For use in hwloc itself, a hwloc_bitmap_t usually represents a set of
+ * objects, typically logical processors or memory nodes, indexed by OS
+ * physical number.
+ *
+ * A bitmap may be infinite.
+ * @{
+ */
+
+
+/** \brief
+ * Set of bits represented as an opaque pointer to an internal bitmap.
+ */
+typedef struct hwloc_bitmap_s * hwloc_bitmap_t;
+typedef const struct hwloc_bitmap_s * hwloc_const_bitmap_t;
+
+
+/*
+ * Bitmap allocation, freeing and copying.
+ */
+
+/** \brief Allocate a new empty bitmap.
+ *
+ * \returns A valid bitmap or NULL.
+ *
+ * The bitmap should be freed by a corresponding call to
+ * hwloc_bitmap_free(). */
+HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc(void) __hwloc_attribute_malloc;
+
+/** \brief Allocate a new full bitmap. */
+HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_alloc_full(void) __hwloc_attribute_malloc;
+
+/** \brief Free bitmap \p bitmap */
+HWLOC_DECLSPEC void hwloc_bitmap_free(hwloc_bitmap_t bitmap);
+
+/** \brief Duplicate bitmap \p bitmap by allocating a new bitmap and copying \p bitmap contents */
+HWLOC_DECLSPEC hwloc_bitmap_t hwloc_bitmap_dup(hwloc_const_bitmap_t bitmap) __hwloc_attribute_malloc;
+
+/** \brief Copy the contents of bitmap \p src into the already allocated bitmap \p dst */
+HWLOC_DECLSPEC void hwloc_bitmap_copy(hwloc_bitmap_t dst, hwloc_const_bitmap_t src);
+
+
+/*
+ * Bitmap/String Conversion
+ */
+
+/** \brief Stringify a bitmap.
+ *
+ * Up to \p buflen characters may be written in buffer \p buf.
+ *
+ * \return the number of character that were actually written if not truncating,
+ * or that would have been written  (not including the ending \\0).
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_snprintf(char * __hwloc_restrict buf, size_t buflen, hwloc_const_bitmap_t bitmap);
+
+/** \brief Stringify a bitmap into a newly allocated string.
+ *
+ * \return the number of character that were actually written
+ * (not including the ending \\0).
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
+
+/** \brief Parse a bitmap string and stores it in bitmap \p bitmap.
+ *
+ * Must start and end with a digit.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
+
+/** \brief Stringify a bitmap in the taskset-specific format.
+ *
+ * The taskset command manipulates bitmap strings that contain a single
+ * (possible very long) hexadecimal number starting with 0x.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_taskset_snprintf(char * __hwloc_restrict buf, size_t buflen, hwloc_const_bitmap_t bitmap);
+
+/** \brief Stringify a bitmap into a newly allocated taskset-specific string.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_taskset_asprintf(char ** strp, hwloc_const_bitmap_t bitmap);
+
+/** \brief Parse a taskset-specific bitmap string and stores it in bitmap \p bitmap.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_taskset_sscanf(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string);
+
+
+/*
+ * Building bitmaps.
+ */
+
+/** \brief Empty the bitmap \p bitmap */
+HWLOC_DECLSPEC void hwloc_bitmap_zero(hwloc_bitmap_t bitmap);
+
+/** \brief Fill bitmap \p bitmap with all possible indexes (even if those objects don't exist or are otherwise unavailable) */
+HWLOC_DECLSPEC void hwloc_bitmap_fill(hwloc_bitmap_t bitmap);
+
+/** \brief Empty the bitmap \p bitmap and add bit \p index */
+HWLOC_DECLSPEC void hwloc_bitmap_only(hwloc_bitmap_t bitmap, unsigned index);
+
+/** \brief Fill the bitmap \p and clear the index \p index */
+HWLOC_DECLSPEC void hwloc_bitmap_allbut(hwloc_bitmap_t bitmap, unsigned index);
+
+/** \brief Setup bitmap \p bitmap from unsigned long \p mask */
+HWLOC_DECLSPEC void hwloc_bitmap_from_ulong(hwloc_bitmap_t bitmap, unsigned long mask);
+
+/** \brief Setup bitmap \p bitmap from unsigned long \p mask used as \p i -th subset */
+HWLOC_DECLSPEC void hwloc_bitmap_from_ith_ulong(hwloc_bitmap_t bitmap, unsigned i, unsigned long mask);
+
+
+/*
+ * Modifying bitmaps.
+ */
+
+/** \brief Add index \p index in bitmap \p bitmap */
+HWLOC_DECLSPEC void hwloc_bitmap_set(hwloc_bitmap_t bitmap, unsigned index);
+
+/** \brief Add indexess from \p begin to \p end in bitmap \p bitmap */
+HWLOC_DECLSPEC void hwloc_bitmap_set_range(hwloc_bitmap_t bitmap, unsigned begin, unsigned end);
+
+/** \brief Replace \p i -th subset of bitmap \p bitmap with unsigned long \p mask */
+HWLOC_DECLSPEC void hwloc_bitmap_set_ith_ulong(hwloc_bitmap_t bitmap, unsigned i, unsigned long mask);
+
+/** \brief Remove index \p index from bitmap \p bitmap */
+HWLOC_DECLSPEC void hwloc_bitmap_clr(hwloc_bitmap_t bitmap, unsigned index);
+
+/** \brief Remove index from \p begin to \p end in bitmap \p bitmap */
+HWLOC_DECLSPEC void hwloc_bitmap_clr_range(hwloc_bitmap_t bitmap, unsigned begin, unsigned end);
+
+/** \brief Keep a single index among those set in bitmap \p bitmap
+ *
+ * May be useful before binding so that the process does not
+ * have a chance of migrating between multiple logical CPUs
+ * in the original mask.
+ */
+HWLOC_DECLSPEC void hwloc_bitmap_singlify(hwloc_bitmap_t bitmap);
+
+
+/*
+ * Consulting bitmaps.
+ */
+
+/** \brief Convert the beginning part of bitmap \p bitmap into unsigned long \p mask */
+HWLOC_DECLSPEC unsigned long hwloc_bitmap_to_ulong(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
+
+/** \brief Convert the \p i -th subset of bitmap \p bitmap into unsigned long mask */
+HWLOC_DECLSPEC unsigned long hwloc_bitmap_to_ith_ulong(hwloc_const_bitmap_t bitmap, unsigned i) __hwloc_attribute_pure;
+
+/** \brief Test whether index \p index is part of bitmap \p bitmap */
+HWLOC_DECLSPEC int hwloc_bitmap_isset(hwloc_const_bitmap_t bitmap, unsigned index) __hwloc_attribute_pure;
+
+/** \brief Test whether bitmap \p bitmap is empty */
+HWLOC_DECLSPEC int hwloc_bitmap_iszero(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
+
+/** \brief Test whether bitmap \p bitmap is completely full */
+HWLOC_DECLSPEC int hwloc_bitmap_isfull(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
+
+/** \brief Compute the first index (least significant bit) in bitmap \p bitmap
+ *
+ * \return -1 if no index is set.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_first(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
+
+/** \brief Compute the next index in bitmap \p bitmap which is after index \p prev
+ *
+ * \return -1 if no index with higher index is bitmap.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_next(hwloc_const_bitmap_t bitmap, unsigned prev) __hwloc_attribute_pure;
+
+/** \brief Compute the last index (most significant bit) in bitmap \p bitmap
+ *
+ * \return -1 if no index is bitmap, or if the index bitmap is infinite.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_last(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
+
+/** \brief Compute the "weight" of bitmap \p bitmap (i.e., number of
+ * indexes that are in the bitmap).
+ *
+ * \return the number of indexes that are in the bitmap.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_weight(hwloc_const_bitmap_t bitmap) __hwloc_attribute_pure;
+
+/** \brief Loop macro iterating on bitmap \p bitmap
+ * \hideinitializer
+ *
+ * \p index is the loop variable; it should be an unsigned int.  The
+ * first iteration will set \p index to the lowest index in the bitmap.
+ * Successive iterations will iterate through, in order, all remaining
+ * indexes that in the bitmap.  To be specific: each iteration will return a
+ * value for \p index such that hwloc_bitmap_isset(bitmap, index) is true.
+ *
+ * The assert prevents the loop from being infinite if the bitmap is infinite.
+ */
+#define hwloc_bitmap_foreach_begin(index, bitmap) \
+do { \
+        assert(hwloc_bitmap_weight(bitmap) != -1); \
+        for (index = hwloc_bitmap_first(bitmap); \
+             (unsigned) index != (unsigned) -1; \
+             index = hwloc_bitmap_next(bitmap, index)) { \
+/** \brief End of loop. Needs a terminating ';'.
+ * \hideinitializer
+ *
+ * \sa hwloc_bitmap_foreach_begin */
+#define hwloc_bitmap_foreach_end() \
+        } \
+} while (0)
+
+
+/*
+ * Combining bitmaps.
+ */
+
+/** \brief Or bitmaps \p bitmap1 and \p bitmap2 and store the result in bitmap \p res */
+HWLOC_DECLSPEC void hwloc_bitmap_or (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
+
+/** \brief And bitmaps \p bitmap1 and \p bitmap2 and store the result in bitmap \p res */
+HWLOC_DECLSPEC void hwloc_bitmap_and (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
+
+/** \brief And bitmap \p bitmap1 and the negation of \p bitmap2 and store the result in bitmap \p res */
+HWLOC_DECLSPEC void hwloc_bitmap_andnot (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
+
+/** \brief Xor bitmaps \p bitmap1 and \p bitmap2 and store the result in bitmap \p res */
+HWLOC_DECLSPEC void hwloc_bitmap_xor (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2);
+
+/** \brief Negate bitmap \p bitmap and store the result in bitmap \p res */
+HWLOC_DECLSPEC void hwloc_bitmap_not (hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap);
+
+
+/*
+ * Comparing bitmaps.
+ */
+
+/** \brief Test whether bitmaps \p bitmap1 and \p bitmap2 intersects */
+HWLOC_DECLSPEC int hwloc_bitmap_intersects (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
+
+/** \brief Test whether bitmap \p sub_bitmap is part of bitmap \p super_bitmap */
+HWLOC_DECLSPEC int hwloc_bitmap_isincluded (hwloc_const_bitmap_t sub_bitmap, hwloc_const_bitmap_t super_bitmap) __hwloc_attribute_pure;
+
+/** \brief Test whether bitmap \p bitmap1 is equal to bitmap \p bitmap2 */
+HWLOC_DECLSPEC int hwloc_bitmap_isequal (hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
+
+/** \brief Compare bitmaps \p bitmap1 and \p bitmap2 using their lowest index.
+ *
+ * Smaller least significant bit is smaller.
+ * The empty bitmap is considered higher than anything.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_compare_first(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
+
+/** \brief Compare bitmaps \p bitmap1 and \p bitmap2 using their highest index.
+ *
+ * Higher most significant bit is higher.
+ * The empty bitmap is considered lower than anything.
+ */
+HWLOC_DECLSPEC int hwloc_bitmap_compare(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) __hwloc_attribute_pure;
+
+/** @} */
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* HWLOC_BITMAP_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/config.h.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/config.h.in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/config.h.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /* -*- c -*-
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -95,8 +97,6 @@
 /* Defined to 1 if the CPU_SET macro works */
 #undef HWLOC_HAVE_CPU_SET
 
-#define HWLOC_NBMAXCPUS	1024
-
 /* Defined to 1 if you have the <stdint.h> header file. */
 #undef HWLOC_HAVE_STDINT_H
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cpuset.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cpuset.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cpuset.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,238 +1,75 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
 /** \file
- * \brief The Cpuset API, for use in hwloc itself.
+ * \brief The old deprecated Cpuset API.
+ * This interface should not be used anymore, it will be dropped in a later release.
+ *
+ * hwloc/bitmap.h should be used instead. Most hwloc_cpuset_foo functions are
+ * replaced with hwloc_bitmap_foo. The only exceptions are:
+ * - hwloc_cpuset_from_string -> hwloc_bitmap_sscanf
+ * - hwloc_cpuset_cpu -> hwloc_bitmap_only
+ * - hwloc_cpuset_all_but_cpu -> hwloc_bitmap_allbut
  */
 
 #ifndef HWLOC_CPUSET_H
 #define HWLOC_CPUSET_H
 
-#include <hwloc/config.h>
-
-
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#include "hwloc/bitmap.h"
 
-/** \defgroup hwlocality_cpuset The Cpuset API
- *
- * For use in hwloc itself, a hwloc_cpuset_t represents a set of logical
- * processors.
- *
- * \note cpusets are indexed by OS logical processor number.
- * @{
- */
+static __hwloc_inline hwloc_bitmap_t __hwloc_attribute_deprecated hwloc_cpuset_alloc(void) { return hwloc_bitmap_alloc(); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_free(hwloc_bitmap_t bitmap) { hwloc_bitmap_free(bitmap); }
+static __hwloc_inline hwloc_bitmap_t __hwloc_attribute_deprecated hwloc_cpuset_dup(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_dup(bitmap); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_copy(hwloc_bitmap_t dst, hwloc_const_bitmap_t src) { hwloc_bitmap_copy(dst, src); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_snprintf(char * __hwloc_restrict buf, size_t buflen, hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_snprintf(buf, buflen, bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_asprintf(char ** strp, hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_asprintf(strp, bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_from_string(hwloc_bitmap_t bitmap, const char * __hwloc_restrict string) { return hwloc_bitmap_sscanf(bitmap, string); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_zero(hwloc_bitmap_t bitmap) { hwloc_bitmap_zero(bitmap); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_fill(hwloc_bitmap_t bitmap) { hwloc_bitmap_fill(bitmap); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_from_ulong(hwloc_bitmap_t bitmap, unsigned long mask) { hwloc_bitmap_from_ulong(bitmap, mask); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_from_ith_ulong(hwloc_bitmap_t bitmap, unsigned i, unsigned long mask) { hwloc_bitmap_from_ith_ulong(bitmap, i, mask); }
+static __hwloc_inline unsigned __hwloc_attribute_deprecated long hwloc_cpuset_to_ulong(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_to_ulong(bitmap); }
+static __hwloc_inline unsigned __hwloc_attribute_deprecated long hwloc_cpuset_to_ith_ulong(hwloc_const_bitmap_t bitmap, unsigned i) { return hwloc_bitmap_to_ith_ulong(bitmap, i); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_cpu(hwloc_bitmap_t bitmap, unsigned index) { hwloc_bitmap_only(bitmap, index); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_all_but_cpu(hwloc_bitmap_t bitmap, unsigned index) { hwloc_bitmap_allbut(bitmap, index); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_set(hwloc_bitmap_t bitmap, unsigned index) { hwloc_bitmap_set(bitmap, index); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_set_range(hwloc_bitmap_t bitmap, unsigned begin, unsigned end) { hwloc_bitmap_set_range(bitmap, begin, end); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_set_ith_ulong(hwloc_bitmap_t bitmap, unsigned i, unsigned long mask) { hwloc_bitmap_set_ith_ulong(bitmap, i, mask); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_clr(hwloc_bitmap_t bitmap, unsigned index) { hwloc_bitmap_clr(bitmap, index); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_clr_range(hwloc_bitmap_t bitmap, unsigned begin, unsigned end) { hwloc_bitmap_clr_range(bitmap, begin, end); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_isset(hwloc_const_bitmap_t bitmap, unsigned index) { return hwloc_bitmap_isset(bitmap, index); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_iszero(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_iszero(bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_isfull(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_isfull(bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_isequal(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { return hwloc_bitmap_isequal(bitmap1, bitmap2); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_intersects(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { return hwloc_bitmap_intersects(bitmap1, bitmap2); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_isincluded(hwloc_const_bitmap_t sub_bitmap, hwloc_const_bitmap_t super_bitmap) { return hwloc_bitmap_isincluded(sub_bitmap, super_bitmap); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_or(hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { hwloc_bitmap_or(res, bitmap1, bitmap2); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_and(hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { hwloc_bitmap_and(res, bitmap1, bitmap2); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_andnot(hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { hwloc_bitmap_andnot(res, bitmap1, bitmap2); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_xor(hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { hwloc_bitmap_xor(res, bitmap1, bitmap2); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_not(hwloc_bitmap_t res, hwloc_const_bitmap_t bitmap) { hwloc_bitmap_not(res, bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_first(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_first(bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_last(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_last(bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_next(hwloc_const_bitmap_t bitmap, unsigned prev) { return hwloc_bitmap_next(bitmap, prev); }
+static __hwloc_inline void __hwloc_attribute_deprecated hwloc_cpuset_singlify(hwloc_bitmap_t bitmap) { hwloc_bitmap_singlify(bitmap); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_compare_first(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { return hwloc_bitmap_compare_first(bitmap1, bitmap2); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_compare(hwloc_const_bitmap_t bitmap1, hwloc_const_bitmap_t bitmap2) { return hwloc_bitmap_compare(bitmap1, bitmap2); }
+static __hwloc_inline int __hwloc_attribute_deprecated hwloc_cpuset_weight(hwloc_const_bitmap_t bitmap) { return hwloc_bitmap_weight(bitmap); }
 
+#define hwloc_cpuset_foreach_begin hwloc_bitmap_foreach_begin
+#define hwloc_cpuset_foreach_end hwloc_bitmap_foreach_end
 
-/** \brief
- * Set of CPUs represented as an opaque pointer to an internal bitmask.
- */
-typedef struct hwloc_cpuset_s * hwloc_cpuset_t;
-typedef const struct hwloc_cpuset_s * hwloc_const_cpuset_t;
-
-
-/*
- * CPU set allocation, freeing and copying.
- */
-
-/** \brief Allocate a new empty CPU set.  
-    
-    \returns A valid CPU set or NULL.
-
-    The CPU set should be freed by a corresponding call to
-    hwloc_cpuset_free(). */
-HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_alloc(void) __hwloc_attribute_malloc;
-
-/** \brief Free CPU set \p set */
-HWLOC_DECLSPEC void hwloc_cpuset_free(hwloc_cpuset_t set);
-
-/** \brief Duplicate CPU set \p set by allocating a new CPU set and copying \p set's contents */
-HWLOC_DECLSPEC hwloc_cpuset_t hwloc_cpuset_dup(hwloc_const_cpuset_t set) __hwloc_attribute_malloc;
-
-/** \brief Copy the contents of CPU set \p src into the already allocated CPU set \p dst */
-HWLOC_DECLSPEC void hwloc_cpuset_copy(hwloc_cpuset_t dst, hwloc_const_cpuset_t src);
-
-
-/*
- * Cpuset/String Conversion
- */
-
-/** \brief Stringify a cpuset.
- *
- * Up to \p buflen characters may be written in buffer \p buf.
- *
- * \return the number of character that were actually written if not truncating,
- * or that would have been written  (not including the ending \\0).
- */
-HWLOC_DECLSPEC int hwloc_cpuset_snprintf(char * __hwloc_restrict buf, size_t buflen, hwloc_const_cpuset_t set);
-
-/** \brief Stringify a cpuset into a newly allocated string.
- *
- * \return the number of character that were actually written
- * (not including the ending \\0).
- */
-HWLOC_DECLSPEC int hwloc_cpuset_asprintf(char ** strp, hwloc_const_cpuset_t set);
-
-/** \brief Parse a cpuset string and stores it in CPU set \p set.
- *
- * Must start and end with a digit.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_from_string(hwloc_cpuset_t set, const char * __hwloc_restrict string);
-
-
-/*
- *  Primitives & macros for building, modifying and consulting "sets" of cpus.
- */
-
-/** \brief Empty the CPU set \p set */
-HWLOC_DECLSPEC void hwloc_cpuset_zero(hwloc_cpuset_t set);
-
-/** \brief Fill CPU set \p set with all possible CPUs (even if those CPUs don't exist or are otherwise unavailable) */
-HWLOC_DECLSPEC void hwloc_cpuset_fill(hwloc_cpuset_t set);
-
-/** \brief Setup CPU set \p set from unsigned long \p mask */
-HWLOC_DECLSPEC void hwloc_cpuset_from_ulong(hwloc_cpuset_t set, unsigned long mask);
-
-/** \brief Setup CPU set \p set from unsigned long \p mask used as \p i -th subset */
-HWLOC_DECLSPEC void hwloc_cpuset_from_ith_ulong(hwloc_cpuset_t set, unsigned i, unsigned long mask);
-
-/** \brief Convert the beginning part of CPU set \p set into unsigned long \p mask */
-HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ulong(hwloc_const_cpuset_t set) __hwloc_attribute_pure;
-
-/** \brief Convert the \p i -th subset of CPU set \p set into unsigned long mask */
-HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ith_ulong(hwloc_const_cpuset_t set, unsigned i) __hwloc_attribute_pure;
-
-/** \brief Empty the CPU set \p set and add CPU \p cpu */
-HWLOC_DECLSPEC void hwloc_cpuset_cpu(hwloc_cpuset_t set, unsigned cpu);
-
-/** \brief Empty the CPU set \p set and add all but the CPU \p cpu */
-HWLOC_DECLSPEC void hwloc_cpuset_all_but_cpu(hwloc_cpuset_t set, unsigned cpu);
-
-/** \brief Add CPU \p cpu in CPU set \p set */
-HWLOC_DECLSPEC void hwloc_cpuset_set(hwloc_cpuset_t set, unsigned cpu);
-
-/** \brief Add CPUs from \p begincpu to \p endcpu in CPU set \p set */
-HWLOC_DECLSPEC void hwloc_cpuset_set_range(hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu);
-
-/** \brief Remove CPU \p cpu from CPU set \p set */
-HWLOC_DECLSPEC void hwloc_cpuset_clr(hwloc_cpuset_t set, unsigned cpu);
-
-/** \brief Remove CPUs from \p begincpu to \p endcpu in CPU set \p set */
-HWLOC_DECLSPEC void hwloc_cpuset_clr_range(hwloc_cpuset_t set, unsigned begincpu, unsigned endcpu);
-
-/** \brief Test whether CPU \p cpu is part of set \p set */
-HWLOC_DECLSPEC int hwloc_cpuset_isset(hwloc_const_cpuset_t set, unsigned cpu) __hwloc_attribute_pure;
-
-/** \brief Test whether set \p set is empty */
-HWLOC_DECLSPEC int hwloc_cpuset_iszero(hwloc_const_cpuset_t set) __hwloc_attribute_pure;
-
-/** \brief Test whether set \p set is completely full */
-HWLOC_DECLSPEC int hwloc_cpuset_isfull(hwloc_const_cpuset_t set) __hwloc_attribute_pure;
-
-/** \brief Test whether set \p set1 is equal to set \p set2 */
-HWLOC_DECLSPEC int hwloc_cpuset_isequal (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
-
-/** \brief Test whether sets \p set1 and \p set2 intersects */
-HWLOC_DECLSPEC int hwloc_cpuset_intersects (hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
-
-/** \brief Test whether set \p sub_set is part of set \p super_set */
-HWLOC_DECLSPEC int hwloc_cpuset_isincluded (hwloc_const_cpuset_t sub_set, hwloc_const_cpuset_t super_set) __hwloc_attribute_pure;
-
-/** \brief Or sets \p set1 and \p set2 and store the result in set \p res */
-HWLOC_DECLSPEC void hwloc_cpuset_or (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
-
-/** \brief And sets \p set1 and \p set2 and store the result in set \p res */
-HWLOC_DECLSPEC void hwloc_cpuset_and (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
-
-/** \brief And set \p set1 and the negation of \p set2 and store the result in set \p res */
-HWLOC_DECLSPEC void hwloc_cpuset_andnot (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
-
-/** \brief Xor sets \p set1 and \p set2 and store the result in set \p res */
-HWLOC_DECLSPEC void hwloc_cpuset_xor (hwloc_cpuset_t res, hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2);
-
-/** \brief Negate set \p set and store the result in set \p res */
-HWLOC_DECLSPEC void hwloc_cpuset_not (hwloc_cpuset_t res, hwloc_const_cpuset_t set);
-
-/** \brief Compute the first CPU (least significant bit) in CPU set \p set
- *
- * \return -1 if no CPU is set.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_first(hwloc_const_cpuset_t set) __hwloc_attribute_pure;
-
-/** \brief Compute the last CPU (most significant bit) in CPU set \p set
- *
- * \return -1 if no CPU is set.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_last(hwloc_const_cpuset_t set) __hwloc_attribute_pure;
-
-/** \brief Compute the next CPU in CPU set \p set which is after CPU \p prev_cpu
- *
- * \return -1 if no CPU with higher index is set.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_next(hwloc_const_cpuset_t set, unsigned prev_cpu) __hwloc_attribute_pure;
-
-/** \brief Keep a single CPU among those set in CPU set \p set
- *
- * May be useful before binding so that the process does not
- * have a chance of migrating between multiple logical CPUs
- * in the original mask.
- */
-HWLOC_DECLSPEC void hwloc_cpuset_singlify(hwloc_cpuset_t set);
-
-/** \brief Compare CPU sets \p set1 and \p set2 using their lowest index CPU.
- *
- * Smaller least significant bit is smaller.
- * The empty CPU set is considered higher than anything.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_compare_first(hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
-
-/** \brief Compare CPU sets \p set1 and \p set2 using their highest index CPU.
- *
- * Higher most significant bit is higher.
- * The empty CPU set is considered lower than anything.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_compare(hwloc_const_cpuset_t set1, hwloc_const_cpuset_t set2) __hwloc_attribute_pure;
-
-/** \brief Compute the "weight" of CPU set \p set (i.e., number of
- * CPUs that are in the set).
- *
- * \return the number of CPUs that are in the set.
- */
-HWLOC_DECLSPEC int hwloc_cpuset_weight(hwloc_const_cpuset_t set) __hwloc_attribute_pure;
-
-/** \brief Loop macro iterating on CPU set \p set
- * \hideinitializer
- *
- * \p cpu is the loop variable; it should be an unsigned int.  The
- * first iteration will set \p cpu to the lowest index CPU in the set.
- * Successive iterations will iterate through, in order, all remaining
- * CPUs that in the set.  To be specific: each iteration will return a
- * value for \p cpu such that hwloc_cpuset_isset(set, cpu) is true.
- */
-#define hwloc_cpuset_foreach_begin(cpu, set) \
-do { \
-        for (cpu = hwloc_cpuset_first(set); \
-             (unsigned) cpu != (unsigned) -1; \
-             cpu = hwloc_cpuset_next(set, cpu)) { \
-/** \brief End of loop. Needs a terminating ';'.
- * \hideinitializer
- *
- * \sa hwloc_cpuset_foreach_begin */
-#define hwloc_cpuset_foreach_end() \
-        } \
-} while (0)
-
-/** @} */
-
-
 #ifdef __cplusplus
 } /* extern "C" */
 #endif
 
-
 #endif /* HWLOC_CPUSET_H */

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cuda.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cuda.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cuda.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,89 @@
+/*
+ * Copyright © 2010 INRIA
+ * Copyright © 2010 Université Bordeaux 1
+ * See COPYING in top-level directory.
+ */
+
+/** \file
+ * \brief Macros to help interaction between hwloc and the CUDA Driver API.
+ *
+ * Applications that use both hwloc and the CUDA Driver API may want to
+ * include this file so as to get topology information for CUDA devices.
+ *
+ */
+
+#ifndef HWLOC_CUDA_H
+#define HWLOC_CUDA_H
+
+#include <hwloc.h>
+#include <hwloc/config.h>
+#include <hwloc/linux.h>
+
+#include <cuda.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** \defgroup hwlocality_cuda CUDA Driver API Specific Functions
+ * @{
+ */
+
+/** \brief Get the CPU set of logical processors that are physically
+ * close to device \p cudevice.
+ *
+ * For the given CUDA Driver API device \p cudevice, read the corresponding
+ * kernel-provided cpumap file and return the corresponding CPU set.
+ * This function is currently only implemented in a meaningful way for
+ * Linux; other systems will simply get a full cpuset.
+ */
+static __hwloc_inline int
+hwloc_cuda_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
+			     CUdevice cudevice, hwloc_cpuset_t set)
+{
+#ifdef HWLOC_LINUX_SYS
+  /* If we're on Linux, use the sysfs mechanism to get the local cpus */
+#define HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX 128
+  CUresult cres;
+  int deviceid;
+  int busid;
+  char path[HWLOC_CUDA_DEVICE_SYSFS_PATH_MAX];
+  FILE *sysfile = NULL;
+
+  cres = cuDeviceGetAttribute(&busid, CU_DEVICE_ATTRIBUTE_PCI_BUS_ID, cudevice);
+  if (cres != CUDA_SUCCESS) {
+    errno = ENOSYS;
+    return -1;
+  }
+  cres = cuDeviceGetAttribute(&deviceid, CU_DEVICE_ATTRIBUTE_PCI_DEVICE_ID, cudevice);
+  if (cres != CUDA_SUCCESS) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  sprintf(path, "/sys/bus/pci/devices/0000:%02x:%02x.0/local_cpus", busid, deviceid);
+  sysfile = fopen(path, "r");
+  if (!sysfile)
+    return -1;
+
+  hwloc_linux_parse_cpumap_file(sysfile, set);
+
+  fclose(sysfile);
+#else
+  /* Non-Linux systems simply get a full cpuset */
+  hwloc_bitmap_copy(set, hwloc_topology_get_complete_cpuset(topology));
+#endif
+  return 0;
+}
+
+/** @} */
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* HWLOC_CUDA_H */

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cudart.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cudart.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/cudart.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,83 @@
+/*
+ * Copyright © 2010 INRIA
+ * Copyright © 2010 Université Bordeaux 1
+ * See COPYING in top-level directory.
+ */
+
+/** \file
+ * \brief Macros to help interaction between hwloc and the CUDA Runtime API.
+ *
+ * Applications that use both hwloc and the CUDA Runtime API may want to
+ * include this file so as to get topology information for CUDA devices.
+ *
+ */
+
+#ifndef HWLOC_CUDART_H
+#define HWLOC_CUDART_H
+
+#include <hwloc.h>
+#include <hwloc/config.h>
+#include <hwloc/linux.h>
+
+#include <cuda_runtime_api.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** \defgroup hwlocality_cudart CUDA Runtime API Specific Functions
+ * @{
+ */
+
+/** \brief Get the CPU set of logical processors that are physically
+ * close to device \p cudevice.
+ *
+ * For the given CUDA Runtime API device \p cudevice, read the corresponding
+ * kernel-provided cpumap file and return the corresponding CPU set.
+ * This function is currently only implemented in a meaningful way for
+ * Linux; other systems will simply get a full cpuset.
+ */
+static __hwloc_inline int
+hwloc_cudart_get_device_cpuset(hwloc_topology_t topology __hwloc_attribute_unused,
+			       int device, hwloc_cpuset_t set)
+{
+#ifdef HWLOC_LINUX_SYS
+  /* If we're on Linux, use the sysfs mechanism to get the local cpus */
+#define HWLOC_CUDART_DEVICE_SYSFS_PATH_MAX 128
+  cudaError_t cerr;
+  struct cudaDeviceProp prop;
+  char path[HWLOC_CUDART_DEVICE_SYSFS_PATH_MAX];
+  FILE *sysfile = NULL;
+
+  cerr = cudaGetDeviceProperties(&prop, device);
+  if (cerr) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  sprintf(path, "/sys/bus/pci/devices/0000:%02x:%02x.0/local_cpus", prop.pciBusID, prop.pciDeviceID);
+  sysfile = fopen(path, "r");
+  if (!sysfile)
+    return -1;
+
+  hwloc_linux_parse_cpumap_file(sysfile, set);
+
+  fclose(sysfile);
+#else
+  /* Non-Linux systems simply get a full cpuset */
+  hwloc_bitmap_copy(set, hwloc_topology_get_complete_cpuset(topology));
+#endif
+  return 0;
+}
+
+/** @} */
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* HWLOC_CUDART_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/glibc-sched.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/glibc-sched.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/glibc-sched.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -50,16 +52,16 @@
 #ifdef CPU_ZERO_S
   unsigned cpu;
   CPU_ZERO_S(schedsetsize, schedset);
-  hwloc_cpuset_foreach_begin(cpu, hwlocset)
+  hwloc_bitmap_foreach_begin(cpu, hwlocset)
     CPU_SET_S(cpu, schedsetsize, schedset);
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 #else /* !CPU_ZERO_S */
   unsigned cpu;
   CPU_ZERO(schedset);
   assert(schedsetsize == sizeof(cpu_set_t));
-  hwloc_cpuset_foreach_begin(cpu, hwlocset)
+  hwloc_bitmap_foreach_begin(cpu, hwlocset)
     CPU_SET(cpu, schedset);
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 #endif /* !CPU_ZERO_S */
   return 0;
 }
@@ -75,19 +77,17 @@
 hwloc_cpuset_from_glibc_sched_affinity(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t hwlocset,
                                        const cpu_set_t *schedset, size_t schedsetsize)
 {
-  hwloc_cpuset_zero(hwlocset);
+  hwloc_bitmap_zero(hwlocset);
 #ifdef CPU_ZERO_S
   int cpu, count;
   count = CPU_COUNT_S(schedsetsize, schedset);
   cpu = 0;
   while (count) {
     if (CPU_ISSET_S(cpu, schedsetsize, schedset)) {
-      hwloc_cpuset_set(hwlocset, cpu);
+      hwloc_bitmap_set(hwlocset, cpu);
       count--;
     }
     cpu++;
-    if (cpu > HWLOC_NBMAXCPUS)
-      break;
   }
 #else /* !CPU_ZERO_S */
   /* sched.h does not support dynamic cpu_set_t (introduced in glibc 2.7),
@@ -95,9 +95,9 @@
    */
   int cpu;
   assert(schedsetsize == sizeof(cpu_set_t));
-  for(cpu=0; cpu<CPU_SETSIZE && cpu<HWLOC_NBMAXCPUS; cpu++)
+  for(cpu=0; cpu<CPU_SETSIZE; cpu++)
     if (CPU_ISSET(cpu, schedset))
-      hwloc_cpuset_set(hwlocset, cpu);
+      hwloc_bitmap_set(hwlocset, cpu);
 #endif /* !CPU_ZERO_S */
   return 0;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/helper.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/helper.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/helper.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -205,7 +207,7 @@
 static __hwloc_inline int __hwloc_attribute_pure
 hwloc_obj_is_in_subtree (hwloc_topology_t topology __hwloc_attribute_unused, hwloc_obj_t obj, hwloc_obj_t subtree_root)
 {
-  return hwloc_cpuset_isincluded(obj->cpuset, subtree_root->cpuset);
+  return hwloc_bitmap_isincluded(obj->cpuset, subtree_root->cpuset);
 }
 
 /** @} */
@@ -228,13 +230,13 @@
 hwloc_get_first_largest_obj_inside_cpuset(hwloc_topology_t topology, hwloc_const_cpuset_t set)
 {
   hwloc_obj_t obj = hwloc_get_root_obj(topology);
-  if (!hwloc_cpuset_intersects(obj->cpuset, set))
+  if (!hwloc_bitmap_intersects(obj->cpuset, set))
     return NULL;
-  while (!hwloc_cpuset_isincluded(obj->cpuset, set)) {
+  while (!hwloc_bitmap_isincluded(obj->cpuset, set)) {
     /* while the object intersects without being included, look at its children */
     hwloc_obj_t child = NULL;
     while ((child = hwloc_get_next_child(topology, obj, child)) != NULL) {
-      if (hwloc_cpuset_intersects(child->cpuset, set))
+      if (hwloc_bitmap_intersects(child->cpuset, set))
 	break;
     }
     if (!child)
@@ -265,7 +267,7 @@
 					   unsigned depth, hwloc_obj_t prev)
 {
   hwloc_obj_t next = hwloc_get_next_obj_by_depth(topology, depth, prev);
-  while (next && !hwloc_cpuset_isincluded(next->cpuset, set))
+  while (next && !hwloc_bitmap_isincluded(next->cpuset, set))
     next = next->next_cousin;
   return next;
 }
@@ -295,7 +297,7 @@
   unsigned count = 0;
   hwloc_obj_t obj = hwloc_get_obj_by_depth (topology, depth, 0);
   while (obj) {
-    if (hwloc_cpuset_isincluded(obj->cpuset, set)) {
+    if (hwloc_bitmap_isincluded(obj->cpuset, set)) {
       if (count == idx)
 	return obj;
       count++;
@@ -329,7 +331,7 @@
   hwloc_obj_t obj = hwloc_get_obj_by_depth (topology, depth, 0);
   int count = 0;
   while (obj) {
-    if (hwloc_cpuset_isincluded(obj->cpuset, set))
+    if (hwloc_bitmap_isincluded(obj->cpuset, set))
       count++;
     obj = obj->next_cousin;
   }
@@ -372,12 +374,12 @@
 {
   hwloc_obj_t child;
 
-  if (hwloc_cpuset_iszero(set))
+  if (hwloc_bitmap_iszero(set))
     return NULL;
 
   child = parent->first_child;
   while (child) {
-    if (hwloc_cpuset_isincluded(set, child->cpuset))
+    if (hwloc_bitmap_isincluded(set, child->cpuset))
       return child;
     child = child->next_sibling;
   }
@@ -393,10 +395,10 @@
 {
   struct hwloc_obj *current = hwloc_get_root_obj(topology);
 
-  if (hwloc_cpuset_iszero(set))
+  if (hwloc_bitmap_iszero(set))
     return NULL;
 
-  if (!hwloc_cpuset_isincluded(set, current->cpuset))
+  if (!hwloc_bitmap_isincluded(set, current->cpuset))
     return NULL;
 
   while (1) {
@@ -428,7 +430,7 @@
 					    unsigned depth, hwloc_obj_t prev)
 {
   hwloc_obj_t next = hwloc_get_next_obj_by_depth(topology, depth, prev);
-  while (next && !hwloc_cpuset_intersects(set, next->cpuset))
+  while (next && !hwloc_bitmap_intersects(set, next->cpuset))
     next = next->next_cousin;
   return next;
 }
@@ -488,7 +490,7 @@
 {
   hwloc_obj_t current = obj->parent;
   while (current) {
-    if (!hwloc_cpuset_isequal(current->cpuset, obj->cpuset)
+    if (!hwloc_bitmap_isequal(current->cpuset, obj->cpuset)
         && current->type == HWLOC_OBJ_CACHE)
       return current;
     current = current->parent;
@@ -578,52 +580,103 @@
 
 /** \brief Distribute \p n items over the topology under \p root
  *
- * Array \p cpuset will be filled with \p n cpusets distributed linearly over
- * the topology under \p root .
+ * Array \p cpuset will be filled with \p n cpusets recursively distributed
+ * linearly over the topology under \p root, down to depth \p until (which can
+ * be MAX_INT to distribute down to the finest level).
  *
  * This is typically useful when an application wants to distribute \p n
  * threads over a machine, giving each of them as much private cache as
  * possible and keeping them locally in number order.
  *
- * The caller may typically want to also call hwloc_cpuset_singlify()
+ * The caller may typically want to also call hwloc_bitmap_singlify()
  * before binding a thread so that it does not move at all.
  */
 static __hwloc_inline void
-hwloc_distribute(hwloc_topology_t topology, hwloc_obj_t root, hwloc_cpuset_t *cpuset, unsigned n)
+hwloc_distributev(hwloc_topology_t topology, hwloc_obj_t *root, unsigned n_roots, hwloc_cpuset_t *cpuset, unsigned n, unsigned until);
+static __hwloc_inline void
+hwloc_distribute(hwloc_topology_t topology, hwloc_obj_t root, hwloc_cpuset_t *cpuset, unsigned n, unsigned until)
 {
   unsigned i;
-  unsigned u;
-  unsigned chunk_size, complete_chunks;
-  hwloc_cpuset_t *cpusetp;
 
-  if (!root->arity || n == 1) {
+  if (!root->arity || n == 1 || root->depth >= until) {
     /* Got to the bottom, we can't split any more, put everything there.  */
     for (i=0; i<n; i++)
-      cpuset[i] = hwloc_cpuset_dup(root->cpuset);
+      cpuset[i] = hwloc_bitmap_dup(root->cpuset);
     return;
   }
 
-  /* Divide n in root->arity chunks.  */
-  chunk_size = (n + root->arity - 1) / root->arity;
-  complete_chunks = n % root->arity;
-  if (!complete_chunks)
-    complete_chunks = root->arity;
+  hwloc_distributev(topology, root->children, root->arity, cpuset, n, until);
+}
 
-  /* Allocate complete chunks first.  */
-  for (cpusetp = cpuset, i = 0;
-       i < complete_chunks;
-       i ++, cpusetp += chunk_size)
-    hwloc_distribute(topology, root->children[i], cpusetp, chunk_size);
+/** \brief Distribute \p n items over the topology under \p roots
+ *
+ * This is the same as hwloc_distribute, but takes an array of roots instead of
+ * just one root.
+ */
+static __hwloc_inline void
+hwloc_distributev(hwloc_topology_t topology, hwloc_obj_t *roots, unsigned n_roots, hwloc_cpuset_t *cpuset, unsigned n, unsigned until)
+{
+  unsigned i;
+  unsigned tot_weight;
+  hwloc_cpuset_t *cpusetp = cpuset;
 
-  /* Now allocate not-so-complete chunks.  */
-  for (u = i;
-       u < root->arity;
-       u++, cpusetp += chunk_size-1)
-    hwloc_distribute(topology, root->children[u], cpusetp, chunk_size-1);
+  tot_weight = 0;
+  for (i = 0; i < n_roots; i++)
+    tot_weight += hwloc_bitmap_weight(roots[i]->cpuset);
+
+  for (i = 0; i < n_roots; i++) {
+    /* Give to roots[i] a portion proportional to its weight */
+    unsigned weight = hwloc_bitmap_weight(roots[i]->cpuset);
+    unsigned chunk = (n * weight + tot_weight-1) / tot_weight;
+    hwloc_distribute(topology, roots[i], cpusetp, chunk, until);
+    cpusetp += chunk;
+    tot_weight -= weight;
+    n -= chunk;
+  }
 }
 
+/** \brief Allocate some memory on the given nodeset \p nodeset
+ *
+ * This is similar to hwloc_alloc_membind except that it is allowed to change
+ * the current memory binding policy, thus providing more binding support, at
+ * the expense of changing the current state.
+ */
+static __hwloc_inline void *
+hwloc_alloc_membind_policy_nodeset(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  void *p = hwloc_alloc_membind_nodeset(topology, len, nodeset, policy, flags);
+  if (p)
+    return p;
+  hwloc_set_membind_nodeset(topology, nodeset, policy, flags);
+  p = hwloc_alloc(topology, len);
+  if (p && policy != HWLOC_MEMBIND_FIRSTTOUCH)
+    /* Enforce the binding by touching the data */
+    memset(p, 0, len);
+  return p;
+}
+
+/** \brief Allocate some memory on the memory nodes near given cpuset \p cpuset
+ *
+ * This is similar to hwloc_alloc_membind_policy_nodeset, but for a given cpuset.
+ */
+static __hwloc_inline void *
+hwloc_alloc_membind_policy(hwloc_topology_t topology, size_t len, hwloc_const_cpuset_t cpuset, hwloc_membind_policy_t policy, int flags)
+{
+  void *p = hwloc_alloc_membind(topology, len, cpuset, policy, flags);
+  if (p)
+    return p;
+  hwloc_set_membind(topology, cpuset, policy, flags);
+  p = hwloc_alloc(topology, len);
+  if (p && policy != HWLOC_MEMBIND_FIRSTTOUCH)
+    /* Enforce the binding by touching the data */
+    memset(p, 0, len);
+  return p;
+}
+
 /** @} */
 
+
+
 /** \defgroup hwlocality_helper_cpuset Cpuset Helpers
  * @{
  */
@@ -688,10 +741,186 @@
   return hwloc_get_root_obj(topology)->allowed_cpuset;
 }
 
+/** @} */
 
+
+
+/** \defgroup hwlocality_helper_nodeset Nodeset Helpers
+ * @{
+ */
+/* \brief Get complete node set
+ *
+ * \return the complete node set of memory of the system. If the
+ * topology is the result of a combination of several systems, NULL is
+ * returned.
+ *
+ * \note The returned nodeset is not newly allocated and should thus not be
+ * changed or freed; hwloc_nodeset_dup must be used to obtain a local copy.
+ */
+static __hwloc_inline hwloc_const_nodeset_t __hwloc_attribute_pure
+hwloc_topology_get_complete_nodeset(hwloc_topology_t topology)
+{
+  return hwloc_get_root_obj(topology)->complete_nodeset;
+}
+
+/* \brief Get topology node set
+ *
+ * \return the node set of memory of the system for which hwloc
+ * provides topology information. This is equivalent to the nodeset of the
+ * system object. If the topology is the result of a combination of several
+ * systems, NULL is returned.
+ *
+ * \note The returned nodeset is not newly allocated and should thus not be
+ * changed or freed; hwloc_nodeset_dup must be used to obtain a local copy.
+ */
+static __hwloc_inline hwloc_const_nodeset_t __hwloc_attribute_pure
+hwloc_topology_get_topology_nodeset(hwloc_topology_t topology)
+{
+  return hwloc_get_root_obj(topology)->nodeset;
+}
+
+/** \brief Get allowed node set
+ *
+ * \return the node set of allowed memory of the system. If the
+ * topology is the result of a combination of several systems, NULL is
+ * returned.
+ *
+ * \note The returned nodeset is not newly allocated and should thus not be
+ * changed or freed, hwloc_nodeset_dup must be used to obtain a local copy.
+ */
+static __hwloc_inline hwloc_const_nodeset_t __hwloc_attribute_pure
+hwloc_topology_get_allowed_nodeset(hwloc_topology_t topology)
+{
+  return hwloc_get_root_obj(topology)->allowed_nodeset;
+}
+
 /** @} */
 
 
+
+/** \defgroup hwlocality_helper_nodeset_convert Conversion between cpuset and nodeset 
+ *
+ * There are two semantics for converting cpusets to nodesets depending on how
+ * non-NUMA machines are handled.
+ *
+ * When manipulating nodesets for memory binding, non-NUMA machines should be
+ * considered as having a single NUMA node. The standard conversion routines
+ * below should be used so that marking the first bit of the nodeset means
+ * that memory should be bound to a non-NUMA whole machine.
+ *
+ * When manipulating nodesets as an actual list of NUMA nodes without any
+ * need to handle memory binding on non-NUMA machines, the strict conversion
+ * routines may be used instead.
+ * @{
+ */
+
+/** \brief Convert a CPU set into a NUMA node set and handle non-NUMA cases
+ *
+ * If some NUMA nodes have no CPUs at all, this function never sets their
+ * indexes in the output node set, even if a full CPU set is given in input.
+ *
+ * If the topology contains no NUMA nodes, the machine is considered
+ * as a single memory node, and the following behavior is used:
+ * If \p cpuset is empty, \p nodeset will be emptied as well.
+ * Otherwise \p nodeset will be entirely filled.
+ */
+static __hwloc_inline void
+hwloc_cpuset_to_nodeset(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, hwloc_nodeset_t nodeset)
+{
+	int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+	hwloc_obj_t obj;
+
+	if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+		 if (hwloc_bitmap_iszero(cpuset))
+			hwloc_bitmap_zero(nodeset);
+		else
+			/* Assume the whole system */
+			hwloc_bitmap_fill(nodeset);
+		return;
+	}
+
+	hwloc_bitmap_zero(nodeset);
+	obj = NULL;
+	while ((obj = hwloc_get_next_obj_covering_cpuset_by_depth(topology, cpuset, depth, obj)) != NULL)
+		hwloc_bitmap_set(nodeset, obj->os_index);
+}
+
+/** \brief Convert a CPU set into a NUMA node set without handling non-NUMA cases
+ *
+ * This is the strict variant of ::hwloc_cpuset_to_nodeset. It does not fix
+ * non-NUMA cases. If the topology contains some NUMA nodes, behave exactly
+ * the same. However, if the topology contains no NUMA nodes, return an empty
+ * nodeset.
+ */
+static __hwloc_inline void
+hwloc_cpuset_to_nodeset_strict(struct hwloc_topology *topology, hwloc_const_cpuset_t cpuset, hwloc_nodeset_t nodeset)
+{
+	int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+	hwloc_obj_t obj;
+	if (depth == HWLOC_TYPE_DEPTH_UNKNOWN )
+		return;
+	hwloc_bitmap_zero(nodeset);
+	obj = NULL;
+	while ((obj = hwloc_get_next_obj_covering_cpuset_by_depth(topology, cpuset, depth, obj)) != NULL)
+		hwloc_bitmap_set(nodeset, obj->os_index);
+}
+
+/** \brief Convert a NUMA node set into a CPU set and handle non-NUMA cases
+ *
+ * If the topology contains no NUMA nodes, the machine is considered
+ * as a single memory node, and the following behavior is used:
+ * If \p nodeset is empty, \p cpuset will be emptied as well.
+ * Otherwise \p cpuset will be entirely filled.
+ * This is useful for manipulating memory binding sets.
+ */
+static __hwloc_inline void
+hwloc_cpuset_from_nodeset(hwloc_topology_t topology, hwloc_cpuset_t cpuset, hwloc_const_nodeset_t nodeset)
+{
+	int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+	hwloc_obj_t obj;
+
+	if (depth == HWLOC_TYPE_DEPTH_UNKNOWN ) {
+		if (hwloc_bitmap_iszero(nodeset))
+			hwloc_bitmap_zero(cpuset);
+		else
+			/* Assume the whole system */
+			hwloc_bitmap_fill(cpuset);
+		return;
+	}
+
+	hwloc_bitmap_zero(cpuset);
+	obj = NULL;
+	while ((obj = hwloc_get_next_obj_by_depth(topology, depth, obj)) != NULL) {
+		if (hwloc_bitmap_isset(nodeset, obj->os_index))
+			hwloc_bitmap_or(cpuset, cpuset, obj->cpuset);
+	}
+}
+
+/** \brief Convert a NUMA node set into a CPU set without handling non-NUMA cases
+ *
+ * This is the strict variant of ::hwloc_cpuset_from_nodeset. It does not fix
+ * non-NUMA cases. If the topology contains some NUMA nodes, behave exactly
+ * the same. However, if the topology contains no NUMA nodes, return an empty
+ * cpuset.
+ */
+static __hwloc_inline void
+hwloc_cpuset_from_nodeset_strict(struct hwloc_topology *topology, hwloc_cpuset_t cpuset, hwloc_const_nodeset_t nodeset)
+{
+	int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+	hwloc_obj_t obj;
+	if (depth == HWLOC_TYPE_DEPTH_UNKNOWN )
+		return;
+	hwloc_bitmap_zero(cpuset);
+	obj = NULL;
+	while ((obj = hwloc_get_next_obj_by_depth(topology, depth, obj)) != NULL)
+		if (hwloc_bitmap_isset(nodeset, obj->os_index))
+			hwloc_bitmap_or(cpuset, cpuset, obj->cpuset);
+}
+
+/** @} */
+
+
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux-libnuma.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux-libnuma.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux-libnuma.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -41,25 +43,26 @@
 hwloc_cpuset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset,
 				    unsigned long *mask, unsigned long *maxnode)
 {
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
   unsigned long outmaxnode = -1;
-  hwloc_obj_t node = NULL;
-  unsigned nbnodes = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
-  unsigned i;
 
-  for(i=0; i<*maxnode/sizeof(*mask)/8; i++)
-    mask[i] = 0;
+  /* round-up to the next ulong and clear all bytes */
+  *maxnode = (*maxnode + 8*sizeof(*mask) - 1) & ~(8*sizeof(*mask) - 1);
+  memset(mask, 0, *maxnode/8);
 
-  if (nbnodes) {
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node = NULL;
     while ((node = hwloc_get_next_obj_covering_cpuset_by_type(topology, cpuset, HWLOC_OBJ_NODE, node)) != NULL) {
       if (node->os_index >= *maxnode)
-	break;
-      mask[node->os_index/sizeof(*mask)/8] |= 1 << (node->os_index % (sizeof(*mask)*8));
-      outmaxnode = node->os_index;
+	continue;
+      mask[node->os_index/sizeof(*mask)/8] |= 1UL << (node->os_index % (sizeof(*mask)*8));
+      if (outmaxnode == (unsigned long) -1 || outmaxnode < node->os_index)
+	outmaxnode = node->os_index;
     }
 
   } else {
     /* if no numa, libnuma assumes we have a single node */
-    if (!hwloc_cpuset_iszero(cpuset)) {
+    if (!hwloc_bitmap_iszero(cpuset)) {
       mask[0] = 1;
       outmaxnode = 0;
     }
@@ -69,6 +72,51 @@
   return 0;
 }
 
+/** \brief Convert hwloc NUMA node set \p nodeset into the array of unsigned long \p mask
+ *
+ * \p mask is the array of unsigned long that will be filled.
+ * \p maxnode contains the maximal node number that may be stored in \p mask.
+ * \p maxnode will be set to the maximal node number that was found, plus one.
+ *
+ * This function may be used before calling set_mempolicy, mbind, migrate_pages
+ * or any other function that takes an array of unsigned long and a maximal
+ * node number as input parameter.
+ */
+static __hwloc_inline int
+hwloc_nodeset_to_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset,
+				      unsigned long *mask, unsigned long *maxnode)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  unsigned long outmaxnode = -1;
+
+  /* round-up to the next ulong and clear all bytes */
+  *maxnode = (*maxnode + 8*sizeof(*mask) - 1) & ~(8*sizeof(*mask) - 1);
+  memset(mask, 0, *maxnode/8);
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node = NULL;
+    while ((node = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, node)) != NULL) {
+      if (node->os_index >= *maxnode)
+	continue;
+      if (!hwloc_bitmap_isset(nodeset, node->os_index))
+	continue;
+      mask[node->os_index/sizeof(*mask)/8] |= 1UL << (node->os_index % (sizeof(*mask)*8));
+      if (outmaxnode == (unsigned long) -1 || outmaxnode < node->os_index)
+	outmaxnode = node->os_index;
+    }
+
+  } else {
+    /* if no numa, libnuma assumes we have a single node */
+    if (!hwloc_bitmap_iszero(nodeset)) {
+      mask[0] = 1;
+      outmaxnode = 0;
+    }
+  }
+
+  *maxnode = outmaxnode+1;
+  return 0;
+}
+
 /** \brief Convert the array of unsigned long \p mask into hwloc CPU set
  *
  * \p mask is a array of unsigned long that will be read.
@@ -82,28 +130,60 @@
 hwloc_cpuset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
 				      const unsigned long *mask, unsigned long maxnode)
 {
-  hwloc_obj_t node;
-  int depth;
-  unsigned i;
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
 
-  depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
-  /* cannot be HWLOC_TYPE_DEPTH_MULTIPLE */
-
-  if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node;
+    unsigned i;
+    hwloc_bitmap_zero(cpuset);
+    for(i=0; i<maxnode; i++)
+      if (mask[i/sizeof(*mask)/8] & (1UL << (i% (sizeof(*mask)*8)))) {
+	node = hwloc_get_obj_by_depth(topology, depth, i);
+	if (node)
+	  hwloc_bitmap_or(cpuset, cpuset, node->cpuset);
+      }
+  } else {
     /* if no numa, libnuma assumes we have a single node */
     if (mask[0] & 1)
-      hwloc_cpuset_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
+      hwloc_bitmap_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
     else
-      hwloc_cpuset_zero(cpuset);
+      hwloc_bitmap_zero(cpuset);
+  }
 
-  } else {
-    hwloc_cpuset_zero(cpuset);
+  return 0;
+}
+
+/** \brief Convert the array of unsigned long \p mask into hwloc NUMA node set
+ *
+ * \p mask is a array of unsigned long that will be read.
+ * \p maxnode contains the maximal node number that may be read in \p mask.
+ *
+ * This function may be used after calling get_mempolicy or any other function
+ * that takes an array of unsigned long as output parameter (and possibly
+ * a maximal node number as input parameter).
+ */
+static __hwloc_inline int
+hwloc_nodeset_from_linux_libnuma_ulongs(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
+					const unsigned long *mask, unsigned long maxnode)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node;
+    unsigned i;
+    hwloc_bitmap_zero(nodeset);
     for(i=0; i<maxnode; i++)
-      if (mask[i/sizeof(*mask)/8] & (1 << (i% (sizeof(*mask)*8)))) {
+      if (mask[i/sizeof(*mask)/8] & (1UL << (i% (sizeof(*mask)*8)))) {
 	node = hwloc_get_obj_by_depth(topology, depth, i);
 	if (node)
-	  hwloc_cpuset_or(cpuset, cpuset, node->cpuset);
+	  hwloc_bitmap_set(nodeset, node->os_index);
       }
+  } else {
+    /* if no numa, libnuma assumes we have a single node */
+    if (mask[0] & 1)
+      hwloc_bitmap_fill(nodeset);
+    else
+      hwloc_bitmap_zero(nodeset);
   }
 
   return 0;
@@ -130,23 +210,49 @@
 static __hwloc_inline struct bitmask * __hwloc_attribute_malloc
 hwloc_cpuset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset)
 {
-  struct bitmask *bitmask;
-  hwloc_obj_t node = NULL;
-  unsigned nbnodes = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  struct bitmask *bitmask = numa_allocate_cpumask();
+  if (!bitmask)
+    return NULL;
 
-  if (nbnodes) {
-    bitmask = numa_bitmask_alloc(nbnodes);
-    if (!bitmask)
-      return NULL;
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node = NULL;
     while ((node = hwloc_get_next_obj_covering_cpuset_by_type(topology, cpuset, HWLOC_OBJ_NODE, node)) != NULL)
       numa_bitmask_setbit(bitmask, node->os_index);
+  } else {
+    /* if no numa, libnuma assumes we have a single node */
+    if (!hwloc_bitmap_iszero(cpuset))
+      numa_bitmask_setbit(bitmask, 0);
+  }
 
+  return bitmask;
+}
+
+/** \brief Convert hwloc NUMA node set \p nodeset into the returned libnuma bitmask
+ *
+ * The returned bitmask should later be freed with numa_bitmask_free.
+ *
+ * This function may be used before calling many numa_ functions
+ * that use a struct bitmask as an input parameter.
+ *
+ * \return newly allocated struct bitmask.
+ */
+static __hwloc_inline struct bitmask * __hwloc_attribute_malloc
+hwloc_nodeset_to_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  struct bitmask *bitmask = numa_allocate_cpumask();
+  if (!bitmask)
+    return NULL;
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node = NULL;
+    while ((node = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, node)) != NULL)
+      if (hwloc_bitmap_isset(nodeset, node->os_index))
+	numa_bitmask_setbit(bitmask, node->os_index);
   } else {
     /* if no numa, libnuma assumes we have a single node */
-    bitmask = numa_bitmask_alloc(1);
-    if (!bitmask)
-      return NULL;
-    if (!hwloc_cpuset_iszero(cpuset))
+    if (!hwloc_bitmap_iszero(nodeset))
       numa_bitmask_setbit(bitmask, 0);
   }
 
@@ -160,30 +266,58 @@
  */
 static __hwloc_inline int
 hwloc_cpuset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
-				       const struct bitmask *bitmask)
+					const struct bitmask *bitmask)
 {
-  hwloc_obj_t node;
-  int depth;
-  int i;
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
 
-  depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
-  /* cannot be HWLOC_TYPE_DEPTH_MULTIPLE */
-
-  if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node;
+    int i;
+    hwloc_bitmap_zero(cpuset);
+    for(i=0; i<NUMA_NUM_NODES; i++)
+      if (numa_bitmask_isbitset(bitmask, i)) {
+	node = hwloc_get_obj_by_depth(topology, depth, i);
+	if (node)
+	  hwloc_bitmap_or(cpuset, cpuset, node->cpuset);
+      }
+  } else {
     /* if no numa, libnuma assumes we have a single node */
     if (numa_bitmask_isbitset(bitmask, 0))
-      hwloc_cpuset_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
+      hwloc_bitmap_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
     else
-      hwloc_cpuset_zero(cpuset);
+      hwloc_bitmap_zero(cpuset);
+  }
 
-  } else {
-    hwloc_cpuset_zero(cpuset);
+  return 0;
+}
+
+/** \brief Convert libnuma bitmask \p bitmask into hwloc NUMA node set \p nodeset
+ *
+ * This function may be used after calling many numa_ functions
+ * that use a struct bitmask as an output parameter.
+ */
+static __hwloc_inline int
+hwloc_nodeset_from_linux_libnuma_bitmask(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
+					 const struct bitmask *bitmask)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node;
+    int i;
+    hwloc_bitmap_zero(nodeset);
     for(i=0; i<NUMA_NUM_NODES; i++)
       if (numa_bitmask_isbitset(bitmask, i)) {
 	node = hwloc_get_obj_by_depth(topology, depth, i);
 	if (node)
-	  hwloc_cpuset_or(cpuset, cpuset, node->cpuset);
+	  hwloc_bitmap_set(nodeset, node->os_index);
       }
+  } else {
+    /* if no numa, libnuma assumes we have a single node */
+    if (numa_bitmask_isbitset(bitmask, 0))
+      hwloc_bitmap_fill(nodeset);
+    else
+      hwloc_bitmap_zero(nodeset);
   }
 
   return 0;
@@ -208,17 +342,44 @@
 hwloc_cpuset_to_linux_libnuma_nodemask(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset,
 				      nodemask_t *nodemask)
 {
-  hwloc_obj_t node = NULL;
-  unsigned nbnodes = hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE);
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
 
   nodemask_zero(nodemask);
-  if (nbnodes) {
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node = NULL;
     while ((node = hwloc_get_next_obj_covering_cpuset_by_type(topology, cpuset, HWLOC_OBJ_NODE, node)) != NULL)
       nodemask_set(nodemask, node->os_index);
+  } else {
+    /* if no numa, libnuma assumes we have a single node */
+    if (!hwloc_bitmap_iszero(cpuset))
+      nodemask_set(nodemask, 0);
+  }
 
+  return 0;
+}
+
+/** \brief Convert hwloc NUMA node set \p nodeset into libnuma nodemask \p nodemask
+ *
+ * This function may be used before calling some old libnuma functions
+ * that use a nodemask_t as an input parameter.
+ */
+static __hwloc_inline int
+hwloc_nodeset_to_linux_libnuma_nodemask(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset,
+					nodemask_t *nodemask)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+
+  nodemask_zero(nodemask);
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node = NULL;
+    while ((node = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, node)) != NULL)
+      if (hwloc_bitmap_isset(nodeset, node->os_index))
+	nodemask_set(nodemask, node->os_index);
   } else {
     /* if no numa, libnuma assumes we have a single node */
-    if (!hwloc_cpuset_iszero(cpuset))
+    if (!hwloc_bitmap_iszero(nodeset))
       nodemask_set(nodemask, 0);
   }
 
@@ -234,28 +395,56 @@
 hwloc_cpuset_from_linux_libnuma_nodemask(hwloc_topology_t topology, hwloc_cpuset_t cpuset,
 					const nodemask_t *nodemask)
 {
-  hwloc_obj_t node;
-  int depth;
-  int i;
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
 
-  depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
-  /* cannot be HWLOC_TYPE_DEPTH_MULTIPLE */
-
-  if (depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node;
+    int i;
+    hwloc_bitmap_zero(cpuset);
+    for(i=0; i<NUMA_NUM_NODES; i++)
+      if (nodemask_isset(nodemask, i)) {
+	node = hwloc_get_obj_by_depth(topology, depth, i);
+	if (node)
+	  hwloc_bitmap_or(cpuset, cpuset, node->cpuset);
+      }
+  } else {
     /* if no numa, libnuma assumes we have a single node */
     if (nodemask_isset(nodemask, 0))
-      hwloc_cpuset_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
+      hwloc_bitmap_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
     else
-      hwloc_cpuset_zero(cpuset);
+      hwloc_bitmap_zero(cpuset);
+  }
 
-  } else {
-    hwloc_cpuset_zero(cpuset);
+  return 0;
+}
+
+/** \brief Convert libnuma nodemask \p nodemask into hwloc NUMA node set \p nodeset
+ *
+ * This function may be used before calling some old libnuma functions
+ * that use a nodemask_t as an output parameter.
+ */
+static __hwloc_inline int
+hwloc_nodeset_from_linux_libnuma_nodemask(hwloc_topology_t topology, hwloc_nodeset_t nodeset,
+					  const nodemask_t *nodemask)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+
+  if (depth != HWLOC_TYPE_DEPTH_UNKNOWN) {
+    hwloc_obj_t node;
+    int i;
+    hwloc_bitmap_zero(nodeset);
     for(i=0; i<NUMA_NUM_NODES; i++)
       if (nodemask_isset(nodemask, i)) {
 	node = hwloc_get_obj_by_depth(topology, depth, i);
 	if (node)
-	  hwloc_cpuset_or(cpuset, cpuset, node->cpuset);
+	  hwloc_bitmap_set(nodeset, node->os_index);
       }
+  } else {
+    /* if no numa, libnuma assumes we have a single node */
+    if (nodemask_isset(nodemask, 0))
+      hwloc_bitmap_fill(nodeset);
+    else
+      hwloc_bitmap_zero(nodeset);
   }
 
   return 0;

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/linux.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/myriexpress.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/myriexpress.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/myriexpress.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,106 @@
+/*
+ * Copyright © 2010 INRIA
+ * See COPYING in top-level directory.
+ */
+
+/** \file
+ * \brief Macros to help interaction between hwloc and Myrinet Express.
+ *
+ * Applications that use both hwloc and Myrinet Express verbs may want to
+ * include this file so as to get topology information for Myrinet hardware.
+ *
+ */
+
+#ifndef HWLOC_MYRIEXPRESS_H
+#define HWLOC_MYRIEXPRESS_H
+
+#include <hwloc.h>
+#include <hwloc/config.h>
+#include <hwloc/linux.h>
+
+#include <myriexpress.h>
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/** \defgroup hwlocality_myriexpress Myrinet Express-Specific Functions
+ * @{
+ */
+
+/** \brief Get the CPU set of logical processors that are physically
+ * close the MX board \p index.
+ *
+ * For the given Myrinet Express board index \p index, read the
+ * OS-provided NUMA node and return the corresponding CPU set.
+ */
+static __hwloc_inline int
+hwloc_mx_board_get_device_cpuset(hwloc_topology_t topology,
+				 unsigned index, hwloc_cpuset_t set)
+{
+  uint32_t in, out;
+
+  in = index;
+  if (mx_get_info(NULL, MX_NUMA_NODE, &in, sizeof(in), &out, sizeof(out)) != MX_SUCCESS) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  if (out != (uint32_t) -1) {
+    hwloc_obj_t obj = NULL;
+    while ((obj = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, obj)) != NULL)
+      if (obj->os_index == out) {
+	hwloc_bitmap_copy(set, obj->cpuset);
+	goto out;
+      }
+  }
+  /* fallback to the full topology cpuset */
+  hwloc_bitmap_copy(set, hwloc_topology_get_complete_cpuset(topology));
+
+ out:
+  return 0;
+}
+
+/** \brief Get the CPU set of logical processors that are physically
+ * close to endpoint \p endpoint.
+ *
+ * For the given Myrinet Express endpoint \p endpoint, read the
+ * OS-provided NUMA node and return the corresponding CPU set.
+ */
+static __hwloc_inline int
+hwloc_mx_endpoint_get_device_cpuset(hwloc_topology_t topology,
+				    mx_endpoint_t endpoint, hwloc_cpuset_t set)
+{
+  uint64_t nid;
+  uint32_t nindex, eid;
+  mx_endpoint_addr_t eaddr;
+
+  if (mx_get_endpoint_addr(endpoint, &eaddr) != MX_SUCCESS) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  if (mx_decompose_endpoint_addr(eaddr, &nid, &eid) != MX_SUCCESS) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  if (mx_nic_id_to_board_number(nid, &nindex) != MX_SUCCESS) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  return hwloc_mx_board_get_device_cpuset(topology, nindex, set);
+}
+
+/** @} */
+
+
+#ifdef __cplusplus
+} /* extern "C" */
+#endif
+
+
+#endif /* HWLOC_MYRIEXPRESS_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/openfabrics-verbs.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/openfabrics-verbs.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/openfabrics-verbs.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -29,7 +31,7 @@
 #endif
 
 
-/** \defgroup hwloc_openfabrics OpenFabrics-Specific Functions
+/** \defgroup hwlocality_openfabrics OpenFabrics-Specific Functions
  * @{
  */
 
@@ -63,7 +65,7 @@
   fclose(sysfile);
 #else
   /* Non-Linux systems simply get a full cpuset */
-  hwloc_cpuset_copy(set, hwloc_topology_get_complete_cpuset(topology));
+  hwloc_bitmap_copy(set, hwloc_topology_get_complete_cpuset(topology));
 #endif
   return 0;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/rename.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/rename.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc/rename.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -39,6 +39,11 @@
 #define hwloc_topology HWLOC_NAME(topology)
 #define hwloc_topology_t HWLOC_NAME(topology_t)
 
+#define hwloc_cpuset_t HWLOC_NAME(cpuset_t)
+#define hwloc_const_cpuset_t HWLOC_NAME(const_cpuset_t)
+#define hwloc_nodeset_t HWLOC_NAME(nodeset_t)
+#define hwloc_const_nodeset_t HWLOC_NAME(const_nodeset_t)
+
 #define HWLOC_OBJ_SYSTEM HWLOC_NAME_CAPS(OBJ_SYSTEM)
 #define HWLOC_OBJ_MACHINE HWLOC_NAME_CAPS(OBJ_MACHINE)
 #define HWLOC_OBJ_NODE HWLOC_NAME_CAPS(OBJ_NODE)
@@ -113,12 +118,13 @@
 #define hwloc_obj_attr_snprintf HWLOC_NAME(obj_attr_snprintf )
 #define hwloc_obj_snprintf HWLOC_NAME(obj_snprintf)
 #define hwloc_obj_cpuset_snprintf HWLOC_NAME(obj_cpuset_snprintf)
+#define hwloc_obj_get_info_by_name HWLOC_NAME(obj_get_info_by_name)
 
 #define HWLOC_CPUBIND_PROCESS HWLOC_NAME_CAPS(CPUBIND_PROCESS)
 #define HWLOC_CPUBIND_THREAD HWLOC_NAME_CAPS(CPUBIND_THREAD)
 #define HWLOC_CPUBIND_STRICT HWLOC_NAME_CAPS(CPUBIND_STRICT)
 
-#define hwloc_cpubind_policy_t HWLOC_NAME(hwloc_cpubind_policy_t)
+#define hwloc_cpubind_flags_t HWLOC_NAME(cpubind_flags_t)
 
 #define hwloc_set_cpubind HWLOC_NAME(set_cpubind)
 #define hwloc_get_cpubind HWLOC_NAME(get_cpubind)
@@ -127,52 +133,86 @@
 #define hwloc_set_thread_cpubind HWLOC_NAME(set_thread_cpubind)
 #define hwloc_get_thread_cpubind HWLOC_NAME(get_thread_cpubind)
 
-/* hwloc/cpuset.h */
+#define HWLOC_MEMBIND_DEFAULT HWLOC_NAME_CAPS(MEMBIND_DEFAULT)
+#define HWLOC_MEMBIND_FIRSTTOUCH HWLOC_NAME_CAPS(MEMBIND_FIRSTTOUCH)
+#define HWLOC_MEMBIND_BIND HWLOC_NAME_CAPS(MEMBIND_BIND)
+#define HWLOC_MEMBIND_INTERLEAVE HWLOC_NAME_CAPS(MEMBIND_INTERLEAVE)
+#define HWLOC_MEMBIND_REPLICATE HWLOC_NAME_CAPS(MEMBIND_REPLICATE)
+#define HWLOC_MEMBIND_NEXTTOUCH HWLOC_NAME_CAPS(MEMBIND_NEXTTOUCH)
 
-#define hwloc_cpuset HWLOC_NAME(cpuset)
-#define hwloc_cpuset_s HWLOC_NAME(cpuset_s)
-#define hwloc_cpuset_t HWLOC_NAME(cpuset_t)
-#define hwloc_const_cpuset_t HWLOC_NAME(const_cpuset_t)
+#define hwloc_membind_policy_t HWLOC_NAME(membind_policy_t)
 
-#define hwloc_cpuset_alloc HWLOC_NAME(cpuset_alloc)
-#define hwloc_cpuset_free HWLOC_NAME(cpuset_free)
-#define hwloc_cpuset_dup HWLOC_NAME(cpuset_dup)
-#define hwloc_cpuset_copy HWLOC_NAME(cpuset_copy)
-#define hwloc_cpuset_snprintf HWLOC_NAME(cpuset_snprintf)
-#define hwloc_cpuset_asprintf HWLOC_NAME(cpuset_asprintf)
-#define hwloc_cpuset_from_string HWLOC_NAME(cpuset_from_string)
-#define hwloc_cpuset_zero HWLOC_NAME(cpuset_zero)
-#define hwloc_cpuset_fill HWLOC_NAME(cpuset_fill)
-#define hwloc_cpuset_from_ulong HWLOC_NAME(cpuset_from_ulong)
+#define HWLOC_MEMBIND_PROCESS HWLOC_NAME_CAPS(MEMBIND_PROCESS)
+#define HWLOC_MEMBIND_THREAD HWLOC_NAME_CAPS(MEMBIND_THREAD)
+#define HWLOC_MEMBIND_STRICT HWLOC_NAME_CAPS(MEMBIND_STRICT)
+#define HWLOC_MEMBIND_MIGRATE HWLOC_NAME_CAPS(MEMBIND_MIGRATE)
+#define HWLOC_MEMBIND_NOCPUBIND HWLOC_NAME_CAPS(MEMBIND_NOCPUBIND)
 
-#define hwloc_cpuset_from_ith_ulong HWLOC_NAME(cpuset_from_ith_ulong)
-#define hwloc_cpuset_to_ulong HWLOC_NAME(cpuset_to_ulong)
-#define hwloc_cpuset_to_ith_ulong HWLOC_NAME(cpuset_to_ith_ulong)
-#define hwloc_cpuset_cpu HWLOC_NAME(cpuset_cpu)
-#define hwloc_cpuset_all_but_cpu HWLOC_NAME(cpuset_all_but_cpu)
-#define hwloc_cpuset_set HWLOC_NAME(cpuset_set)
-#define hwloc_cpuset_set_range HWLOC_NAME(cpuset_set_range)
-#define hwloc_cpuset_clr HWLOC_NAME(cpuset_clr)
-#define hwloc_cpuset_clr_range HWLOC_NAME(cpuset_clr_range)
-#define hwloc_cpuset_isset HWLOC_NAME(cpuset_isset)
-#define hwloc_cpuset_iszero HWLOC_NAME(cpuset_iszero)
-#define hwloc_cpuset_isfull HWLOC_NAME(cpuset_isfull)
-#define hwloc_cpuset_isequal HWLOC_NAME(cpuset_isequal)
-#define hwloc_cpuset_intersects HWLOC_NAME(cpuset_intersects)
-#define hwloc_cpuset_isincluded HWLOC_NAME(cpuset_isincluded)
-#define hwloc_cpuset_or HWLOC_NAME(cpuset_or)
-#define hwloc_cpuset_and HWLOC_NAME(cpuset_and)
-#define hwloc_cpuset_andnot HWLOC_NAME(cpuset_andnot)
-#define hwloc_cpuset_xor HWLOC_NAME(cpuset_xor)
-#define hwloc_cpuset_not HWLOC_NAME(cpuset_not)
-#define hwloc_cpuset_first HWLOC_NAME(cpuset_first)
-#define hwloc_cpuset_last HWLOC_NAME(cpuset_last)
-#define hwloc_cpuset_next HWLOC_NAME(cpuset_next)
-#define hwloc_cpuset_singlify HWLOC_NAME(cpuset_singlify)
-#define hwloc_cpuset_compare_first HWLOC_NAME(cpuset_compare_first)
-#define hwloc_cpuset_compare HWLOC_NAME(cpuset_compare)
-#define hwloc_cpuset_weight HWLOC_NAME(cpuset_weight)
+#define hwloc_membind_flags_t HWLOC_NAME(membind_flags_t)
 
+#define hwloc_set_membind_nodeset HWLOC_NAME(set_membind_nodeset)
+#define hwloc_set_membind HWLOC_NAME(set_membind)
+#define hwloc_get_membind_nodeset HWLOC_NAME(get_membind_nodeset)
+#define hwloc_get_membind HWLOC_NAME(get_membind)
+#define hwloc_set_proc_membind_nodeset HWLOC_NAME(set_proc_membind_nodeset)
+#define hwloc_set_proc_membind HWLOC_NAME(set_proc_membind)
+#define hwloc_get_proc_membind_nodeset HWLOC_NAME(get_proc_membind_nodeset)
+#define hwloc_get_proc_membind HWLOC_NAME(get_proc_membind)
+#define hwloc_set_area_membind_nodeset HWLOC_NAME(set_area_membind_nodeset)
+#define hwloc_set_area_membind HWLOC_NAME(set_area_membind)
+#define hwloc_get_area_membind_nodeset HWLOC_NAME(get_area_membind_nodeset)
+#define hwloc_get_area_membind HWLOC_NAME(get_area_membind)
+#define hwloc_alloc_membind_nodeset HWLOC_NAME(alloc_membind_nodeset)
+#define hwloc_alloc_membind HWLOC_NAME(alloc_membind)
+#define hwloc_free_membind HWLOC_NAME(free_membind)
+
+/* hwloc/bitmap.h */
+
+#define hwloc_bitmap HWLOC_NAME(bitmap)
+#define hwloc_bitmap_s HWLOC_NAME(bitmap_s)
+#define hwloc_bitmap_t HWLOC_NAME(bitmap_t)
+#define hwloc_const_bitmap_t HWLOC_NAME(const_bitmap_t)
+
+#define hwloc_bitmap_alloc HWLOC_NAME(bitmap_alloc)
+#define hwloc_bitmap_free HWLOC_NAME(bitmap_free)
+#define hwloc_bitmap_dup HWLOC_NAME(bitmap_dup)
+#define hwloc_bitmap_copy HWLOC_NAME(bitmap_copy)
+#define hwloc_bitmap_snprintf HWLOC_NAME(bitmap_snprintf)
+#define hwloc_bitmap_asprintf HWLOC_NAME(bitmap_asprintf)
+#define hwloc_bitmap_sscanf HWLOC_NAME(bitmap_sscanf)
+#define hwloc_bitmap_zero HWLOC_NAME(bitmap_zero)
+#define hwloc_bitmap_fill HWLOC_NAME(bitmap_fill)
+#define hwloc_bitmap_from_ulong HWLOC_NAME(bitmap_from_ulong)
+
+#define hwloc_bitmap_from_ith_ulong HWLOC_NAME(bitmap_from_ith_ulong)
+#define hwloc_bitmap_to_ulong HWLOC_NAME(bitmap_to_ulong)
+#define hwloc_bitmap_to_ith_ulong HWLOC_NAME(bitmap_to_ith_ulong)
+#define hwloc_bitmap_only HWLOC_NAME(bitmap_only)
+#define hwloc_bitmap_allbut HWLOC_NAME(bitmap_allbut)
+#define hwloc_bitmap_set HWLOC_NAME(bitmap_set)
+#define hwloc_bitmap_set_range HWLOC_NAME(bitmap_set_range)
+#define hwloc_bitmap_set_ith_ulong HWLOC_NAME(bitmap_set_ith_ulong)
+#define hwloc_bitmap_clr HWLOC_NAME(bitmap_clr)
+#define hwloc_bitmap_clr_range HWLOC_NAME(bitmap_clr_range)
+#define hwloc_bitmap_isset HWLOC_NAME(bitmap_isset)
+#define hwloc_bitmap_iszero HWLOC_NAME(bitmap_iszero)
+#define hwloc_bitmap_isfull HWLOC_NAME(bitmap_isfull)
+#define hwloc_bitmap_isequal HWLOC_NAME(bitmap_isequal)
+#define hwloc_bitmap_intersects HWLOC_NAME(bitmap_intersects)
+#define hwloc_bitmap_isincluded HWLOC_NAME(bitmap_isincluded)
+#define hwloc_bitmap_or HWLOC_NAME(bitmap_or)
+#define hwloc_bitmap_and HWLOC_NAME(bitmap_and)
+#define hwloc_bitmap_andnot HWLOC_NAME(bitmap_andnot)
+#define hwloc_bitmap_xor HWLOC_NAME(bitmap_xor)
+#define hwloc_bitmap_not HWLOC_NAME(bitmap_not)
+#define hwloc_bitmap_first HWLOC_NAME(bitmap_first)
+#define hwloc_bitmap_last HWLOC_NAME(bitmap_last)
+#define hwloc_bitmap_next HWLOC_NAME(bitmap_next)
+#define hwloc_bitmap_singlify HWLOC_NAME(bitmap_singlify)
+#define hwloc_bitmap_compare_first HWLOC_NAME(bitmap_compare_first)
+#define hwloc_bitmap_compare HWLOC_NAME(bitmap_compare)
+#define hwloc_bitmap_weight HWLOC_NAME(bitmap_weight)
+
 /* hwloc/helper.h */
 
 #define hwloc_get_type_or_below_depth HWLOC_NAME(get_type_or_below_depth)
@@ -187,11 +227,9 @@
 #define hwloc_get_next_child HWLOC_NAME(get_next_child)
 #define hwloc_get_common_ancestor_obj HWLOC_NAME(get_common_ancestor_obj)
 #define hwloc_obj_is_in_subtree HWLOC_NAME(obj_is_in_subtree)
-
 #define hwloc_get_first_largest_obj_inside_cpuset HWLOC_NAME(get_first_largest_obj_inside_cpuset)
 #define hwloc_get_largest_objs_inside_cpuset HWLOC_NAME(get_largest_objs_inside_cpuset)
 #define hwloc_get_next_obj_inside_cpuset_by_depth HWLOC_NAME(get_next_obj_inside_cpuset_by_depth)
-
 #define hwloc_get_next_obj_inside_cpuset_by_type HWLOC_NAME(get_next_obj_inside_cpuset_by_type)
 #define hwloc_get_obj_inside_cpuset_by_depth HWLOC_NAME(get_obj_inside_cpuset_by_depth)
 #define hwloc_get_obj_inside_cpuset_by_type HWLOC_NAME(get_obj_inside_cpuset_by_type)
@@ -211,6 +249,13 @@
 #define hwloc_topology_get_topology_cpuset HWLOC_NAME(topology_get_topology_cpuset)
 #define hwloc_topology_get_online_cpuset HWLOC_NAME(topology_get_online_cpuset)
 #define hwloc_topology_get_allowed_cpuset HWLOC_NAME(topology_get_allowed_cpuset)
+#define hwloc_topology_get_complete_nodeset HWLOC_NAME(topology_get_complete_nodeset)
+#define hwloc_topology_get_topology_nodeset HWLOC_NAME(topology_get_topology_nodeset)
+#define hwloc_topology_get_allowed_nodeset HWLOC_NAME(topology_get_allowed_nodeset)
+#define hwloc_cpuset_to_nodeset HWLOC_NAME(cpuset_to_nodeset)
+#define hwloc_cpuset_to_nodeset_strict HWLOC_NAME(cpuset_to_nodeset_strict)
+#define hwloc_cpuset_from_nodeset HWLOC_NAME(cpuset_from_nodeset)
+#define hwloc_cpuset_from_nodeset_strict HWLOC_NAME(cpuset_from_nodeset_strict)
 
 /* glibc-sched.h */
 
@@ -236,6 +281,19 @@
 
 #define hwloc_ibv_get_device_cpuset HWLOC_NAME(ibv_get_device_cpuset)
 
+/* myriexpress.h */
+
+#define hwloc_mx_board_get_device_cpuset HWLOC_NAME(mx_board_get_device_cpuset)
+#define hwloc_mx_endpoint_get_device_cpuset HWLOC_NAME(mx_endpoint_get_device_cpuset)
+
+/* cuda.h */
+
+#define hwloc_cuda_get_device_cpuset HWLOC_NAME(cuda_get_device_cpuset)
+
+/* cudart.h */
+
+#define hwloc_cudart_get_device_cpuset HWLOC_NAME(cudart_get_device_cpuset)
+
 /* private/misc.h */
 
 #define hwloc_snprintf HWLOC_NAME(snprintf)
@@ -256,14 +314,13 @@
 #define HWLOC_IGNORE_TYPE_ALWAYS HWLOC_NAME_CAPS(IGNORE_TYPE_ALWAYS)
 
 #define hwloc_backend_e HWLOC_NAME(backend_e)
+#define hwloc_backend_t HWLOC_NAME(backend_t)
 
 #define HWLOC_BACKEND_NONE HWLOC_NAME_CAPS(BACKEND_NONE)
 #define HWLOC_BACKEND_SYNTHETIC HWLOC_NAME_CAPS(BACKEND_SYNTHETIC)
 #define HWLOC_BACKEND_SYSFS HWLOC_NAME_CAPS(BACKEND_SYSFS)
 #define HWLOC_BACKEND_XML HWLOC_NAME_CAPS(BACKEND_XML)
 
-#define hwloc_backend_t HWLOC_NAME(backend_t)
-
 #define hwloc_backend_params_u HWLOC_NAME(backend_params_u)
 #define hwloc_backend_params_sysfs_s HWLOC_NAME(backend_params_sysfs_s)
 #define hwloc_backend_params_osf HWLOC_NAME(backend_params_osf)
@@ -314,6 +371,9 @@
 
 #define hwloc_insert_object_by_cpuset HWLOC_NAME(insert_object_by_cpuset)
 #define hwloc_insert_object_by_parent HWLOC_NAME(insert_object_by_parent)
+#define hwloc_add_object_info HWLOC_NAME(add_object_info)
+#define hwloc_add_uname_info HWLOC_NAME(add_uname_info)
+#define hwloc_free_object HWLOC_NAME(free_object)
 #define hwloc_cpuset_printf_value HWLOC_NAME(cpuset_printf_value)
 #define hwloc_alloc_setup_object HWLOC_NAME(alloc_setup_object)
 #define hwloc_setup_level HWLOC_NAME(setup_level)

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/hwloc.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -7,7 +9,7 @@
 /** \file
  * \brief The hwloc API.
  *
- * See hwloc/cpuset.h for CPU set specific macros.
+ * See hwloc/bitmap.h for bitmap specific macros.
  * See hwloc/helper.h for high-level topology traversal helpers.
  */
 
@@ -17,6 +19,7 @@
 #include <hwloc/config.h>
 #include <sys/types.h>
 #include <stdio.h>
+#include <string.h>
 #include <limits.h>
 #ifdef HWLOC_HAVE_STDINT_H
 #include <stdint.h>
@@ -28,9 +31,10 @@
 #include <hwloc/rename.h>
 
 /*
- * Cpuset bitmask definitions
+ * Bitmap definitions
  */
 
+#include <hwloc/bitmap.h>
 #include <hwloc/cpuset.h>
 
 
@@ -44,7 +48,7 @@
  */
 
 /** \brief Indicate at build time which hwloc API version is being used. */
-#define HWLOC_API_VERSION 0x00010000
+#define HWLOC_API_VERSION 0x00010100
 
 /** @} */
 
@@ -65,6 +69,38 @@
 
 
 
+/** \defgroup hwlocality_sets Object sets
+ * @{
+ */
+
+/** \brief A CPU set is a bitmap whose bits are set according to CPU physical OS indexes.
+ *
+ * It may be consulted and modified with the bitmap API as any ::hwloc_bitmap_t (see hwloc/bitmap.h).
+ */
+typedef hwloc_bitmap_t hwloc_cpuset_t;
+/** \brief A non-modifiable ::hwloc_cpuset_t. */
+typedef hwloc_const_bitmap_t hwloc_const_cpuset_t;
+
+/** \brief A node set is a bitmap whose bits are set according to NUMA memory node physical OS indexes.
+ *
+ * It may be consulted and modified with the bitmap API as any ::hwloc_bitmap_t (see hwloc/bitmap.h).
+ *
+ * When binding memory on a system without any NUMA node
+ * (when the whole memory is considered as a single memory bank),
+ * the nodeset may be either empty (no memory selected)
+ * or full (whole system memory selected).
+ *
+ * See also \ref hwlocality_helper_nodeset_convert.
+ */
+typedef hwloc_bitmap_t hwloc_nodeset_t;
+/** \brief A non-modifiable ::hwloc_nodeset_t.
+ */
+typedef hwloc_const_bitmap_t hwloc_const_nodeset_t;
+
+/** @} */
+
+
+
 /** \defgroup hwlocality_types Topology Object Types
  * @{
  */
@@ -188,11 +224,10 @@
   unsigned os_index;			/**< \brief OS-provided physical index number */
   char *name;				/**< \brief Object description if any */
 
-  /** \brief Memory attributes */
-  struct hwloc_obj_memory_s memory;
+  struct hwloc_obj_memory_s memory;	/**< \brief Memory attributes */
 
-  /** \brief Object type-specific Attributes */
-  union hwloc_obj_attr_u *attr;
+  union hwloc_obj_attr_u *attr;		/**< \brief Object type-specific Attributes,
+					 * may be \c NULL if no attribute value was found */
 
   /* global position */
   unsigned depth;			/**< \brief Vertical index in the hierarchy */
@@ -218,7 +253,7 @@
   /* misc */
   void *userdata;			/**< \brief Application-given private data pointer, initialized to \c NULL, use it as you wish */
 
-  /* cpuset */
+  /* cpusets and nodesets */
   hwloc_cpuset_t cpuset;		/**< \brief CPUs covered by this object
                                           *
                                           * This is the set of CPUs for which there are PU objects in the topology
@@ -230,7 +265,7 @@
                                           * these CPUs may be offline, or not allowed for binding, see online_cpuset
                                           * and allowed_cpuset.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
   hwloc_cpuset_t complete_cpuset;       /**< \brief The complete CPU set of logical processors of this object,
                                           *
@@ -241,7 +276,7 @@
                                           * precise position is undefined. It is however known that it would be somewhere
                                           * under this object.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
   hwloc_cpuset_t online_cpuset;         /**< \brief The CPU set of online logical processors
                                           *
@@ -249,7 +284,7 @@
                                           * power and can execute threads.  It may however not be allowed to bind to
                                           * them due to administration rules, see allowed_cpuset.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
   hwloc_cpuset_t allowed_cpuset;        /**< \brief The CPU set of allowed logical processors
                                           *
@@ -259,22 +294,27 @@
                                           * Some of them may however be offline so binding to them may still not be
                                           * possible, see online_cpuset.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
 
-  hwloc_cpuset_t nodeset;               /**< \brief NUMA nodes covered by this object or containing this object
+  hwloc_nodeset_t nodeset;              /**< \brief NUMA nodes covered by this object or containing this object
                                           *
                                           * This is the set of NUMA nodes for which there are NODE objects in the
                                           * topology under or above this object, i.e. which are known to be physically
                                           * contained in this object or containing it and known how (the children path
                                           * between this object and the NODE objects).
                                           *
+                                          * In the end, these nodes are those that are close to the current object.
+                                          *
                                           * If the HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM configuration flag is set, some of
                                           * these nodes may not be allowed for allocation, see allowed_nodeset.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * If there are no NUMA nodes in the machine, all the memory is close to this
+                                          * object, so \p nodeset is full.
+                                          *
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
-  hwloc_cpuset_t complete_nodeset;      /**< \brief The complete NUMA node set of this object,
+  hwloc_nodeset_t complete_nodeset;     /**< \brief The complete NUMA node set of this object,
                                           *
                                           * This includes not only the same as the nodeset field, but also the NUMA
                                           * nodes for which topology information is unknown or incomplete, and the nodes
@@ -283,17 +323,26 @@
                                           * precise position is undefined. It is however known that it would be
                                           * somewhere under this object.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * If there are no NUMA nodes in the machine, all the memory is close to this
+                                          * object, so \p complete_nodeset is full.
+                                          *
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
-  hwloc_cpuset_t allowed_nodeset;       /**< \brief The set of allowed NUMA memory nodes
+  hwloc_nodeset_t allowed_nodeset;      /**< \brief The set of allowed NUMA memory nodes
                                           *
                                           * This includes the NUMA memory nodes contained in this object which are
                                           * allowed for memory allocation, i.e. passing them to NUMA node-directed
                                           * memory allocation should not return permission errors. This is usually
                                           * restricted by administration rules.
                                           *
-                                          * \note Its value must not be changed, hwloc_cpuset_dup must be used instead.
+                                          * If there are no NUMA nodes in the machine, all the memory is close to this
+                                          * object, so \p allowed_nodeset is full.
+                                          *
+                                          * \note Its value must not be changed, hwloc_bitmap_dup must be used instead.
                                           */
+
+  struct hwloc_obj_info_s *infos;	/**< \brief Array of stringified info type=name. */
+  unsigned infos_count;			/**< \brief Size of infos array. */
 };
 /**
  * \brief Convenience typedef; a pointer to a struct hwloc_obj.
@@ -306,18 +355,20 @@
   struct hwloc_cache_attr_s {
     uint64_t size;			  /**< \brief Size of cache in bytes */
     unsigned depth;			  /**< \brief Depth of cache */
+    unsigned linesize;			  /**< \brief Cache-line size in bytes */
   } cache;
-  /** \brief Machine-specific Object Attributes */
-  struct hwloc_machine_attr_s {
-    char *dmi_board_vendor;		  /**< \brief DMI board vendor name */
-    char *dmi_board_name;		  /**< \brief DMI board model name */
-  } machine;
   /** \brief Group-specific Object Attributes */
   struct hwloc_group_attr_s {
     unsigned depth;			  /**< \brief Depth of group object */
   } group;
 };
 
+/** \brief Object info */
+struct hwloc_obj_info_s {
+  char *name;	/**< \brief Info name */
+  char *value;	/**< \brief Info value */
+};
+
 /** @} */
 
 
@@ -337,7 +388,7 @@
 /** \brief Build the actual topology
  *
  * Build the actual topology once initialized with hwloc_topology_init() and
- * tuned with ::hwlocality_configuration routine.
+ * tuned with \ref hwlocality_configuration routines.
  * No other routine may be called earlier using this topology context.
  *
  * \param topology is the topology to be loaded with objects.
@@ -497,7 +548,7 @@
 
 /** \brief Enable XML-file based topology.
  *
- * Gather topology information the XML file given at \p xmlpath.
+ * Gather topology information from the XML file given at \p xmlpath.
  * Setting the environment variable HWLOC_XMLFILE may also result in this behavior.
  * This file may have been generated earlier with lstopo file.xml.
  *
@@ -508,13 +559,20 @@
  */
 HWLOC_DECLSPEC int hwloc_topology_set_xml(hwloc_topology_t __hwloc_restrict topology, const char * __hwloc_restrict xmlpath);
 
+/** \brief Enable XML based topology using a memory buffer instead of a file.
+ *
+ * Gather topology information from the XML memory buffer given at \p buffer
+ * and of length \p length.
+ */
+HWLOC_DECLSPEC int hwloc_topology_set_xmlbuffer(hwloc_topology_t __hwloc_restrict topology, const char * __hwloc_restrict buffer, int size);
+
 /** \brief Flags describing actual discovery support for this topology. */
 struct hwloc_topology_discovery_support {
   /** \brief Detecting the number of PU objects is supported. */
   unsigned char pu;
 };
 
-/** \brief Flags describing actual binding support for this topology. */
+/** \brief Flags describing actual PU binding support for this topology. */
 struct hwloc_topology_cpubind_support {
   /** Binding the whole current process is supported.  */
   unsigned char set_thisproc_cpubind;
@@ -534,6 +592,41 @@
   unsigned char get_thread_cpubind;
 };
 
+/** \brief Flags describing actual memory binding support for this topology. */
+struct hwloc_topology_membind_support {
+  /** Binding the whole current process is supported.  */
+  unsigned char set_thisproc_membind;
+  /** Getting the binding of the whole current process is supported.  */
+  unsigned char get_thisproc_membind;
+  /** Binding a whole given process is supported.  */
+  unsigned char set_proc_membind;
+  /** Getting the binding of a whole given process is supported.  */
+  unsigned char get_proc_membind;
+  /** Binding the current thread only is supported.  */
+  unsigned char set_thisthread_membind;
+  /** Getting the binding of the current thread only is supported.  */
+  unsigned char get_thisthread_membind;
+  /** Binding a given memory area is supported. */
+  unsigned char set_area_membind;
+  /** Getting the binding of a given memory area is supported.  */
+  unsigned char get_area_membind;
+  /** Allocating a bound memory area is supported. */
+  unsigned char alloc_membind;
+  /** First-touch policy is supported. */
+  unsigned char firsttouch_membind;
+  /** Bind policy is supported. */
+  unsigned char bind_membind;
+  /** Interleave policy is supported. */
+  unsigned char interleave_membind;
+  /** Replication policy is supported. */
+  unsigned char replicate_membind;
+  /** Next-touch migration policy is supported. */
+  unsigned char nexttouch_membind;
+
+  /** Migration flags is supported. */
+  unsigned char migrate_membind;
+};
+
 /** \brief Set of flags describing actual support for this topology.
  *
  * This is retrieved with hwloc_topology_get_support() and will be valid until
@@ -543,6 +636,7 @@
 struct hwloc_topology_support {
   struct hwloc_topology_discovery_support *discovery;
   struct hwloc_topology_cpubind_support *cpubind;
+  struct hwloc_topology_membind_support *membind;
 };
 
 /** \brief Retrieve the topology support. */
@@ -562,10 +656,18 @@
  */
 HWLOC_DECLSPEC void hwloc_topology_export_xml(hwloc_topology_t topology, const char *xmlpath);
 
+/** \brief Export the topology into a newly-allocated XML memory buffer.
+ *
+ * \p xmlbuffer is allocated by the callee and should be freed with xmlFree later in the caller.
+ *
+ * This memory buffer may be loaded later through hwloc_topology_set_xmlbuffer().
+ */
+HWLOC_DECLSPEC void hwloc_topology_export_xmlbuffer(hwloc_topology_t topology, char **xmlbuffer, int *buflen);
+
 /** \brief Add a MISC object to the topology
  *
  * A new MISC object will be created and inserted into the topology at the
- * position given by cpuset.
+ * position given by bitmap \p cpuset.
  *
  * cpuset and name will be copied.
  *
@@ -743,13 +845,27 @@
  * \return how many characters were actually written (not including the ending \\0). */
 HWLOC_DECLSPEC int hwloc_obj_cpuset_snprintf(char * __hwloc_restrict str, size_t size, size_t nobj, const hwloc_obj_t * __hwloc_restrict objs);
 
+/** \brief Search the given key name in object infos and return the corresponding value.
+ *
+ * \return \c NULL if no such key exists.
+ */
+static __hwloc_inline char * __hwloc_attribute_pure
+hwloc_obj_get_info_by_name(hwloc_obj_t obj, const char *name)
+{
+  unsigned i;
+  for(i=0; i<obj->infos_count; i++)
+    if (!strcmp(obj->infos[i].name, name))
+      return obj->infos[i].value;
+  return NULL;
+}
+
 /** @} */
 
 
 
-/** \defgroup hwlocality_binding Binding
+/** \defgroup hwlocality_cpubinding CPU binding
  *
- * It is often useful to call hwloc_cpuset_singlify() first so that a single CPU
+ * It is often useful to call hwloc_bitmap_singlify() first so that a single CPU
  * remains in the set. This way, the process will not even migrate between
  * different CPUs. Some OSes also only support that kind of binding.
  *
@@ -759,8 +875,8 @@
  * is returned when the requested cpuset can not be enforced (e.g. some systems
  * only allow one CPU, and some other systems only allow one NUMA node)
  *
- * The most portable version that
- * should be preferred over the others, whenever possible, is
+ * The most portable version that should be preferred over the others, whenever
+ * possible, is
  *
  * \code
  * hwloc_set_cpubind(topology, set, 0),
@@ -777,24 +893,29 @@
  *
  * \note To unbind, just call the binding function with either a full cpuset or
  * a cpuset equal to the system cpuset.
+ *
+ * \note On some OSes, CPU binding may have effects on memory binding, see
+ * ::HWLOC_CPUBIND_NOMEMBIND
  * @{
  */
 
-/** \brief Process/Thread binding policy.
+/** \brief Process/Thread binding flags.
  *
  * These flags can be used to refine the binding policy.
  *
  * The default (0) is to bind the current process, assumed to be mono-thread,
  * in a non-strict way.  This is the most portable way to bind as all OSes
  * usually provide it.
+ *
+ * \note Not all systems support all kinds of binding.
  */
 typedef enum {
-  HWLOC_CPUBIND_PROCESS = (1<<0), /**< \brief Bind all threads of the current multithreaded process.
-                                   * This may not be supported by some OSes (e.g. Linux).
+  HWLOC_CPUBIND_PROCESS = (1<<0), /**< \brief Bind all threads of the current
+                                   * (possibly) multithreaded process.
                                    * \hideinitializer */
   HWLOC_CPUBIND_THREAD = (1<<1),  /**< \brief Bind current thread of current process.
                                    * \hideinitializer */
-  HWLOC_CPUBIND_STRICT = (1<<2)   /**< \brief Request for strict binding from the OS.
+  HWLOC_CPUBIND_STRICT = (1<<2),  /**< \brief Request for strict binding from the OS.
                                    * \hideinitializer
                                    *
                                    * By default, when the designated CPUs are
@@ -822,47 +943,59 @@
 				   * \note This flag is meaningless when retrieving
 				   * the binding of a thread.
                                    */
-} hwloc_cpubind_policy_t;
+  HWLOC_CPUBIND_NOMEMBIND = (1<<3)/**< \brief Avoid any effect on memory binding
+                                   * \hideinitializer
+                                   *
+                                   * On some OSes, some CPU binding function
+                                   * would also bind the memory on the
+                                   * corresponding NUMA node.  It is often not
+                                   * a problem for the application, but if it
+                                   * is, setting this flag will make hwloc
+                                   * avoid using OS functions that would also
+                                   * bind memory.  This will however reduce the
+                                   * support of CPU bindings, i.e. potentially
+                                   * return ENOSYS in some cases.
+                                   */
+} hwloc_cpubind_flags_t;
 
-/** \brief Bind current process or thread on cpus given in cpuset \p set
+/** \brief Bind current process or thread on cpus given in bitmap \p set
  *
  * \return ENOSYS if the action is not supported
  * \return EXDEV if the binding cannot be enforced
  */
-HWLOC_DECLSPEC int hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t set,
-			    int policy);
+HWLOC_DECLSPEC int hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t set, int flags);
 
 /** \brief Get current process or thread binding
  */
-HWLOC_DECLSPEC int hwloc_get_cpubind(hwloc_topology_t topology, hwloc_cpuset_t set, int policy);
+HWLOC_DECLSPEC int hwloc_get_cpubind(hwloc_topology_t topology, hwloc_cpuset_t set, int flags);
 
-/** \brief Bind a process \p pid on cpus given in cpuset \p set
+/** \brief Bind a process \p pid on cpus given in bitmap \p set
  *
  * \note hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows
  * platforms
  *
- * \note HWLOC_CPUBIND_THREAD can not be used in \p policy.
+ * \note HWLOC_CPUBIND_THREAD can not be used in \p flags.
  */
-HWLOC_DECLSPEC int hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int policy);
+HWLOC_DECLSPEC int hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int flags);
 
 /** \brief Get the current binding of process \p pid
  *
  * \note hwloc_pid_t is pid_t on unix platforms, and HANDLE on native Windows
  * platforms
  *
- * \note HWLOC_CPUBIND_THREAD can not be used in \p policy.
+ * \note HWLOC_CPUBIND_THREAD can not be used in \p flags.
  */
-HWLOC_DECLSPEC int hwloc_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int policy);
+HWLOC_DECLSPEC int hwloc_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int flags);
 
 #ifdef hwloc_thread_t
-/** \brief Bind a thread \p tid on cpus given in cpuset \p set
+/** \brief Bind a thread \p tid on cpus given in bitmap \p set
  *
  * \note hwloc_thread_t is pthread_t on unix platforms, and HANDLE on native
  * Windows platforms
  *
- * \note HWLOC_CPUBIND_PROCESS can not be used in \p policy.
+ * \note HWLOC_CPUBIND_PROCESS can not be used in \p flags.
  */
-HWLOC_DECLSPEC int hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int policy);
+HWLOC_DECLSPEC int hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int flags);
 #endif
 
 #ifdef hwloc_thread_t
@@ -871,14 +1004,203 @@
  * \note hwloc_thread_t is pthread_t on unix platforms, and HANDLE on native
  * Windows platforms
  *
- * \note HWLOC_CPUBIND_PROCESS can not be used in \p policy.
+ * \note HWLOC_CPUBIND_PROCESS can not be used in \p flags.
  */
-HWLOC_DECLSPEC int hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int policy);
+HWLOC_DECLSPEC int hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int flags);
 #endif
 
 /** @} */
 
 
+/** \defgroup hwlocality_membinding Memory binding
+ *
+ * \note Not all OSes support all ways to bind existing allocated memory
+ * (migration), future memory allocation, explicit memory allocation, etc. and
+ * the corresponding binding functions may fail. ENOSYS is returned when it is
+ * not possible to bind the requested kind of object processes/threads). EXDEV
+ * is returned when the requested cpuset can not be enforced (e.g. some systems
+ * only allow one NUMA node)
+ *
+ * The most portable version that should be preferred over the others, whenever
+ * possible, is
+ *
+ * \code
+ * hwloc_alloc_membind_policy(topology, size, set, HWLOC_MEMBIND_DEFAULT, 0),
+ * \endcode
+ *
+ * which will try to allocate new data bound to the given set, possibly by
+ * changing the current memory binding policy, or at worse allocate memory
+ * without binding it at all.  Since HWLOC_MEMBIND_STRICT is not given, this
+ * will even not fail unless a mere malloc() itself would fail, i.e. ENOMEM.
+ *
+ * Each binding is available with a CPU set argument or a NUMA memory node set
+ * argument. The name of the latter ends with _nodeset. It is also possible to
+ * convert between CPU set and node set using ::hwloc_cpuset_to_nodeset or
+ * ::hwloc_cpuset_from_nodeset.
+ *
+ * \note On some OSes, memory binding may have effects on CPU binding, see
+ * ::HWLOC_MEMBIND_NOCPUBIND
+ * @{
+ */
+
+/** \brief Memory binding policy.
+ *
+ * These can be used to choose the binding policy.
+ *
+ * Note that not all systems support all kinds of binding.
+ */
+typedef enum {
+  HWLOC_MEMBIND_DEFAULT =	0,	/**< \brief Reset the memory allocation policy to the system default.
+					 * \hideinitializer */
+  HWLOC_MEMBIND_FIRSTTOUCH =	1,	/**< \brief Allocate memory on the given nodes, but preferably on the
+					  node where the first accessor is running.
+					 * \hideinitializer */
+  HWLOC_MEMBIND_BIND =		2,	/**< \brief Allocate memory on the given nodes.
+					 * \hideinitializer */
+  HWLOC_MEMBIND_INTERLEAVE =	3,	/**< \brief Allocate memory on the given nodes in a round-robin manner.
+					 * \hideinitializer */
+  HWLOC_MEMBIND_REPLICATE =	4,	/**< \brief Replicate memory on the given nodes.
+					 * \hideinitializer */
+  HWLOC_MEMBIND_NEXTTOUCH =	5	/**< \brief On next touch of existing allocated memory, migrate it to the node
+					 * where the memory reference happened.
+					 * \hideinitializer */
+} hwloc_membind_policy_t;
+
+/** \brief Memory binding flags.
+ *
+ * These flags can be used to refine the binding policy.
+ *
+ * \note Not all systems support all kinds of binding.
+ */
+typedef enum {
+  HWLOC_MEMBIND_PROCESS =       (1<<0), /**< \brief Set policy for all threads of the
+                                         * current (possibly multithreaded) process.
+                                         * \hideinitializer */
+  HWLOC_MEMBIND_THREAD =        (1<<1), /**< \brief Set policy for the current thread of
+                                         * the current process.
+                                         * \hideinitializer */
+  HWLOC_MEMBIND_STRICT =        (1<<2), /**< Request strict binding from the OS.
+                                         * The function will fail if the
+                                         * binding can not be completely
+                                         * enforced.
+                                         * \hideinitializer  */
+  HWLOC_MEMBIND_MIGRATE =       (1<<3), /**< \brief Migrate existing allocated memory.
+                                         * If memory can not be migrated and the STRICT
+                                         * flag is passed, an error will be returned.
+                                         * \hideinitializer  */
+  HWLOC_MEMBIND_NOCPUBIND =     (1<<4)  /**< \brief Avoid any effect on CPU binding
+                                         * \hideinitializer
+                                         *
+                                         * On some OSes, some memory binding function
+                                         * would also bind the application on
+                                         * the corresponding CPUs. It is often
+                                         * not a problem for the application, but if it
+                                         * is, setting this flag will make hwloc
+                                         * avoid using OS functions that would also
+                                         * bind on CPUs.  This will however reduce the
+                                         * support of memory bindings, i.e. potentially
+                                         * return ENOSYS in some cases.
+                                         */
+} hwloc_membind_flags_t;
+
+/** \brief Bind current process memory on the given nodeset \p nodeset
+ *
+ * \return ENOSYS if the action is not supported
+ * \return EXDEV if the binding cannot be enforced
+ */
+HWLOC_DECLSPEC int hwloc_set_membind_nodeset(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+
+/** \brief Bind current process memory on memory nodes near the given cpuset \p cpuset
+ *
+ * \return ENOSYS if the action is not supported
+ * \return EXDEV if the binding cannot be enforced
+ */
+HWLOC_DECLSPEC int hwloc_set_membind(hwloc_topology_t topology, hwloc_const_cpuset_t cpuset, hwloc_membind_policy_t policy, int flags);
+
+/** \brief Get current process memory binding in nodeset \p nodeset
+ */
+HWLOC_DECLSPEC int hwloc_get_membind_nodeset(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+
+/** \brief Get current process memory binding in cpuset \p cpuset
+ */
+HWLOC_DECLSPEC int hwloc_get_membind(hwloc_topology_t topology, hwloc_cpuset_t cpuset, hwloc_membind_policy_t * policy, int flags);
+
+/** \brief Bind given process memory on the given nodeset \p nodeset
+ *
+ * \return ENOSYS if the action is not supported
+ * \return EXDEV if the binding cannot be enforced
+ */
+HWLOC_DECLSPEC int hwloc_set_proc_membind_nodeset(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+
+/** \brief Bind given process memory on memory nodes near the given cpuset \p cpuset
+ *
+ * \return ENOSYS if the action is not supported
+ * \return EXDEV if the binding cannot be enforced
+ */
+HWLOC_DECLSPEC int hwloc_set_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t cpuset, hwloc_membind_policy_t policy, int flags);
+
+/** \brief Get current process memory binding in nodeset \p nodeset
+ */
+HWLOC_DECLSPEC int hwloc_get_proc_membind_nodeset(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+
+/** \brief Get current process memory binding in cpuset \p cpuset
+ */
+HWLOC_DECLSPEC int hwloc_get_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t cpuset, hwloc_membind_policy_t * policy, int flags);
+
+/** \brief Bind some memory range on the given nodeset \p nodeset
+ *
+ * \return ENOSYS if the action is not supported
+ * \return EXDEV if the binding cannot be enforced
+ */
+HWLOC_DECLSPEC int hwloc_set_area_membind_nodeset(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+
+/** \brief Bind some memory range on memory nodes near the given cpuset \p cpuset
+ *
+ * \return ENOSYS if the action is not supported
+ * \return EXDEV if the binding cannot be enforced
+ */
+HWLOC_DECLSPEC int hwloc_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_cpuset_t cpuset, hwloc_membind_policy_t policy, int flags);
+
+/** \brief Get some memory range memory binding in nodeset \p nodeset
+ */
+HWLOC_DECLSPEC int hwloc_get_area_membind_nodeset(hwloc_topology_t topology, const void *addr, size_t len, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+
+/** \brief Get some memory range memory binding in cpuset \p cpuset
+ */
+HWLOC_DECLSPEC int hwloc_get_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_cpuset_t cpuset, hwloc_membind_policy_t * policy, int flags);
+
+/** \brief Allocate some memory
+ *
+ * This is equivalent to malloc(), except it tries to allocated page-aligned
+ * memory from the OS.
+ */
+HWLOC_DECLSPEC void *hwloc_alloc(hwloc_topology_t topology, size_t len);
+
+/** \brief Allocate some memory on the given nodeset \p nodeset
+ *
+ * \return ENOSYS if the action is not supported and HWLOC_MEMBIND_STRICT is
+ * given
+ * \return EXDEV if the binding cannot be enforced and HWLOC_MEMBIND_STRICT is
+ * given
+ */
+HWLOC_DECLSPEC void *hwloc_alloc_membind_nodeset(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags) __hwloc_attribute_malloc;
+
+/** \brief Allocate some memory on memory nodes near the given cpuset \p cpuset
+ *
+ * \return ENOSYS if the action is not supported and HWLOC_MEMBIND_STRICT is
+ * given
+ * \return EXDEV if the binding cannot be enforced and HWLOC_MEMBIND_STRICT is
+ * given
+ */
+HWLOC_DECLSPEC void *hwloc_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_cpuset_t cpuset, hwloc_membind_policy_t policy, int flags) __hwloc_attribute_malloc;
+
+/** \brief Free some memory allocated by hwloc_alloc_membind
+ */
+HWLOC_DECLSPEC int hwloc_free_membind(hwloc_topology_t topology, void *addr, size_t len);
+
+/** @} */
+
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/cpuid.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/cpuid.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/cpuid.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2010 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2010 Université Bordeaux 1
  * Copyright © 2010 Cisco Systems, Inc.  All rights reserved.
  *
  * See COPYING in top-level directory.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/debug.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/debug.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/debug.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -12,26 +14,26 @@
 
 #ifdef HWLOC_DEBUG
 #define hwloc_debug(s, ...) fprintf(stderr, s, ##__VA_ARGS__)
-#define hwloc_debug_cpuset(fmt, cpuset) do { \
-  char *s= hwloc_cpuset_printf_value(cpuset); \
+#define hwloc_debug_bitmap(fmt, bitmap) do { \
+  char *s= hwloc_bitmap_printf_value(bitmap); \
   fprintf(stderr, fmt, s); \
   free(s); \
 } while (0)
-#define hwloc_debug_1arg_cpuset(fmt, arg1, cpuset) do { \
-  char *s= hwloc_cpuset_printf_value(cpuset); \
+#define hwloc_debug_1arg_bitmap(fmt, arg1, bitmap) do { \
+  char *s= hwloc_bitmap_printf_value(bitmap); \
   fprintf(stderr, fmt, arg1, s); \
   free(s); \
 } while (0)
-#define hwloc_debug_2args_cpuset(fmt, arg1, arg2, cpuset) do { \
-  char *s= hwloc_cpuset_printf_value(cpuset); \
+#define hwloc_debug_2args_bitmap(fmt, arg1, arg2, bitmap) do { \
+  char *s= hwloc_bitmap_printf_value(bitmap); \
   fprintf(stderr, fmt, arg1, arg2, s); \
   free(s); \
 } while (0)
 #else
 #define hwloc_debug(s, ...) do { } while(0)
-#define hwloc_debug_cpuset(s, cpuset) do { } while(0)
-#define hwloc_debug_1arg_cpuset(s, arg1, cpuset) do { } while(0)
-#define hwloc_debug_2args_cpuset(s, arg1, arg2, cpuset) do { } while(0)
+#define hwloc_debug_bitmap(s, bitmap) do { } while(0)
+#define hwloc_debug_1arg_bitmap(s, arg1, bitmap) do { } while(0)
+#define hwloc_debug_2args_bitmap(s, arg1, arg2, bitmap) do { } while(0)
 #endif
 
 #endif /* HWLOC_DEBUG_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/misc.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/misc.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/misc.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/private.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/private.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/include/private/private.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009      CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009      CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  *
  * See COPYING in top-level directory.
@@ -12,7 +14,7 @@
 
 #include <private/config.h>
 #include <hwloc.h>
-#include <hwloc/cpuset.h>
+#include <hwloc/bitmap.h>
 #include <private/debug.h>
 #include <sys/types.h>
 #ifdef HAVE_STDINT_H
@@ -66,17 +68,32 @@
   int is_loaded;
   hwloc_pid_t pid;                                      /* Process ID the topology is view from, 0 for self */
 
-  int (*set_thisproc_cpubind)(hwloc_topology_t topology, hwloc_const_cpuset_t set, int policy);
-  int (*get_thisproc_cpubind)(hwloc_topology_t topology, hwloc_cpuset_t set, int policy);
-  int (*set_thisthread_cpubind)(hwloc_topology_t topology, hwloc_const_cpuset_t set, int policy);
-  int (*get_thisthread_cpubind)(hwloc_topology_t topology, hwloc_cpuset_t set, int policy);
-  int (*set_proc_cpubind)(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int policy);
-  int (*get_proc_cpubind)(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int policy);
+  int (*set_thisproc_cpubind)(hwloc_topology_t topology, hwloc_const_cpuset_t set, int flags);
+  int (*get_thisproc_cpubind)(hwloc_topology_t topology, hwloc_cpuset_t set, int flags);
+  int (*set_thisthread_cpubind)(hwloc_topology_t topology, hwloc_const_cpuset_t set, int flags);
+  int (*get_thisthread_cpubind)(hwloc_topology_t topology, hwloc_cpuset_t set, int flags);
+  int (*set_proc_cpubind)(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int flags);
+  int (*get_proc_cpubind)(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int flags);
 #ifdef hwloc_thread_t
-  int (*set_thread_cpubind)(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int policy);
-  int (*get_thread_cpubind)(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int policy);
+  int (*set_thread_cpubind)(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int flags);
+  int (*get_thread_cpubind)(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int flags);
 #endif
 
+  int (*set_thisproc_membind)(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+  int (*get_thisproc_membind)(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+  int (*set_thisthread_membind)(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+  int (*get_thisthread_membind)(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+  int (*set_proc_membind)(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+  int (*get_proc_membind)(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+  int (*set_area_membind)(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+  int (*get_area_membind)(hwloc_topology_t topology, const void *addr, size_t len, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags);
+  /* This has to return the same kind of pointer as alloc_membind, so that free_membind can be used on it */
+  void *(*alloc)(hwloc_topology_t topology, size_t len);
+  /* alloc_membind has to always succeed if !(flags & HWLOC_MEMBIND_STRICT).
+   * see hwloc_alloc_or_fail which is convenient for that.  */
+  void *(*alloc_membind)(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags);
+  int (*free_membind)(hwloc_topology_t topology, void *addr, size_t len);
+
   struct hwloc_topology_support support;
 
   hwloc_backend_t backend_type;
@@ -84,6 +101,7 @@
 #ifdef HWLOC_LINUX_SYS
     struct hwloc_backend_params_sysfs_s {
       /* sysfs backend parameters */
+      char *root_path; /* The path of the file system root, used when browsing, e.g., Linux' sysfs and procfs. */
       int root_fd; /* The file descriptor for the file system root, used when browsing, e.g., Linux' sysfs and procfs. */
     } sysfs;
 #endif /* HWLOC_LINUX_SYS */
@@ -111,7 +129,7 @@
 
 
 extern void hwloc_setup_pu_level(struct hwloc_topology *topology, unsigned nb_pus);
-extern void hwloc_setup_misc_level_from_distances(struct hwloc_topology *topology, unsigned nbobjs, struct hwloc_obj **objs, unsigned *_distances/*[nbnobjs][nbobjs]*/);
+extern void hwloc_setup_misc_level_from_distances(struct hwloc_topology *topology, unsigned nbobjs, struct hwloc_obj **objs, unsigned *_distances/*[nbnobjs][nbobjs]*/, unsigned *distance_indexes /*[nbobjs]*/);
 extern int hwloc_get_sysctlbyname(const char *name, int64_t *n);
 extern int hwloc_get_sysctl(int name[], unsigned namelen, int *n);
 extern unsigned hwloc_fallback_nbprocessors(struct hwloc_topology *topology);
@@ -124,7 +142,7 @@
 #endif /* HWLOC_LINUX_SYS */
 
 #ifdef HWLOC_HAVE_XML
-extern int hwloc_backend_xml_init(struct hwloc_topology *topology, const char *xmlpath);
+extern int hwloc_backend_xml_init(struct hwloc_topology *topology, const char *xmlpath, const char *xmlbuffer, int buflen);
 extern void hwloc_look_xml(struct hwloc_topology *topology);
 extern void hwloc_backend_xml_exit(struct hwloc_topology *topology);
 #endif /* HWLOC_HAVE_XML */
@@ -199,12 +217,18 @@
  */
 extern void hwloc_insert_object_by_parent(struct hwloc_topology *topology, hwloc_obj_t parent, hwloc_obj_t obj);
 
-/** \brief Return a locally-allocated stringified cpuset for printf-like calls. */
+/* Insert name/value in the object infos array. name and value are copied by the callee. */
+extern void hwloc_add_object_info(hwloc_obj_t obj, const char *name, const char *value);
+
+/* Insert uname-specific names/values in the object infos array */
+extern void hwloc_add_uname_info(struct hwloc_topology *topology);
+
+/** \brief Return a locally-allocated stringified bitmap for printf-like calls. */
 static inline char *
-hwloc_cpuset_printf_value(hwloc_const_cpuset_t cpuset)
+hwloc_bitmap_printf_value(hwloc_const_bitmap_t bitmap)
 {
   char *buf;
-  hwloc_cpuset_asprintf(&buf, cpuset);
+  hwloc_bitmap_asprintf(&buf, bitmap);
   return buf;
 }
 
@@ -222,16 +246,16 @@
   return obj;
 }
 
-extern void free_object(hwloc_obj_t obj);
+extern void hwloc_free_object(hwloc_obj_t obj);
 
 #define hwloc_object_cpuset_from_array(l, _value, _array, _max) do {	\
 		struct hwloc_obj *__l = (l);				\
 		unsigned int *__a = (_array);				\
 		int k;							\
-		__l->cpuset = hwloc_cpuset_alloc();			\
+		__l->cpuset = hwloc_bitmap_alloc();			\
 		for(k=0; k<_max; k++)					\
 			if (__a[k] == _value)				\
-				hwloc_cpuset_set(__l->cpuset, k);	\
+				hwloc_bitmap_set(__l->cpuset, k);	\
 	} while (0)
 
 /* Configures an array of NUM objects of type TYPE with physical IDs OSPHYSIDS
@@ -249,7 +273,7 @@
     {
       obj = hwloc_alloc_setup_object(type, osphysids[j]);
       hwloc_object_cpuset_from_array(obj, j, proc_physids, procid_max);
-      hwloc_debug_2args_cpuset("%s %d has cpuset %s\n",
+      hwloc_debug_2args_bitmap("%s %d has cpuset %s\n",
 		 hwloc_obj_type_string(type),
 		 j, obj->cpuset);
       hwloc_insert_object_by_cpuset(topology, obj);
@@ -257,4 +281,20 @@
   hwloc_debug("%s", "\n");
 }
 
+/* This can be used for the alloc field to get allocated data that can be freed by free() */
+void *hwloc_alloc_heap(hwloc_topology_t topology, size_t len);
+
+/* This can be used for the alloc field to get allocated data that can be freed by munmap() */
+void *hwloc_alloc_mmap(hwloc_topology_t topology, size_t len);
+
+/* Allocates unbound memory or fail, depending on whether STRICT is requested
+ * or not */
+static inline void *
+hwloc_alloc_or_fail(hwloc_topology_t topology, size_t len, int flags)
+{
+  if (flags & HWLOC_MEMBIND_STRICT)
+    return NULL;
+  return hwloc_alloc(topology, len);
+}
+
 #endif /* HWLOC_PRIVATE_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/m4/decl.m4
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/m4/decl.m4	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/m4/decl.m4	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 dnl -*- Autoconf -*-
-dnl Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+dnl Copyright © 2009 CNRS
+dnl Copyright © 2009 INRIA
+dnl Copyright © 2009 Université Bordeaux 1
 dnl See COPYING in top-level directory.
 
 dnl HWLOC_CHECK_DECL

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,5 @@
-# Copyright © 2009      INRIA, Université Bordeaux 1
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CFLAGS = $(HWLOC_CFLAGS)
@@ -98,13 +99,13 @@
 # Installable library
 
 libhwloc_la_SOURCES = $(sources)
-libhwloc_la_LDFLAGS = $(ldflags) -version-number $(libhwloc_so_version) $(HWLOC_XML_LIBS)
+libhwloc_la_LDFLAGS = $(ldflags) -version-number $(libhwloc_so_version) $(HWLOC_XML_LIBS) $(HWLOC_LINUX_LIBNUMA_LIBS)
 
 # Embedded library (note the lack of a .so version number -- that
 # intentionally only appears in the installable library)
 
 libhwloc_embedded_la_SOURCES = $(sources)
-libhwloc_embedded_la_LDFLAGS = $(ldflags) $(HWLOC_XML_LIBS)
+libhwloc_embedded_la_LDFLAGS = $(ldflags) $(HWLOC_XML_LIBS) $(HWLOC_LINUX_LIBNUMA_LIBS)
 
 # XML data (only install if we're building in standalone mode)
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/bind.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/bind.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -7,22 +9,29 @@
 #include <hwloc.h>
 #include <private/private.h>
 #include <hwloc/helper.h>
+#include <sys/mman.h>
+#ifdef HAVE_MALLOC_H
+#  include <malloc.h>
+#endif
 
+#include <unistd.h>
+#include <stdlib.h>
 #include <errno.h>
 
 /* TODO: HWLOC_GNU_SYS, HWLOC_IRIX_SYS,
- * IRIX: see _DSM_MUSTRUN
  *
+ * IRIX: see MP_MUSTRUN / _DSM_MUSTRUN, pthread_setrunon_np, /hw, procss_cpulink, numa_create
+ *
  * We could use glibc's sched_setaffinity generically when it is available
  *
  * Darwin and OpenBSD don't seem to have binding facilities.
  */
 
-static hwloc_const_cpuset_t
-hwloc_fix_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t set)
+static hwloc_const_bitmap_t
+hwloc_fix_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t set)
 {
-  hwloc_const_cpuset_t topology_set = hwloc_topology_get_topology_cpuset(topology);
-  hwloc_const_cpuset_t complete_set = hwloc_topology_get_complete_cpuset(topology);
+  hwloc_const_bitmap_t topology_set = hwloc_topology_get_topology_cpuset(topology);
+  hwloc_const_bitmap_t complete_set = hwloc_topology_get_complete_cpuset(topology);
 
   if (!topology_set) {
     /* The topology is composed of several systems, the cpuset is ambiguous. */
@@ -30,35 +39,40 @@
     return NULL;
   }
 
-  if (!hwloc_cpuset_isincluded(set, complete_set)) {
+  if (hwloc_bitmap_iszero(set)) {
     errno = EINVAL;
     return NULL;
   }
 
-  if (hwloc_cpuset_isincluded(topology_set, set))
+  if (!hwloc_bitmap_isincluded(set, complete_set)) {
+    errno = EINVAL;
+    return NULL;
+  }
+
+  if (hwloc_bitmap_isincluded(topology_set, set))
     set = complete_set;
 
   return set;
 }
 
 int
-hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t set, int policy)
+hwloc_set_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t set, int flags)
 {
   set = hwloc_fix_cpubind(topology, set);
   if (!set)
     return -1;
 
-  if (policy & HWLOC_CPUBIND_PROCESS) {
+  if (flags & HWLOC_CPUBIND_PROCESS) {
     if (topology->set_thisproc_cpubind)
-      return topology->set_thisproc_cpubind(topology, set, policy);
-  } else if (policy & HWLOC_CPUBIND_THREAD) {
+      return topology->set_thisproc_cpubind(topology, set, flags);
+  } else if (flags & HWLOC_CPUBIND_THREAD) {
     if (topology->set_thisthread_cpubind)
-      return topology->set_thisthread_cpubind(topology, set, policy);
+      return topology->set_thisthread_cpubind(topology, set, flags);
   } else {
     if (topology->set_thisproc_cpubind)
-      return topology->set_thisproc_cpubind(topology, set, policy);
+      return topology->set_thisproc_cpubind(topology, set, flags);
     else if (topology->set_thisthread_cpubind)
-      return topology->set_thisthread_cpubind(topology, set, policy);
+      return topology->set_thisthread_cpubind(topology, set, flags);
   }
 
   errno = ENOSYS;
@@ -66,19 +80,19 @@
 }
 
 int
-hwloc_get_cpubind(hwloc_topology_t topology, hwloc_cpuset_t set, int policy)
+hwloc_get_cpubind(hwloc_topology_t topology, hwloc_bitmap_t set, int flags)
 {
-  if (policy & HWLOC_CPUBIND_PROCESS) {
+  if (flags & HWLOC_CPUBIND_PROCESS) {
     if (topology->get_thisproc_cpubind)
-      return topology->get_thisproc_cpubind(topology, set, policy);
-  } else if (policy & HWLOC_CPUBIND_THREAD) {
+      return topology->get_thisproc_cpubind(topology, set, flags);
+  } else if (flags & HWLOC_CPUBIND_THREAD) {
     if (topology->get_thisthread_cpubind)
-      return topology->get_thisthread_cpubind(topology, set, policy);
+      return topology->get_thisthread_cpubind(topology, set, flags);
   } else {
     if (topology->get_thisproc_cpubind)
-      return topology->get_thisproc_cpubind(topology, set, policy);
+      return topology->get_thisproc_cpubind(topology, set, flags);
     else if (topology->get_thisthread_cpubind)
-      return topology->get_thisthread_cpubind(topology, set, policy);
+      return topology->get_thisthread_cpubind(topology, set, flags);
   }
 
   errno = ENOSYS;
@@ -86,24 +100,24 @@
 }
 
 int
-hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, int policy)
+hwloc_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t set, int flags)
 {
   set = hwloc_fix_cpubind(topology, set);
   if (!set)
     return -1;
 
   if (topology->set_proc_cpubind)
-    return topology->set_proc_cpubind(topology, pid, set, policy);
+    return topology->set_proc_cpubind(topology, pid, set, flags);
 
   errno = ENOSYS;
   return -1;
 }
 
 int
-hwloc_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, int policy)
+hwloc_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t set, int flags)
 {
   if (topology->get_proc_cpubind)
-    return topology->get_proc_cpubind(topology, pid, set, policy);
+    return topology->get_proc_cpubind(topology, pid, set, flags);
 
   errno = ENOSYS;
   return -1;
@@ -111,28 +125,376 @@
 
 #ifdef hwloc_thread_t
 int
-hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_cpuset_t set, int policy)
+hwloc_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_const_bitmap_t set, int flags)
 {
   set = hwloc_fix_cpubind(topology, set);
   if (!set)
     return -1;
 
   if (topology->set_thread_cpubind)
-    return topology->set_thread_cpubind(topology, tid, set, policy);
+    return topology->set_thread_cpubind(topology, tid, set, flags);
 
   errno = ENOSYS;
   return -1;
 }
 
 int
-hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_cpuset_t set, int policy)
+hwloc_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t tid, hwloc_bitmap_t set, int flags)
 {
   if (topology->get_thread_cpubind)
-    return topology->get_thread_cpubind(topology, tid, set, policy);
+    return topology->get_thread_cpubind(topology, tid, set, flags);
 
   errno = ENOSYS;
   return -1;
 }
 #endif
 
-/* TODO: memory bind */
+static hwloc_const_nodeset_t
+hwloc_fix_membind(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset)
+{
+  hwloc_const_bitmap_t topology_nodeset = hwloc_topology_get_topology_nodeset(topology);
+  hwloc_const_bitmap_t complete_nodeset = hwloc_topology_get_complete_nodeset(topology);
+
+  if (!hwloc_topology_get_topology_cpuset(topology)) {
+    /* The topology is composed of several systems, the nodeset is thus
+     * ambiguous. */
+    errno = EXDEV;
+    return NULL;
+  }
+
+  if (!complete_nodeset) {
+    /* There is no NUMA node */
+    errno = ENODEV;
+    return NULL;
+  }
+
+  if (hwloc_bitmap_iszero(nodeset)) {
+    errno = EINVAL;
+    return NULL;
+  }
+
+  if (!hwloc_bitmap_isincluded(nodeset, complete_nodeset)) {
+    errno = EINVAL;
+    return NULL;
+  }
+
+  if (hwloc_bitmap_isincluded(topology_nodeset, nodeset))
+    return complete_nodeset;
+
+  return nodeset;
+}
+
+static int
+hwloc_fix_membind_cpuset(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_const_cpuset_t cpuset)
+{
+  hwloc_const_bitmap_t topology_set = hwloc_topology_get_topology_cpuset(topology);
+  hwloc_const_bitmap_t complete_set = hwloc_topology_get_complete_cpuset(topology);
+  hwloc_const_bitmap_t complete_nodeset = hwloc_topology_get_complete_nodeset(topology);
+
+  if (!topology_set) {
+    /* The topology is composed of several systems, the cpuset is thus
+     * ambiguous. */
+    errno = EXDEV;
+    return -1;
+  }
+
+  if (!complete_nodeset) {
+    /* There is no NUMA node */
+    errno = ENODEV;
+    return -1;
+  }
+
+  if (hwloc_bitmap_iszero(cpuset)) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  if (!hwloc_bitmap_isincluded(cpuset, complete_set)) {
+    errno = EINVAL;
+    return -1;
+  }
+
+  if (hwloc_bitmap_isincluded(topology_set, cpuset)) {
+    hwloc_bitmap_copy(nodeset, complete_nodeset);
+    return 0;
+  }
+
+  hwloc_cpuset_to_nodeset(topology, cpuset, nodeset);
+  return 0;
+}
+
+int
+hwloc_set_membind_nodeset(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  nodeset = hwloc_fix_membind(topology, nodeset);
+  if (!nodeset)
+    return -1;
+
+  if (flags & HWLOC_MEMBIND_PROCESS) {
+    if (topology->set_thisproc_membind)
+      return topology->set_thisproc_membind(topology, nodeset, policy, flags);
+  } else if (flags & HWLOC_MEMBIND_THREAD) {
+    if (topology->set_thisthread_membind)
+      return topology->set_thisthread_membind(topology, nodeset, policy, flags);
+  } else {
+    if (topology->set_thisproc_membind)
+      return topology->set_thisproc_membind(topology, nodeset, policy, flags);
+    else if (topology->set_thisthread_membind)
+      return topology->set_thisthread_membind(topology, nodeset, policy, flags);
+  }
+
+  errno = ENOSYS;
+  return -1;
+}
+
+int
+hwloc_set_membind(hwloc_topology_t topology, hwloc_const_cpuset_t set, hwloc_membind_policy_t policy, int flags)
+{
+  hwloc_nodeset_t nodeset = hwloc_bitmap_alloc();
+  int ret;
+
+  if (hwloc_fix_membind_cpuset(topology, nodeset, set))
+    ret = -1;
+  else
+    ret = hwloc_set_membind_nodeset(topology, nodeset, policy, flags);
+
+  hwloc_bitmap_free(nodeset);
+  return ret;
+}
+
+int
+hwloc_get_membind_nodeset(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags)
+{
+  if (flags & HWLOC_MEMBIND_PROCESS) {
+    if (topology->get_thisproc_membind)
+      return topology->get_thisproc_membind(topology, nodeset, policy, flags);
+  } else if (flags & HWLOC_MEMBIND_THREAD) {
+    if (topology->get_thisthread_membind)
+      return topology->get_thisthread_membind(topology, nodeset, policy, flags);
+  } else {
+    if (topology->get_thisproc_membind)
+      return topology->get_thisproc_membind(topology, nodeset, policy, flags);
+    else if (topology->get_thisthread_membind)
+      return topology->get_thisthread_membind(topology, nodeset, policy, flags);
+  }
+
+  errno = ENOSYS;
+  return -1;
+}
+
+int
+hwloc_get_membind(hwloc_topology_t topology, hwloc_cpuset_t set, hwloc_membind_policy_t * policy, int flags)
+{
+  hwloc_nodeset_t nodeset;
+  int ret;
+
+  nodeset = hwloc_bitmap_alloc();
+  ret = hwloc_get_membind_nodeset(topology, nodeset, policy, flags);
+
+  if (!ret)
+    hwloc_cpuset_from_nodeset(topology, set, nodeset);
+
+  return ret;
+}
+
+int
+hwloc_set_proc_membind_nodeset(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  nodeset = hwloc_fix_membind(topology, nodeset);
+  if (!nodeset)
+    return -1;
+
+  if (topology->set_proc_membind)
+    return topology->set_proc_membind(topology, pid, nodeset, policy, flags);
+
+  errno = ENOSYS;
+  return -1;
+}
+
+
+int
+hwloc_set_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t set, hwloc_membind_policy_t policy, int flags)
+{
+  hwloc_nodeset_t nodeset = hwloc_bitmap_alloc();
+  int ret;
+
+  if (hwloc_fix_membind_cpuset(topology, nodeset, set))
+    ret = -1;
+  else
+    ret = hwloc_set_proc_membind_nodeset(topology, pid, nodeset, policy, flags);
+
+  hwloc_bitmap_free(nodeset);
+  return ret;
+}
+
+int
+hwloc_get_proc_membind_nodeset(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags)
+{
+  if (topology->get_proc_membind)
+    return topology->get_proc_membind(topology, pid, nodeset, policy, flags);
+
+  errno = ENOSYS;
+  return -1;
+}
+
+int
+hwloc_get_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t set, hwloc_membind_policy_t * policy, int flags)
+{
+  hwloc_nodeset_t nodeset;
+  int ret;
+
+  nodeset = hwloc_bitmap_alloc();
+  ret = hwloc_get_proc_membind_nodeset(topology, pid, nodeset, policy, flags);
+
+  if (!ret)
+    hwloc_cpuset_from_nodeset(topology, set, nodeset);
+
+  return ret;
+}
+
+int
+hwloc_set_area_membind_nodeset(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  nodeset = hwloc_fix_membind(topology, nodeset);
+  if (!nodeset)
+    return -1;
+
+  if (topology->set_area_membind)
+    return topology->set_area_membind(topology, addr, len, nodeset, policy, flags);
+
+  errno = ENOSYS;
+  return -1;
+}
+
+int
+hwloc_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_cpuset_t set, hwloc_membind_policy_t policy, int flags)
+{
+  hwloc_nodeset_t nodeset = hwloc_bitmap_alloc();
+  int ret;
+
+  if (hwloc_fix_membind_cpuset(topology, nodeset, set))
+    ret = -1;
+  else
+    ret = hwloc_set_area_membind_nodeset(topology, addr, len, nodeset, policy, flags);
+
+  hwloc_bitmap_free(nodeset);
+  return ret;
+}
+
+int
+hwloc_get_area_membind_nodeset(hwloc_topology_t topology, const void *addr, size_t len, hwloc_nodeset_t nodeset, hwloc_membind_policy_t * policy, int flags)
+{
+  if (topology->get_area_membind)
+    return topology->get_area_membind(topology, addr, len, nodeset, policy, flags);
+
+  errno = ENOSYS;
+  return -1;
+}
+
+int
+hwloc_get_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_cpuset_t set, hwloc_membind_policy_t * policy, int flags)
+{
+  hwloc_nodeset_t nodeset;
+  int ret;
+
+  nodeset = hwloc_bitmap_alloc();
+  ret = hwloc_get_area_membind_nodeset(topology, addr, len, nodeset, policy, flags);
+
+  if (!ret)
+    hwloc_cpuset_from_nodeset(topology, set, nodeset);
+
+  return ret;
+}
+
+void *
+hwloc_alloc_heap(hwloc_topology_t topology __hwloc_attribute_unused, size_t len)
+{
+  void *p;
+#if defined(HAVE_GETPAGESIZE) && defined(HAVE_POSIX_MEMALIGN)
+  errno = posix_memalign(&p, getpagesize(), len);
+  if (errno)
+    p = NULL;
+#elif defined(HAVE_GETPAGESIZE) && defined(HAVE_MEMALIGN)
+  p = memalign(getpagesize(), len);
+#else
+  p = malloc(len);
+#endif
+  return p;
+}
+
+#ifdef MAP_ANONYMOUS
+void *
+hwloc_alloc_mmap(hwloc_topology_t topology __hwloc_attribute_unused, size_t len)
+{
+  return mmap(NULL, len, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
+}
+#endif
+
+void *
+hwloc_alloc(hwloc_topology_t topology, size_t len)
+{
+  if (topology->alloc)
+    return topology->alloc(topology, len);
+  return hwloc_alloc_heap(topology, len);
+}
+
+void *
+hwloc_alloc_membind_nodeset(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  nodeset = hwloc_fix_membind(topology, nodeset);
+  void *p;
+  if (!nodeset)
+    goto fallback;
+  if (flags & HWLOC_MEMBIND_MIGRATE) {
+    errno = EINVAL;
+    goto fallback;
+  }
+
+  if (topology->alloc_membind)
+    return topology->alloc_membind(topology, len, nodeset, policy, flags);
+  else if (topology->set_area_membind) {
+    p = hwloc_alloc(topology, len);
+    if (!p)
+      return NULL;
+    if (topology->set_area_membind(topology, p, len, nodeset, policy, flags) && flags & HWLOC_MEMBIND_STRICT) {
+      int error = errno;
+      free(p);
+      errno = error;
+      return NULL;
+    }
+    return p;
+  } else {
+    errno = ENOSYS;
+  }
+
+fallback:
+  if (flags & HWLOC_MEMBIND_STRICT)
+    /* Report error */
+    return NULL;
+  /* Never mind, allocate anyway */
+  return hwloc_alloc(topology, len);
+}
+
+void *
+hwloc_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_cpuset_t set, hwloc_membind_policy_t policy, int flags)
+{
+  hwloc_nodeset_t nodeset = hwloc_bitmap_alloc();
+  void *ret;
+
+  if (hwloc_fix_membind_cpuset(topology, nodeset, set))
+    ret = NULL;
+  else
+    ret = hwloc_alloc_membind_nodeset(topology, len, nodeset, policy, flags);
+
+  hwloc_bitmap_free(nodeset);
+  return ret;
+}
+
+int
+hwloc_free_membind(hwloc_topology_t topology, void *addr, size_t len)
+{
+  if (topology->free_membind)
+    return topology->free_membind(topology, addr, len);
+  free(addr);
+  return 0;
+}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/cpuset.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/cpuset.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/cpuset.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,13 +1,23 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
+/* cpuset.h converts from the old cpuset API to the new bitmap API, we don't want it here */
+#ifndef HWLOC_CPUSET_H
+/* make sure cpuset.h will not be automatically included here */
+#define HWLOC_CPUSET_H 1
+#else
+#error Do not include cpuset.h in cpuset.c
+#endif
+
 #include <private/config.h>
 #include <private/misc.h>
 #include <private/private.h>
-#include <hwloc/cpuset.h>
+#include <hwloc/bitmap.h>
 
 #include <stdarg.h>
 #include <stdio.h>
@@ -15,93 +25,191 @@
 #include <errno.h>
 #include <ctype.h>
 
-/* size and count of subsets within a set */
-#define HWLOC_CPUSUBSET_SIZE	HWLOC_BITS_PER_LONG
-#define HWLOC_CPUSUBSET_COUNT	((HWLOC_NBMAXCPUS+HWLOC_CPUSUBSET_SIZE-1)/HWLOC_CPUSUBSET_SIZE)
+/* TODO
+ * - have a way to change the initial allocation size
+ * - preallocate inside the bitmap structure (so that the whole structure is a cacheline for instance)
+ *   and allocate a dedicated array only later when reallocating larger
+ */
 
 /* magic number */
-#define HWLOC_CPUSET_MAGIC 0x20091007
+#define HWLOC_BITMAP_MAGIC 0x20091007
 
 /* actual opaque type internals */
-struct hwloc_cpuset_s {
-	unsigned long s[HWLOC_CPUSUBSET_COUNT];
+struct hwloc_bitmap_s {
+  unsigned ulongs_count; /* how many ulong bitmasks are valid */
+  unsigned ulongs_allocated; /* how many ulong bitmasks are allocated */
+  unsigned long *ulongs;
+  int infinite; /* set to 1 if all bits beyond ulongs are set */
 #ifdef HWLOC_DEBUG
-	int magic;
+  int magic;
 #endif
 };
 
 /* overzealous check in debug-mode, not as powerful as valgrind but still useful */
 #ifdef HWLOC_DEBUG
-#define HWLOC__CPUSET_CHECK(set) assert((set)->magic == HWLOC_CPUSET_MAGIC)
+#define HWLOC__BITMAP_CHECK(set) assert((set)->magic == HWLOC_BITMAP_MAGIC)
 #else
-#define HWLOC__CPUSET_CHECK(set)
+#define HWLOC__BITMAP_CHECK(set)
 #endif
 
 /* extract a subset from a set using an index or a cpu */
-#define HWLOC_CPUSUBSET_SUBSET(set,x)		((set).s[x])
-#define HWLOC_CPUSUBSET_INDEX(cpu)		((cpu)/(HWLOC_CPUSUBSET_SIZE))
-#define HWLOC_CPUSUBSET_CPUSUBSET(set,cpu)	HWLOC_CPUSUBSET_SUBSET(set,HWLOC_CPUSUBSET_INDEX(cpu))
+#define HWLOC_SUBBITMAP_INDEX(cpu)		((cpu)/(HWLOC_BITS_PER_LONG))
+#define HWLOC_SUBBITMAP_CPU_ULBIT(cpu)		((cpu)%(HWLOC_BITS_PER_LONG))
+/* Read from a bitmap ulong without knowing whether x is valid.
+ * Writers should make sure that x is valid and modify set->ulongs[x] directly.
+ */
+#define HWLOC_SUBBITMAP_READULONG(set,x)	((x) < (set)->ulongs_count ? (set)->ulongs[x] : (set)->infinite ? HWLOC_SUBBITMAP_FULL : HWLOC_SUBBITMAP_ZERO)
 
 /* predefined subset values */
-#define HWLOC_CPUSUBSET_VAL(cpu)		(1UL<<((cpu)%(HWLOC_CPUSUBSET_SIZE)))
-#define HWLOC_CPUSUBSET_ZERO		0UL
-#define HWLOC_CPUSUBSET_FULL		~0UL
+#define HWLOC_SUBBITMAP_ZERO			0UL
+#define HWLOC_SUBBITMAP_FULL			(~0UL)
+#define HWLOC_SUBBITMAP_ULBIT(bit)		(1UL<<(bit))
+#define HWLOC_SUBBITMAP_CPU(cpu)		HWLOC_SUBBITMAP_ULBIT(HWLOC_SUBBITMAP_CPU_ULBIT(cpu))
+#define HWLOC_SUBBITMAP_ULBIT_TO(bit)		(HWLOC_SUBBITMAP_FULL>>(HWLOC_BITS_PER_LONG-1-(bit)))
+#define HWLOC_SUBBITMAP_ULBIT_FROM(bit)		(HWLOC_SUBBITMAP_FULL<<(bit))
+#define HWLOC_SUBBITMAP_ULBIT_FROMTO(begin,end)	(HWLOC_SUBBITMAP_ULBIT_TO(end) & HWLOC_SUBBITMAP_ULBIT_FROM(begin))
 
-/* Strings always use 32bit groups */
-#define HWLOC_PRIxCPUSUBSET		"%08lx"
-#define HWLOC_CPUSET_SUBSTRING_SIZE	32
-#define HWLOC_CPUSET_SUBSTRING_COUNT	((HWLOC_NBMAXCPUS+HWLOC_CPUSET_SUBSTRING_SIZE-1)/HWLOC_CPUSET_SUBSTRING_SIZE)
-#define HWLOC_CPUSET_SUBSTRING_LENGTH	(HWLOC_CPUSET_SUBSTRING_SIZE/4)
+struct hwloc_bitmap_s * hwloc_bitmap_alloc(void)
+{
+  struct hwloc_bitmap_s * set;
 
-struct hwloc_cpuset_s * hwloc_cpuset_alloc(void)
-{
-  struct hwloc_cpuset_s * set;
-  set = calloc(sizeof(*set), 1);
+  set = malloc(sizeof(struct hwloc_bitmap_s));
   if (!set)
     return NULL;
 
+  set->ulongs_count = 0;
+  set->ulongs_allocated = 64/sizeof(unsigned long);
+  set->ulongs = malloc(64);
+  if (!set->ulongs) {
+    free(set);
+    return NULL;
+  }
+
+  set->infinite = 0;
 #ifdef HWLOC_DEBUG
-  set->magic = HWLOC_CPUSET_MAGIC;
+  set->magic = HWLOC_BITMAP_MAGIC;
 #endif
   return set;
 }
 
-void hwloc_cpuset_free(struct hwloc_cpuset_s * set)
+struct hwloc_bitmap_s * hwloc_bitmap_alloc_full(void)
 {
+  struct hwloc_bitmap_s * set = hwloc_bitmap_alloc();
+  if (set)
+    set->infinite = 1;
+  return set;
+}
+
+void hwloc_bitmap_free(struct hwloc_bitmap_s * set)
+{
   if (!set)
     return;
 
-  HWLOC__CPUSET_CHECK(set);
+  HWLOC__BITMAP_CHECK(set);
 #ifdef HWLOC_DEBUG
   set->magic = 0;
 #endif
 
+  free(set->ulongs);
   free(set);
 }
 
-struct hwloc_cpuset_s * hwloc_cpuset_dup(const struct hwloc_cpuset_s * old)
+/* enlarge until it contains at least needed_count ulongs.
+ */
+static void
+hwloc_bitmap_enlarge_by_ulongs(struct hwloc_bitmap_s * set, unsigned needed_count)
 {
-  struct hwloc_cpuset_s * new;
+  unsigned tmp = 1 << hwloc_flsl((unsigned long) needed_count - 1);
+  if (tmp > set->ulongs_allocated) {
+    set->ulongs = realloc(set->ulongs, tmp * sizeof(unsigned long));
+    assert(set->ulongs);
+    set->ulongs_allocated = tmp;
+  }
+}
 
-  HWLOC__CPUSET_CHECK(old);
+/* enlarge until it contains at least needed_count ulongs,
+ * and update new ulongs according to the infinite field.
+ */
+static void
+hwloc_bitmap_realloc_by_ulongs(struct hwloc_bitmap_s * set, unsigned needed_count)
+{
+  unsigned i;
 
-  new = malloc(sizeof(*new));
+  HWLOC__BITMAP_CHECK(set);
+
+  if (needed_count <= set->ulongs_count)
+    return;
+
+  /* realloc larger if needed */
+  hwloc_bitmap_enlarge_by_ulongs(set, needed_count);
+
+  /* fill the newly allocated subset depending on the infinite flag */
+  for(i=set->ulongs_count; i<needed_count; i++)
+    set->ulongs[i] = set->infinite ? HWLOC_SUBBITMAP_FULL : HWLOC_SUBBITMAP_ZERO;
+  set->ulongs_count = needed_count;
+}
+
+/* realloc until it contains at least cpu+1 bits */
+#define hwloc_bitmap_realloc_by_cpu_index(set, cpu) hwloc_bitmap_realloc_by_ulongs(set, ((cpu)/HWLOC_BITS_PER_LONG)+1)
+
+/* reset a bitmap to exactely the needed size.
+ * the caller must reinitialize all ulongs and the infinite flag later.
+ */
+static void
+hwloc_bitmap_reset_by_ulongs(struct hwloc_bitmap_s * set, unsigned needed_count)
+{
+  hwloc_bitmap_enlarge_by_ulongs(set, needed_count);
+  set->ulongs_count = needed_count;
+}
+
+/* reset until it contains exactly cpu+1 bits (roundup to a ulong).
+ * the caller must reinitialize all ulongs and the infinite flag later.
+ */
+#define hwloc_bitmap_reset_by_cpu_index(set, cpu) hwloc_bitmap_reset_by_ulongs(set, ((cpu)/HWLOC_BITS_PER_LONG)+1)
+
+struct hwloc_bitmap_s * hwloc_bitmap_dup(const struct hwloc_bitmap_s * old)
+{
+  struct hwloc_bitmap_s * new;
+
+  HWLOC__BITMAP_CHECK(old);
+
+  new = malloc(sizeof(struct hwloc_bitmap_s));
   if (!new)
     return NULL;
 
-  memcpy(new, old, sizeof(*new));
+  new->ulongs = malloc(old->ulongs_allocated * sizeof(unsigned long));
+  if (!new->ulongs) {
+    free(new);
+    return NULL;
+  }
+  new->ulongs_allocated = old->ulongs_allocated;
+  new->ulongs_count = old->ulongs_count;
+  memcpy(new->ulongs, old->ulongs, new->ulongs_count * sizeof(unsigned long));
+  new->infinite = old->infinite;
+#ifdef HWLOC_DEBUG
+  new->magic = HWLOC_BITMAP_MAGIC;
+#endif
   return new;
 }
 
-void hwloc_cpuset_copy(struct hwloc_cpuset_s * dst, const struct hwloc_cpuset_s * src)
+void hwloc_bitmap_copy(struct hwloc_bitmap_s * dst, const struct hwloc_bitmap_s * src)
 {
-  HWLOC__CPUSET_CHECK(dst);
-  HWLOC__CPUSET_CHECK(src);
+  HWLOC__BITMAP_CHECK(dst);
+  HWLOC__BITMAP_CHECK(src);
 
-  memcpy(dst, src, sizeof(*dst));
+  hwloc_bitmap_reset_by_ulongs(dst, src->ulongs_count);
+
+  memcpy(dst->ulongs, src->ulongs, src->ulongs_count * sizeof(unsigned long));
+  dst->infinite = src->infinite;
 }
 
-int hwloc_cpuset_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_cpuset_s * __hwloc_restrict set)
+/* Strings always use 32bit groups */
+#define HWLOC_PRIxSUBBITMAP		"%08lx"
+#define HWLOC_BITMAP_SUBSTRING_SIZE	32
+#define HWLOC_BITMAP_SUBSTRING_LENGTH	(HWLOC_BITMAP_SUBSTRING_SIZE/4)
+#define HWLOC_BITMAP_STRING_PER_LONG	(HWLOC_BITS_PER_LONG/HWLOC_BITMAP_SUBSTRING_SIZE)
+
+int hwloc_bitmap_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_bitmap_s * __hwloc_restrict set)
 {
   ssize_t size = buflen;
   char *tmp = buf;
@@ -110,32 +218,51 @@
   int i;
   unsigned long accum = 0;
   int accumed = 0;
-#if HWLOC_BITS_PER_LONG == HWLOC_CPUSET_SUBSTRING_SIZE
+#if HWLOC_BITS_PER_LONG == HWLOC_BITMAP_SUBSTRING_SIZE
   const unsigned long accum_mask = ~0UL;
-#else /* HWLOC_BITS_PER_LONG != HWLOC_CPUSET_SUBSTRING_SIZE */
-  const unsigned long accum_mask = ((1UL << HWLOC_CPUSET_SUBSTRING_SIZE) - 1) << (HWLOC_BITS_PER_LONG - HWLOC_CPUSET_SUBSTRING_SIZE);
-#endif /* HWLOC_BITS_PER_LONG != HWLOC_CPUSET_SUBSTRING_SIZE */
+#else /* HWLOC_BITS_PER_LONG != HWLOC_BITMAP_SUBSTRING_SIZE */
+  const unsigned long accum_mask = ((1UL << HWLOC_BITMAP_SUBSTRING_SIZE) - 1) << (HWLOC_BITS_PER_LONG - HWLOC_BITMAP_SUBSTRING_SIZE);
+#endif /* HWLOC_BITS_PER_LONG != HWLOC_BITMAP_SUBSTRING_SIZE */
 
-  HWLOC__CPUSET_CHECK(set);
+  HWLOC__BITMAP_CHECK(set);
 
   /* mark the end in case we do nothing later */
   if (buflen > 0)
     tmp[0] = '\0';
 
-  i=HWLOC_CPUSUBSET_COUNT-1;
+  if (set->infinite) {
+    res = hwloc_snprintf(tmp, size, "0xf...f");
+    needcomma = 1;
+    if (res < 0)
+      return -1;
+    ret += res;
+    if (res >= size)
+      res = size>0 ? size - 1 : 0;
+    tmp += res;
+    size -= res;
+  }
+
+  if (!set->infinite && !set->ulongs_count) {
+    res = hwloc_snprintf(tmp, size, "0x0");
+    if (res < 0)
+      return -1;
+    return res;
+  }
+
+  i=set->ulongs_count-1;
   while (i>=0 || accumed) {
     /* Refill accumulator */
     if (!accumed) {
-      accum = set->s[i--];
+      accum = set->ulongs[i--];
       accumed = HWLOC_BITS_PER_LONG;
     }
 
     if (accum & accum_mask) {
       /* print the whole subset if not empty */
-        res = hwloc_snprintf(tmp, size, needcomma ? ",0x" HWLOC_PRIxCPUSUBSET : "0x" HWLOC_PRIxCPUSUBSET,
-		     (accum & accum_mask) >> (HWLOC_BITS_PER_LONG - HWLOC_CPUSET_SUBSTRING_SIZE));
+        res = hwloc_snprintf(tmp, size, needcomma ? ",0x" HWLOC_PRIxSUBBITMAP : "0x" HWLOC_PRIxSUBBITMAP,
+		     (accum & accum_mask) >> (HWLOC_BITS_PER_LONG - HWLOC_BITMAP_SUBSTRING_SIZE));
       needcomma = 1;
-    } else if (i == -1 && accumed == HWLOC_CPUSET_SUBSTRING_SIZE) {
+    } else if (i == -1 && accumed == HWLOC_BITMAP_SUBSTRING_SIZE) {
       /* print a single 0 to mark the last subset */
       res = hwloc_snprintf(tmp, size, needcomma ? ",0x0" : "0x0");
     } else if (needcomma) {
@@ -147,12 +274,12 @@
       return -1;
     ret += res;
 
-#if HWLOC_BITS_PER_LONG == HWLOC_CPUSET_SUBSTRING_SIZE
+#if HWLOC_BITS_PER_LONG == HWLOC_BITMAP_SUBSTRING_SIZE
     accum = 0;
     accumed = 0;
 #else
-    accum <<= HWLOC_CPUSET_SUBSTRING_SIZE;
-    accumed -= HWLOC_CPUSET_SUBSTRING_SIZE;
+    accum <<= HWLOC_BITMAP_SUBSTRING_SIZE;
+    accumed -= HWLOC_BITMAP_SUBSTRING_SIZE;
 #endif
 
     if (res >= size)
@@ -165,393 +292,665 @@
   return ret;
 }
 
-int hwloc_cpuset_asprintf(char ** strp, const struct hwloc_cpuset_s * __hwloc_restrict set)
+int hwloc_bitmap_asprintf(char ** strp, const struct hwloc_bitmap_s * __hwloc_restrict set)
 {
   int len;
   char *buf;
 
-  HWLOC__CPUSET_CHECK(set);
+  HWLOC__BITMAP_CHECK(set);
 
-  len = hwloc_cpuset_snprintf(NULL, 0, set);
+  len = hwloc_bitmap_snprintf(NULL, 0, set);
   buf = malloc(len+1);
   *strp = buf;
-  return hwloc_cpuset_snprintf(buf, len+1, set);
+  return hwloc_bitmap_snprintf(buf, len+1, set);
 }
 
-int hwloc_cpuset_from_string(struct hwloc_cpuset_s *set, const char * __hwloc_restrict string)
+int hwloc_bitmap_sscanf(struct hwloc_bitmap_s *set, const char * __hwloc_restrict string)
 {
   const char * current = string;
-  int count=0, i;
   unsigned long accum = 0;
-  int accumed = 0;
+  int count=0;
+  int infinite = 0;
 
-  hwloc_cpuset_zero(set);
+  /* count how many substrings there are */
+  count++;
+  while ((current = strchr(current+1, ',')) != NULL)
+    count++;
 
+  current = string;
+  if (!strncmp("0xf...f,", current, 8)) {
+    infinite = 1;
+    current += 8;
+    count--;
+  }
+
+  hwloc_bitmap_reset_by_ulongs(set, (count + HWLOC_BITMAP_STRING_PER_LONG - 1) / HWLOC_BITMAP_STRING_PER_LONG);
+  set->infinite = 0;
+
   while (*current != '\0') {
     unsigned long val;
     char *next;
     val = strtoul(current, &next, 16);
-    /* store subset in order, starting from the end */
-#if HWLOC_BITS_PER_LONG == HWLOC_CPUSET_SUBSTRING_SIZE
-    accum = val;
-#else
-    accum = (accum << HWLOC_CPUSET_SUBSTRING_SIZE) | val;
-#endif
-    accumed += HWLOC_CPUSET_SUBSTRING_SIZE;
-    if (accumed == HWLOC_BITS_PER_LONG) {
-      set->s[HWLOC_CPUSUBSET_COUNT-1-count] = accum;
-      count++;
+
+    assert(count > 0);
+    count--;
+
+    accum |= (val << ((count * HWLOC_BITMAP_SUBSTRING_SIZE) % HWLOC_BITS_PER_LONG));
+    if (!(count % HWLOC_BITMAP_STRING_PER_LONG)) {
+      set->ulongs[count / HWLOC_BITMAP_STRING_PER_LONG] = accum;
       accum = 0;
-      accumed = 0;
     }
-    if (*next != ',')
-      break;
+
+    if (*next != ',') {
+      if (*next || count > 0)
+	goto failed;
+      else
+	break;
+    }
     current = (const char*) next+1;
-    if (count == HWLOC_CPUSUBSET_COUNT)
-      break;
   }
 
-  /* move subsets back to the beginning and clear the missing subsets */
-  for (i = 0; i < count; i++) {
-    set->s[i] = accum;
-    set->s[i] |= set->s[HWLOC_CPUSUBSET_COUNT-count+i] << accumed;
-    if (accumed)
-      accum = set->s[HWLOC_CPUSUBSET_COUNT-count+i] >> (HWLOC_BITS_PER_LONG - accumed);
-  }
-  /* Remaining bit from last iteration */
-  if (accumed && count < HWLOC_CPUSUBSET_COUNT)
-    set->s[i++] = accum;
-  for( ; i<HWLOC_CPUSUBSET_COUNT; i++)
-    set->s[i] = 0;
+  set->infinite = infinite; /* set at the end, to avoid spurious realloc with filled new ulongs */
 
   return 0;
+
+ failed:
+  /* failure to parse */
+  hwloc_bitmap_zero(set);
+  return -1;
 }
 
-void hwloc_cpuset_zero(struct hwloc_cpuset_s * set)
+int hwloc_bitmap_taskset_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_bitmap_s * __hwloc_restrict set)
 {
-	int i;
+  ssize_t size = buflen;
+  char *tmp = buf;
+  int res, ret = 0;
+  int started = 0;
+  int i;
 
-	HWLOC__CPUSET_CHECK(set);
+  HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*set,i) = HWLOC_CPUSUBSET_ZERO;
+  /* mark the end in case we do nothing later */
+  if (buflen > 0)
+    tmp[0] = '\0';
+
+  if (set->infinite) {
+    res = hwloc_snprintf(tmp, size, "0xf...f");
+    started = 1;
+    if (res < 0)
+      return -1;
+    ret += res;
+    if (res >= size)
+      res = size>0 ? size - 1 : 0;
+    tmp += res;
+    size -= res;
+  }
+
+  i=set->ulongs_count-1;
+  while (i>=0) {
+    unsigned long val = set->ulongs[i--];
+    if (started) {
+      /* print the whole subset */
+      res = hwloc_snprintf(tmp, size, "%08lx", val);
+    } else if (val) {
+      res = hwloc_snprintf(tmp, size, "0x%lx", val);
+      started = 1;
+    } else {
+      res = 0;
+    }
+    if (res < 0)
+      return -1;
+    ret += res;
+    if (res >= size)
+      res = size>0 ? size - 1 : 0;
+    tmp += res;
+    size -= res;
+  }
+
+  return ret;
 }
 
-void hwloc_cpuset_fill(struct hwloc_cpuset_s * set)
+int hwloc_bitmap_taskset_asprintf(char ** strp, const struct hwloc_bitmap_s * __hwloc_restrict set)
 {
-	int i;
+  int len;
+  char *buf;
 
-	HWLOC__CPUSET_CHECK(set);
+  HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*set,i) = HWLOC_CPUSUBSET_FULL;
+  len = hwloc_bitmap_taskset_snprintf(NULL, 0, set);
+  buf = malloc(len+1);
+  *strp = buf;
+  return hwloc_bitmap_taskset_snprintf(buf, len+1, set);
 }
 
-void hwloc_cpuset_from_ulong(struct hwloc_cpuset_s *set, unsigned long mask)
+int hwloc_bitmap_taskset_sscanf(struct hwloc_bitmap_s *set, const char * __hwloc_restrict string)
 {
-	int i;
+  const char * current = string;
+  int chars;
+  int count;
+  int infinite = 0;
 
-	HWLOC__CPUSET_CHECK(set);
+  current = string;
+  if (!strncmp("0xf...f", current, 7)) {
+    infinite = 1;
+    current += 7;
+  } else if (!strncmp("0x", current, 2)) {
+    current += 2;
+  }
 
-	HWLOC_CPUSUBSET_SUBSET(*set,0) = mask;
-	for(i=1; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*set,i) = HWLOC_CPUSUBSET_ZERO;
+  chars = strlen(current);
+  count = (chars * 4 + HWLOC_BITS_PER_LONG - 1) / HWLOC_BITS_PER_LONG;
+
+  hwloc_bitmap_reset_by_ulongs(set, count);
+  set->infinite = 0;
+
+  while (*current != '\0') {
+    int tmpchars;
+    char ustr[9];
+    unsigned long val;
+    char *next;
+
+    tmpchars = chars % 8;
+    if (!tmpchars)
+      tmpchars = 8;
+
+    memcpy(ustr, current, tmpchars);
+    ustr[tmpchars] = '\0';
+    val = strtoul(ustr, &next, 16);
+    if (*next != '\0')
+      goto failed;
+
+    set->ulongs[count-1] = val;
+
+    current += tmpchars;
+    chars -= tmpchars;
+    count--;
+  }
+
+  set->infinite = infinite; /* set at the end, to avoid spurious realloc with filled new ulongs */
+
+  return 0;
+
+ failed:
+  /* failure to parse */
+  hwloc_bitmap_zero(set);
+  return -1;
 }
 
-void hwloc_cpuset_from_ith_ulong(struct hwloc_cpuset_s *set, unsigned i, unsigned long mask)
+static void hwloc_bitmap__zero(struct hwloc_bitmap_s *set)
 {
+	unsigned i;
+	for(i=0; i<set->ulongs_count; i++)
+		set->ulongs[i] = HWLOC_SUBBITMAP_ZERO;
+	set->infinite = 0;
+}
+
+void hwloc_bitmap_zero(struct hwloc_bitmap_s * set)
+{
+	HWLOC__BITMAP_CHECK(set);
+
+	hwloc_bitmap_reset_by_ulongs(set, 0);
+	hwloc_bitmap__zero(set);
+}
+
+static void hwloc_bitmap__fill(struct hwloc_bitmap_s * set)
+{
+	unsigned i;
+	for(i=0; i<set->ulongs_count; i++)
+		set->ulongs[i] = HWLOC_SUBBITMAP_FULL;
+	set->infinite = 1;
+}
+
+void hwloc_bitmap_fill(struct hwloc_bitmap_s * set)
+{
+	HWLOC__BITMAP_CHECK(set);
+
+	hwloc_bitmap_reset_by_ulongs(set, 0);
+	hwloc_bitmap__fill(set);
+}
+
+void hwloc_bitmap_from_ulong(struct hwloc_bitmap_s *set, unsigned long mask)
+{
+	HWLOC__BITMAP_CHECK(set);
+
+	hwloc_bitmap_reset_by_ulongs(set, 1);
+	set->ulongs[0] = mask; /* there's always at least one ulong allocated */
+	set->infinite = 0;
+}
+
+void hwloc_bitmap_from_ith_ulong(struct hwloc_bitmap_s *set, unsigned i, unsigned long mask)
+{
 	unsigned j;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	HWLOC_CPUSUBSET_SUBSET(*set,i) = mask;
-	for(j=1; j<HWLOC_CPUSUBSET_COUNT; j++)
-		if (j != i)
-			HWLOC_CPUSUBSET_SUBSET(*set,j) = HWLOC_CPUSUBSET_ZERO;
+	hwloc_bitmap_reset_by_ulongs(set, i+1);
+	set->ulongs[i] = mask;
+	for(j=1; j<(unsigned) i; j++)
+		set->ulongs[j] = HWLOC_SUBBITMAP_ZERO;
+	set->infinite = 0;
 }
 
-unsigned long hwloc_cpuset_to_ulong(const struct hwloc_cpuset_s *set)
+unsigned long hwloc_bitmap_to_ulong(const struct hwloc_bitmap_s *set)
 {
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	return HWLOC_CPUSUBSET_SUBSET(*set,0);
+	return set->ulongs[0]; /* there's always at least one ulong allocated */
 }
 
-unsigned long hwloc_cpuset_to_ith_ulong(const struct hwloc_cpuset_s *set, unsigned i)
+unsigned long hwloc_bitmap_to_ith_ulong(const struct hwloc_bitmap_s *set, unsigned i)
 {
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	return HWLOC_CPUSUBSET_SUBSET(*set,i);
+	return HWLOC_SUBBITMAP_READULONG(set, i);
 }
 
-void hwloc_cpuset_cpu(struct hwloc_cpuset_s * set, unsigned cpu)
+void hwloc_bitmap_only(struct hwloc_bitmap_s * set, unsigned cpu)
 {
-	HWLOC__CPUSET_CHECK(set);
+	unsigned index = HWLOC_SUBBITMAP_INDEX(cpu);
 
-	hwloc_cpuset_zero(set);
-	HWLOC_CPUSUBSET_CPUSUBSET(*set,cpu) |= HWLOC_CPUSUBSET_VAL(cpu);
+	HWLOC__BITMAP_CHECK(set);
+
+	hwloc_bitmap_reset_by_cpu_index(set, cpu);
+	hwloc_bitmap__zero(set);
+	set->ulongs[index] |= HWLOC_SUBBITMAP_CPU(cpu);
 }
 
-void hwloc_cpuset_all_but_cpu(struct hwloc_cpuset_s * set, unsigned cpu)
+void hwloc_bitmap_allbut(struct hwloc_bitmap_s * set, unsigned cpu)
 {
-	HWLOC__CPUSET_CHECK(set);
+	unsigned index = HWLOC_SUBBITMAP_INDEX(cpu);
 
-	hwloc_cpuset_fill(set);
-	HWLOC_CPUSUBSET_CPUSUBSET(*set,cpu) &= ~HWLOC_CPUSUBSET_VAL(cpu);
+	HWLOC__BITMAP_CHECK(set);
+
+	hwloc_bitmap_reset_by_cpu_index(set, cpu);
+	hwloc_bitmap__fill(set);
+	set->ulongs[index] &= ~HWLOC_SUBBITMAP_CPU(cpu);
 }
 
-void hwloc_cpuset_set(struct hwloc_cpuset_s * set, unsigned cpu)
+void hwloc_bitmap_set(struct hwloc_bitmap_s * set, unsigned cpu)
 {
-	HWLOC__CPUSET_CHECK(set);
+	unsigned index = HWLOC_SUBBITMAP_INDEX(cpu);
 
-	HWLOC_CPUSUBSET_CPUSUBSET(*set,cpu) |= HWLOC_CPUSUBSET_VAL(cpu);
+	HWLOC__BITMAP_CHECK(set);
+
+	/* nothing to do if setting inside the infinite part of the bitmap */
+	if (set->infinite && cpu >= set->ulongs_count * HWLOC_BITS_PER_LONG)
+		return;
+
+	hwloc_bitmap_realloc_by_cpu_index(set, cpu);
+	set->ulongs[index] |= HWLOC_SUBBITMAP_CPU(cpu);
 }
 
-void hwloc_cpuset_set_range(struct hwloc_cpuset_s * set, unsigned begincpu, unsigned endcpu)
+void hwloc_bitmap_set_range(struct hwloc_bitmap_s * set, unsigned begincpu, unsigned endcpu)
 {
 	unsigned i;
+	unsigned beginset,endset;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for (i=begincpu; i<=endcpu; i++)
-		HWLOC_CPUSUBSET_CPUSUBSET(*set,i) |= HWLOC_CPUSUBSET_VAL(i);
+	if (set->infinite) {
+		/* truncate the range according to the infinite part of the bitmap */
+		if (endcpu >= set->ulongs_count * HWLOC_BITS_PER_LONG)
+			endcpu = set->ulongs_count * HWLOC_BITS_PER_LONG - 1;
+		if (begincpu >= set->ulongs_count * HWLOC_BITS_PER_LONG)
+			return;
+	}
+	if (endcpu < begincpu)
+		return;
+	hwloc_bitmap_realloc_by_cpu_index(set, endcpu);
+
+	beginset = HWLOC_SUBBITMAP_INDEX(begincpu);
+	endset = HWLOC_SUBBITMAP_INDEX(endcpu);
+	for(i=beginset+1; i<endset; i++)
+		set->ulongs[i] = HWLOC_SUBBITMAP_FULL;
+	if (beginset == endset) {
+		set->ulongs[beginset] |= HWLOC_SUBBITMAP_ULBIT_FROMTO(HWLOC_SUBBITMAP_CPU_ULBIT(begincpu), HWLOC_SUBBITMAP_CPU_ULBIT(endcpu));
+	} else {
+		set->ulongs[beginset] |= HWLOC_SUBBITMAP_ULBIT_FROM(HWLOC_SUBBITMAP_CPU_ULBIT(begincpu));
+		set->ulongs[endset] |= HWLOC_SUBBITMAP_ULBIT_TO(HWLOC_SUBBITMAP_CPU_ULBIT(endcpu));
+	}
 }
 
-void hwloc_cpuset_clr(struct hwloc_cpuset_s * set, unsigned cpu)
+void hwloc_bitmap_set_ith_ulong(struct hwloc_bitmap_s *set, unsigned i, unsigned long mask)
 {
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	HWLOC_CPUSUBSET_CPUSUBSET(*set,cpu) &= ~HWLOC_CPUSUBSET_VAL(cpu);
+	hwloc_bitmap_realloc_by_ulongs(set, i+1);
+	set->ulongs[i] = mask;
 }
 
-void hwloc_cpuset_clr_range(struct hwloc_cpuset_s * set, unsigned begincpu, unsigned endcpu)
+void hwloc_bitmap_clr(struct hwloc_bitmap_s * set, unsigned cpu)
 {
+	unsigned index = HWLOC_SUBBITMAP_INDEX(cpu);
+
+	HWLOC__BITMAP_CHECK(set);
+
+	/* nothing to do if clearing inside the infinitely-unset part of the bitmap */
+	if (!set->infinite && cpu >= set->ulongs_count * HWLOC_BITS_PER_LONG)
+		return;
+
+	hwloc_bitmap_realloc_by_cpu_index(set, cpu);
+	set->ulongs[index] &= ~HWLOC_SUBBITMAP_CPU(cpu);
+}
+
+void hwloc_bitmap_clr_range(struct hwloc_bitmap_s * set, unsigned begincpu, unsigned endcpu)
+{
 	unsigned i;
+	unsigned beginset,endset;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for (i=begincpu; i<=endcpu; i++)
-		HWLOC_CPUSUBSET_CPUSUBSET(*set,i) &= ~HWLOC_CPUSUBSET_VAL(i);
+	if (!set->infinite) {
+		/* truncate the range according to the infinitely-unset part of the bitmap */
+		if (endcpu >= set->ulongs_count * HWLOC_BITS_PER_LONG)
+			endcpu = set->ulongs_count * HWLOC_BITS_PER_LONG - 1;
+		if (begincpu >= set->ulongs_count * HWLOC_BITS_PER_LONG)
+			return;
+	}
+	if (endcpu < begincpu)
+		return;
+	hwloc_bitmap_realloc_by_cpu_index(set, endcpu);
+
+	beginset = HWLOC_SUBBITMAP_INDEX(begincpu);
+	endset = HWLOC_SUBBITMAP_INDEX(endcpu);
+	for(i=beginset+1; i<endset; i++)
+		set->ulongs[i] = HWLOC_SUBBITMAP_ZERO;
+	if (beginset == endset) {
+		set->ulongs[beginset] &= ~HWLOC_SUBBITMAP_ULBIT_FROMTO(HWLOC_SUBBITMAP_CPU_ULBIT(begincpu), HWLOC_SUBBITMAP_CPU_ULBIT(endcpu));
+	} else {
+		set->ulongs[beginset] &= ~HWLOC_SUBBITMAP_ULBIT_FROM(HWLOC_SUBBITMAP_CPU_ULBIT(begincpu));
+		set->ulongs[endset] &= ~HWLOC_SUBBITMAP_ULBIT_TO(HWLOC_SUBBITMAP_CPU_ULBIT(endcpu));
+	}
 }
 
-int hwloc_cpuset_isset(const struct hwloc_cpuset_s * set, unsigned cpu)
+int hwloc_bitmap_isset(const struct hwloc_bitmap_s * set, unsigned cpu)
 {
-	HWLOC__CPUSET_CHECK(set);
+	unsigned index = HWLOC_SUBBITMAP_INDEX(cpu);
 
-	return (HWLOC_CPUSUBSET_CPUSUBSET(*set,cpu) & HWLOC_CPUSUBSET_VAL(cpu)) != 0;
+	HWLOC__BITMAP_CHECK(set);
+
+	return (HWLOC_SUBBITMAP_READULONG(set, index) & HWLOC_SUBBITMAP_CPU(cpu)) != 0;
 }
 
-int hwloc_cpuset_iszero(const struct hwloc_cpuset_s *set)
+int hwloc_bitmap_iszero(const struct hwloc_bitmap_s *set)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		if (HWLOC_CPUSUBSET_SUBSET(*set,i) != HWLOC_CPUSUBSET_ZERO)
+	if (set->infinite)
+		return 0;
+	for(i=0; i<set->ulongs_count; i++)
+		if (set->ulongs[i] != HWLOC_SUBBITMAP_ZERO)
 			return 0;
 	return 1;
 }
 
-int hwloc_cpuset_isfull(const struct hwloc_cpuset_s *set)
+int hwloc_bitmap_isfull(const struct hwloc_bitmap_s *set)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		if (HWLOC_CPUSUBSET_SUBSET(*set,i) != HWLOC_CPUSUBSET_FULL)
+	if (!set->infinite)
+		return 0;
+	for(i=0; i<set->ulongs_count; i++)
+		if (set->ulongs[i] != HWLOC_SUBBITMAP_FULL)
 			return 0;
 	return 1;
 }
 
-int hwloc_cpuset_isequal (const struct hwloc_cpuset_s *set1, const struct hwloc_cpuset_s *set2)
+int hwloc_bitmap_isequal (const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		if (HWLOC_CPUSUBSET_SUBSET(*set1,i) != HWLOC_CPUSUBSET_SUBSET(*set2,i))
+	for(i=0; i<set1->ulongs_count || i<set2->ulongs_count; i++)
+		if (HWLOC_SUBBITMAP_READULONG(set1, i) != HWLOC_SUBBITMAP_READULONG(set2, i))
 			return 0;
+
+	if (set1->infinite != set2->infinite)
+		return 0;
+
 	return 1;
 }
 
-int hwloc_cpuset_intersects (const struct hwloc_cpuset_s *set1, const struct hwloc_cpuset_s *set2)
+int hwloc_bitmap_intersects (const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		if ((HWLOC_CPUSUBSET_SUBSET(*set1,i) & HWLOC_CPUSUBSET_SUBSET(*set2,i)) != HWLOC_CPUSUBSET_ZERO)
+	for(i=0; i<set1->ulongs_count || i<set2->ulongs_count; i++)
+		if ((HWLOC_SUBBITMAP_READULONG(set1, i) & HWLOC_SUBBITMAP_READULONG(set2, i)) != HWLOC_SUBBITMAP_ZERO)
 			return 1;
+
+	if (set1->infinite && set2->infinite)
+		return 0;
+
 	return 0;
 }
 
-int hwloc_cpuset_isincluded (const struct hwloc_cpuset_s *sub_set, const struct hwloc_cpuset_s *super_set)
+int hwloc_bitmap_isincluded (const struct hwloc_bitmap_s *sub_set, const struct hwloc_bitmap_s *super_set)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(sub_set);
-	HWLOC__CPUSET_CHECK(super_set);
+	HWLOC__BITMAP_CHECK(sub_set);
+	HWLOC__BITMAP_CHECK(super_set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		if (HWLOC_CPUSUBSET_SUBSET(*super_set,i) != (HWLOC_CPUSUBSET_SUBSET(*super_set,i) | HWLOC_CPUSUBSET_SUBSET(*sub_set,i)))
+	for(i=0; i<sub_set->ulongs_count; i++)
+		if (HWLOC_SUBBITMAP_READULONG(super_set, i) != (HWLOC_SUBBITMAP_READULONG(super_set, i) | HWLOC_SUBBITMAP_READULONG(sub_set, i)))
 			return 0;
+
+	if (sub_set->infinite && !super_set->infinite)
+		return 0;
+
 	return 1;
 }
 
-void hwloc_cpuset_or (struct hwloc_cpuset_s *res, const struct hwloc_cpuset_s *set1, const struct hwloc_cpuset_s *set2)
+void hwloc_bitmap_or (struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2)
 {
-	int i;
+	const struct hwloc_bitmap_s *largest = set1->ulongs_count > set2->ulongs_count ? set1 : set2;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(res);
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(res);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*res,i) = HWLOC_CPUSUBSET_SUBSET(*set1,i) | HWLOC_CPUSUBSET_SUBSET(*set2,i);
+	hwloc_bitmap_realloc_by_ulongs(res, largest->ulongs_count); /* cannot reset since the output may also be an input */
+
+	for(i=0; i<res->ulongs_count; i++)
+		res->ulongs[i] = HWLOC_SUBBITMAP_READULONG(set1, i) | HWLOC_SUBBITMAP_READULONG(set2, i);
+
+	res->infinite = set1->infinite || set2->infinite;
 }
 
-void hwloc_cpuset_and (struct hwloc_cpuset_s *res, const struct hwloc_cpuset_s *set1, const struct hwloc_cpuset_s *set2)
+void hwloc_bitmap_and (struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2)
 {
-	int i;
+	const struct hwloc_bitmap_s *largest = set1->ulongs_count > set2->ulongs_count ? set1 : set2;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(res);
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(res);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*res,i) = HWLOC_CPUSUBSET_SUBSET(*set1,i) & HWLOC_CPUSUBSET_SUBSET(*set2,i);
+	hwloc_bitmap_realloc_by_ulongs(res, largest->ulongs_count); /* cannot reset since the output may also be an input */
+
+	for(i=0; i<res->ulongs_count; i++)
+		res->ulongs[i] = HWLOC_SUBBITMAP_READULONG(set1, i) & HWLOC_SUBBITMAP_READULONG(set2, i);
+
+	res->infinite = set1->infinite && set2->infinite;
 }
 
-void hwloc_cpuset_andnot (struct hwloc_cpuset_s *res, const struct hwloc_cpuset_s *set1, const struct hwloc_cpuset_s *set2)
+void hwloc_bitmap_andnot (struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2)
 {
-	int i;
+	const struct hwloc_bitmap_s *largest = set1->ulongs_count > set2->ulongs_count ? set1 : set2;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(res);
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(res);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*res,i) = HWLOC_CPUSUBSET_SUBSET(*set1,i) & ~HWLOC_CPUSUBSET_SUBSET(*set2,i);
+	hwloc_bitmap_realloc_by_ulongs(res, largest->ulongs_count); /* cannot reset since the output may also be an input */
+
+	for(i=0; i<res->ulongs_count; i++)
+		res->ulongs[i] = HWLOC_SUBBITMAP_READULONG(set1, i) & ~HWLOC_SUBBITMAP_READULONG(set2, i);
+
+	res->infinite = set1->infinite && !set2->infinite;
 }
 
-void hwloc_cpuset_xor (struct hwloc_cpuset_s *res, const struct hwloc_cpuset_s *set1, const struct hwloc_cpuset_s *set2)
+void hwloc_bitmap_xor (struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2)
 {
-	int i;
+	const struct hwloc_bitmap_s *largest = set1->ulongs_count > set2->ulongs_count ? set1 : set2;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(res);
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(res);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*res,i) = HWLOC_CPUSUBSET_SUBSET(*set1,i) ^ HWLOC_CPUSUBSET_SUBSET(*set2,i);
+	hwloc_bitmap_realloc_by_ulongs(res, largest->ulongs_count); /* cannot reset since the output may also be an input */
+
+	for(i=0; i<res->ulongs_count; i++)
+		res->ulongs[i] = HWLOC_SUBBITMAP_READULONG(set1, i) ^ HWLOC_SUBBITMAP_READULONG(set2, i);
+
+	res->infinite = (!set1->infinite) != (!set2->infinite);
 }
 
-void hwloc_cpuset_not (struct hwloc_cpuset_s *res, const struct hwloc_cpuset_s *set)
+void hwloc_bitmap_not (struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(res);
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(res);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		HWLOC_CPUSUBSET_SUBSET(*res,i) = ~HWLOC_CPUSUBSET_SUBSET(*set,i);
+	hwloc_bitmap_realloc_by_ulongs(res, set->ulongs_count); /* cannot reset since the output may also be an input */
+
+	for(i=0; i<res->ulongs_count; i++)
+		res->ulongs[i] = ~HWLOC_SUBBITMAP_READULONG(set, i);
+
+	res->infinite = !set->infinite;
 }
 
-int hwloc_cpuset_first(const struct hwloc_cpuset_s * set)
+int hwloc_bitmap_first(const struct hwloc_bitmap_s * set)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++) {
+	for(i=0; i<set->ulongs_count; i++) {
 		/* subsets are unsigned longs, use ffsl */
-		unsigned long w = HWLOC_CPUSUBSET_SUBSET(*set,i);
+		unsigned long w = set->ulongs[i];
 		if (w)
-			return hwloc_ffsl(w) - 1 + HWLOC_CPUSUBSET_SIZE*i;
+			return hwloc_ffsl(w) - 1 + HWLOC_BITS_PER_LONG*i;
 	}
 
+	if (set->infinite)
+		return set->ulongs_count * HWLOC_BITS_PER_LONG;
+
 	return -1;
 }
 
-int hwloc_cpuset_last(const struct hwloc_cpuset_s * set)
+int hwloc_bitmap_last(const struct hwloc_bitmap_s * set)
 {
 	int i;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=HWLOC_CPUSUBSET_COUNT-1; i>=0; i--) {
+	if (set->infinite)
+		return -1;
+
+	for(i=set->ulongs_count-1; i>=0; i--) {
 		/* subsets are unsigned longs, use flsl */
-		unsigned long w = HWLOC_CPUSUBSET_SUBSET(*set,i);
+		unsigned long w = set->ulongs[i];
 		if (w)
-			return hwloc_flsl(w) - 1 + HWLOC_CPUSUBSET_SIZE*i;
+			return hwloc_flsl(w) - 1 + HWLOC_BITS_PER_LONG*i;
 	}
 
 	return -1;
 }
 
-int hwloc_cpuset_next(const struct hwloc_cpuset_s * set, unsigned prev_cpu)
+int hwloc_bitmap_next(const struct hwloc_bitmap_s * set, unsigned prev_cpu)
 {
-	unsigned i = HWLOC_CPUSUBSET_INDEX(prev_cpu + 1);
+	unsigned i = HWLOC_SUBBITMAP_INDEX(prev_cpu + 1);
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(; i<HWLOC_CPUSUBSET_COUNT; i++) {
+	if (i >= set->ulongs_count) {
+		if (set->infinite)
+			return prev_cpu + 1;
+		else
+			return -1;
+	}
+
+	for(; i<set->ulongs_count; i++) {
 		/* subsets are unsigned longs, use ffsl */
-		unsigned long w = HWLOC_CPUSUBSET_SUBSET(*set,i);
+		unsigned long w = set->ulongs[i];
 
 		/* if the prev cpu is in the same word as the possible next one,
 		   we need to mask out previous cpus */
-		if (HWLOC_CPUSUBSET_INDEX(prev_cpu) == i)
-			w &= ~((HWLOC_CPUSUBSET_VAL(prev_cpu) << 1) - 1);
+		if (HWLOC_SUBBITMAP_INDEX(prev_cpu) == i)
+			w &= ~HWLOC_SUBBITMAP_ULBIT_TO(HWLOC_SUBBITMAP_CPU_ULBIT(prev_cpu));
 
 		if (w)
-			return hwloc_ffsl(w) - 1 + HWLOC_CPUSUBSET_SIZE*i;
+			return hwloc_ffsl(w) - 1 + HWLOC_BITS_PER_LONG*i;
 	}
 
+	if (set->infinite)
+		return set->ulongs_count * HWLOC_BITS_PER_LONG;
+
 	return -1;
 }
 
-void hwloc_cpuset_singlify(struct hwloc_cpuset_s * set)
+void hwloc_bitmap_singlify(struct hwloc_bitmap_s * set)
 {
-	int i,found = 0;
+	unsigned i;
+	int found = 0;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++) {
+	for(i=0; i<set->ulongs_count; i++) {
 		if (found) {
-			HWLOC_CPUSUBSET_SUBSET(*set,i) = HWLOC_CPUSUBSET_ZERO;
+			set->ulongs[i] = HWLOC_SUBBITMAP_ZERO;
 			continue;
 		} else {
 			/* subsets are unsigned longs, use ffsl */
-			unsigned long w = HWLOC_CPUSUBSET_SUBSET(*set,i);
+			unsigned long w = set->ulongs[i];
 			if (w) {
 				int _ffs = hwloc_ffsl(w);
-				HWLOC_CPUSUBSET_SUBSET(*set,i) = HWLOC_CPUSUBSET_VAL(_ffs-1);
+				set->ulongs[i] = HWLOC_SUBBITMAP_CPU(_ffs-1);
 				found = 1;
 			}
 		}
 	}
+
+	if (set->infinite) {
+		if (found) {
+			set->infinite = 0;
+		} else {
+			/* set the first non allocated bit */
+			unsigned first = set->ulongs_count * HWLOC_BITS_PER_LONG;
+			set->infinite = 0; /* do not let realloc fill the newly allocated sets */
+			hwloc_bitmap_set(set, first);
+		}
+	}
 }
 
-int hwloc_cpuset_compare_first(const struct hwloc_cpuset_s * set1, const struct hwloc_cpuset_s * set2)
+int hwloc_bitmap_compare_first(const struct hwloc_bitmap_s * set1, const struct hwloc_bitmap_s * set2)
 {
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++) {
-		unsigned long w1 = HWLOC_CPUSUBSET_SUBSET(*set1,i);
-		unsigned long w2 = HWLOC_CPUSUBSET_SUBSET(*set2,i);
+	for(i=0; i<set1->ulongs_count || i<set2->ulongs_count; i++) {
+		unsigned long w1 = HWLOC_SUBBITMAP_READULONG(set1, i);
+		unsigned long w2 = HWLOC_SUBBITMAP_READULONG(set2, i);
 		if (w1 || w2) {
-			int _ffs1 = hwloc_ffsl(HWLOC_CPUSUBSET_SUBSET(*set1,i));
-			int _ffs2 = hwloc_ffsl(HWLOC_CPUSUBSET_SUBSET(*set2,i));
+			int _ffs1 = hwloc_ffsl(w1);
+			int _ffs2 = hwloc_ffsl(w2);
 			/* if both have a bit set, compare for real */
 			if (_ffs1 && _ffs2)
 				return _ffs1-_ffs2;
@@ -559,32 +958,142 @@
 			return _ffs2-_ffs1;
 		}
 	}
+	if ((!set1->infinite) != (!set2->infinite))
+		return !!set1->infinite - !!set2->infinite;
 	return 0;
 }
 
-int hwloc_cpuset_compare(const struct hwloc_cpuset_s * set1, const struct hwloc_cpuset_s * set2)
+int hwloc_bitmap_compare(const struct hwloc_bitmap_s * set1, const struct hwloc_bitmap_s * set2)
 {
+	const struct hwloc_bitmap_s *largest = set1->ulongs_count > set2->ulongs_count ? set1 : set2;
 	int i;
 
-	HWLOC__CPUSET_CHECK(set1);
-	HWLOC__CPUSET_CHECK(set2);
+	HWLOC__BITMAP_CHECK(set1);
+	HWLOC__BITMAP_CHECK(set2);
 
-	for(i=HWLOC_CPUSUBSET_COUNT-1; i>=0; i--) {
-		if (HWLOC_CPUSUBSET_SUBSET(*set1,i) == HWLOC_CPUSUBSET_SUBSET(*set2,i))
+	if ((!set1->infinite) != (!set2->infinite))
+		return !!set1->infinite - !!set2->infinite;
+
+	for(i=largest->ulongs_count-1; i>=0; i--) {
+		unsigned long val1 = HWLOC_SUBBITMAP_READULONG(set1, (unsigned) i);
+		unsigned long val2 = HWLOC_SUBBITMAP_READULONG(set2, (unsigned) i);
+		if (val1 == val2)
 			continue;
-		return HWLOC_CPUSUBSET_SUBSET(*set1,i) < HWLOC_CPUSUBSET_SUBSET(*set2,i) ? -1 : 1;
+		return val1 < val2 ? -1 : 1;
 	}
+
 	return 0;
 }
 
-int hwloc_cpuset_weight(const struct hwloc_cpuset_s * set)
+int hwloc_bitmap_weight(const struct hwloc_bitmap_s * set)
 {
 	int weight = 0;
-	int i;
+	unsigned i;
 
-	HWLOC__CPUSET_CHECK(set);
+	HWLOC__BITMAP_CHECK(set);
 
-	for(i=0; i<HWLOC_CPUSUBSET_COUNT; i++)
-		weight += hwloc_weight_long(HWLOC_CPUSUBSET_SUBSET(*set,i));
+	if (set->infinite)
+		return -1;
+
+	for(i=0; i<set->ulongs_count; i++)
+		weight += hwloc_weight_long(set->ulongs[i]);
 	return weight;
 }
+
+
+/********************************************************************
+ * everything below should be dropped when hwloc/cpuset.h is dropped
+ */
+
+/* for HWLOC_DECLSPEC */
+#include <hwloc/config.h>
+
+/* forward declarations (public headers do not export this API anymore) */
+HWLOC_DECLSPEC struct hwloc_bitmap_s * hwloc_cpuset_alloc(void);
+HWLOC_DECLSPEC void hwloc_cpuset_free(struct hwloc_bitmap_s * set);
+HWLOC_DECLSPEC struct hwloc_bitmap_s * hwloc_cpuset_dup(const struct hwloc_bitmap_s * old);
+HWLOC_DECLSPEC void hwloc_cpuset_copy(struct hwloc_bitmap_s * dst, const struct hwloc_bitmap_s * src);
+HWLOC_DECLSPEC int hwloc_cpuset_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_bitmap_s * __hwloc_restrict set);
+HWLOC_DECLSPEC int hwloc_cpuset_asprintf(char ** strp, const struct hwloc_bitmap_s * __hwloc_restrict set);
+HWLOC_DECLSPEC int hwloc_cpuset_from_string(struct hwloc_bitmap_s *set, const char * __hwloc_restrict string);
+HWLOC_DECLSPEC int hwloc_cpuset_taskset_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_bitmap_s * __hwloc_restrict set);
+HWLOC_DECLSPEC int hwloc_cpuset_taskset_asprintf(char ** strp, const struct hwloc_bitmap_s * __hwloc_restrict set);
+HWLOC_DECLSPEC int hwloc_cpuset_taskset_sscanf(struct hwloc_bitmap_s *set, const char * __hwloc_restrict string);
+HWLOC_DECLSPEC void hwloc_cpuset_zero(struct hwloc_bitmap_s * set);
+HWLOC_DECLSPEC void hwloc_cpuset_fill(struct hwloc_bitmap_s * set);
+HWLOC_DECLSPEC void hwloc_cpuset_from_ulong(struct hwloc_bitmap_s *set, unsigned long mask);
+HWLOC_DECLSPEC void hwloc_cpuset_from_ith_ulong(struct hwloc_bitmap_s *set, unsigned i, unsigned long mask);
+HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ulong(const struct hwloc_bitmap_s *set);
+HWLOC_DECLSPEC unsigned long hwloc_cpuset_to_ith_ulong(const struct hwloc_bitmap_s *set, unsigned i);
+HWLOC_DECLSPEC void hwloc_cpuset_cpu(struct hwloc_bitmap_s * set, unsigned cpu);
+HWLOC_DECLSPEC void hwloc_cpuset_all_but_cpu(struct hwloc_bitmap_s * set, unsigned cpu);
+HWLOC_DECLSPEC void hwloc_cpuset_set(struct hwloc_bitmap_s * set, unsigned cpu);
+HWLOC_DECLSPEC void hwloc_cpuset_set_range(struct hwloc_bitmap_s * set, unsigned begincpu, unsigned endcpu);
+HWLOC_DECLSPEC void hwloc_cpuset_set_ith_ulong(struct hwloc_bitmap_s *set, unsigned i, unsigned long mask);
+HWLOC_DECLSPEC void hwloc_cpuset_clr(struct hwloc_bitmap_s * set, unsigned cpu);
+HWLOC_DECLSPEC void hwloc_cpuset_clr_range(struct hwloc_bitmap_s * set, unsigned begincpu, unsigned endcpu);
+HWLOC_DECLSPEC int hwloc_cpuset_isset(const struct hwloc_bitmap_s * set, unsigned cpu);
+HWLOC_DECLSPEC int hwloc_cpuset_iszero(const struct hwloc_bitmap_s *set);
+HWLOC_DECLSPEC int hwloc_cpuset_isfull(const struct hwloc_bitmap_s *set);
+HWLOC_DECLSPEC int hwloc_cpuset_isequal(const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2);
+HWLOC_DECLSPEC int hwloc_cpuset_intersects(const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2);
+HWLOC_DECLSPEC int hwloc_cpuset_isincluded(const struct hwloc_bitmap_s *sub_set, const struct hwloc_bitmap_s *super_set);
+HWLOC_DECLSPEC void hwloc_cpuset_or(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2);
+HWLOC_DECLSPEC void hwloc_cpuset_and(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2);
+HWLOC_DECLSPEC void hwloc_cpuset_andnot(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2);
+HWLOC_DECLSPEC void hwloc_cpuset_xor(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2);
+HWLOC_DECLSPEC void hwloc_cpuset_not(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set);
+HWLOC_DECLSPEC int hwloc_cpuset_first(const struct hwloc_bitmap_s * set);
+HWLOC_DECLSPEC int hwloc_cpuset_last(const struct hwloc_bitmap_s * set);
+HWLOC_DECLSPEC int hwloc_cpuset_next(const struct hwloc_bitmap_s * set, unsigned prev_cpu);
+HWLOC_DECLSPEC void hwloc_cpuset_singlify(struct hwloc_bitmap_s * set);
+HWLOC_DECLSPEC int hwloc_cpuset_compare_first(const struct hwloc_bitmap_s * set1, const struct hwloc_bitmap_s * set2);
+HWLOC_DECLSPEC int hwloc_cpuset_compare(const struct hwloc_bitmap_s * set1, const struct hwloc_bitmap_s * set2);
+HWLOC_DECLSPEC int hwloc_cpuset_weight(const struct hwloc_bitmap_s * set);
+
+/* actual symbols converting from cpuset ABI into bitmap ABI */
+struct hwloc_bitmap_s * hwloc_cpuset_alloc(void) { return hwloc_bitmap_alloc(); }
+void hwloc_cpuset_free(struct hwloc_bitmap_s * set) { hwloc_bitmap_free(set); }
+struct hwloc_bitmap_s * hwloc_cpuset_dup(const struct hwloc_bitmap_s * old) { return hwloc_bitmap_dup(old); }
+void hwloc_cpuset_copy(struct hwloc_bitmap_s * dst, const struct hwloc_bitmap_s * src) { hwloc_bitmap_copy(dst, src); }
+int hwloc_cpuset_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_bitmap_s * __hwloc_restrict set) { return hwloc_bitmap_snprintf(buf, buflen, set); }
+int hwloc_cpuset_asprintf(char ** strp, const struct hwloc_bitmap_s * __hwloc_restrict set) { return hwloc_bitmap_asprintf(strp, set); }
+int hwloc_cpuset_from_string(struct hwloc_bitmap_s *set, const char * __hwloc_restrict string) { return hwloc_bitmap_sscanf(set, string); }
+int hwloc_cpuset_taskset_snprintf(char * __hwloc_restrict buf, size_t buflen, const struct hwloc_bitmap_s * __hwloc_restrict set) { return hwloc_bitmap_taskset_snprintf(buf, buflen, set); }
+int hwloc_cpuset_taskset_asprintf(char ** strp, const struct hwloc_bitmap_s * __hwloc_restrict set) { return hwloc_bitmap_taskset_asprintf(strp, set); }
+int hwloc_cpuset_taskset_sscanf(struct hwloc_bitmap_s *set, const char * __hwloc_restrict string) { return hwloc_bitmap_taskset_sscanf(set, string); }
+void hwloc_cpuset_zero(struct hwloc_bitmap_s * set) { hwloc_bitmap_zero(set); }
+void hwloc_cpuset_fill(struct hwloc_bitmap_s * set) { hwloc_bitmap_fill(set); }
+void hwloc_cpuset_from_ulong(struct hwloc_bitmap_s *set, unsigned long mask) { hwloc_bitmap_from_ulong(set, mask); }
+void hwloc_cpuset_from_ith_ulong(struct hwloc_bitmap_s *set, unsigned i, unsigned long mask) { hwloc_bitmap_from_ith_ulong(set, i, mask); }
+unsigned long hwloc_cpuset_to_ulong(const struct hwloc_bitmap_s *set) { return hwloc_bitmap_to_ulong(set); }
+unsigned long hwloc_cpuset_to_ith_ulong(const struct hwloc_bitmap_s *set, unsigned i) { return hwloc_bitmap_to_ith_ulong(set, i); }
+void hwloc_cpuset_cpu(struct hwloc_bitmap_s * set, unsigned cpu) { hwloc_bitmap_only(set, cpu); }
+void hwloc_cpuset_all_but_cpu(struct hwloc_bitmap_s * set, unsigned cpu) { hwloc_bitmap_allbut(set, cpu); }
+void hwloc_cpuset_set(struct hwloc_bitmap_s * set, unsigned cpu) { hwloc_bitmap_set(set, cpu); }
+void hwloc_cpuset_set_range(struct hwloc_bitmap_s * set, unsigned begincpu, unsigned endcpu) { hwloc_bitmap_set_range(set, begincpu, endcpu); }
+void hwloc_cpuset_set_ith_ulong(struct hwloc_bitmap_s *set, unsigned i, unsigned long mask) { hwloc_bitmap_set_ith_ulong(set, i, mask); }
+void hwloc_cpuset_clr(struct hwloc_bitmap_s * set, unsigned cpu) { hwloc_bitmap_clr(set, cpu); }
+void hwloc_cpuset_clr_range(struct hwloc_bitmap_s * set, unsigned begincpu, unsigned endcpu) { hwloc_bitmap_clr_range(set, begincpu, endcpu); }
+int hwloc_cpuset_isset(const struct hwloc_bitmap_s * set, unsigned cpu) { return hwloc_bitmap_isset(set, cpu); }
+int hwloc_cpuset_iszero(const struct hwloc_bitmap_s *set) { return hwloc_bitmap_iszero(set); }
+int hwloc_cpuset_isfull(const struct hwloc_bitmap_s *set) { return hwloc_bitmap_isfull(set); }
+int hwloc_cpuset_isequal(const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2) { return hwloc_bitmap_isequal(set1, set2); }
+int hwloc_cpuset_intersects(const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2) { return hwloc_bitmap_intersects(set1, set2); }
+int hwloc_cpuset_isincluded(const struct hwloc_bitmap_s *sub_set, const struct hwloc_bitmap_s *super_set) { return hwloc_bitmap_isincluded(sub_set, super_set); }
+void hwloc_cpuset_or(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2) { hwloc_bitmap_or(res, set1, set2); }
+void hwloc_cpuset_and(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2) { hwloc_bitmap_and(res, set1, set2); }
+void hwloc_cpuset_andnot(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2) { hwloc_bitmap_andnot(res, set1, set2); }
+void hwloc_cpuset_xor(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set1, const struct hwloc_bitmap_s *set2) { hwloc_bitmap_xor(res, set1, set2); }
+void hwloc_cpuset_not(struct hwloc_bitmap_s *res, const struct hwloc_bitmap_s *set) { hwloc_bitmap_not(res, set); }
+int hwloc_cpuset_first(const struct hwloc_bitmap_s * set) { return hwloc_bitmap_first(set); }
+int hwloc_cpuset_last(const struct hwloc_bitmap_s * set) { return hwloc_bitmap_last(set); }
+int hwloc_cpuset_next(const struct hwloc_bitmap_s * set, unsigned prev_cpu) { return hwloc_bitmap_next(set, prev_cpu); }
+void hwloc_cpuset_singlify(struct hwloc_bitmap_s * set) { hwloc_bitmap_singlify(set); }
+int hwloc_cpuset_compare_first(const struct hwloc_bitmap_s * set1, const struct hwloc_bitmap_s * set2) { return hwloc_bitmap_compare_first(set1, set2); }
+int hwloc_cpuset_compare(const struct hwloc_bitmap_s * set1, const struct hwloc_bitmap_s * set2) { return hwloc_bitmap_compare(set1, set2); }
+int hwloc_cpuset_weight(const struct hwloc_bitmap_s * set) { return hwloc_bitmap_weight(set); }
+
+/*
+ * end of everything to be dropped when hwloc/cpuset.h is dropped
+ *****************************************************************/

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/dolib.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/dolib.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/dolib.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/hwloc.dtd
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/hwloc.dtd	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/hwloc.dtd	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,15 +1,14 @@
 <!ELEMENT topology (object)+>
 <!ELEMENT root (object)+>
 
-<!ELEMENT object (page_type*,object*)>
+<!ELEMENT object (page_type*,info*,object*)>
 <!ATTLIST object type (System | Machine | Misc | Group | NUMANode | Socket| Cache | Core | PU) #REQUIRED>
 <!ATTLIST object os_level CDATA "-1" >
 <!ATTLIST object os_index CDATA "-1" >
 <!ATTLIST object name CDATA "" >
-<!ATTLIST object dmi_board_vendor CDATA "" >
-<!ATTLIST object dmi_board_name CDATA "" >
 <!ATTLIST object local_memory CDATA "0" >
 <!ATTLIST object cache_size CDATA "0" >
+<!ATTLIST object cache_linesize CDATA "0" >
 <!ATTLIST object huge_page_size_kB CDATA "0" >
 <!ATTLIST object huge_page_free CDATA "0" >
 <!ATTLIST object depth CDATA "-1" >
@@ -24,3 +23,7 @@
 <!ELEMENT page_type EMPTY>
 <!ATTLIST page_type size CDATA #REQUIRED>
 <!ATTLIST page_type count CDATA #REQUIRED>
+
+<!ELEMENT info EMPTY>
+<!ATTLIST info name CDATA #REQUIRED>
+<!ATTLIST info value CDATA #REQUIRED>

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/misc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/misc.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/misc.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -8,6 +10,9 @@
 #include <private/misc.h>
 
 #include <stdarg.h>
+#ifdef HAVE_SYS_UTSNAME_H
+#include <sys/utsname.h>
+#endif
 #include <stdlib.h>
 #include <stdio.h>
 #include <errno.h>
@@ -65,3 +70,19 @@
   }
   return i < n;
 }
+
+void hwloc_add_uname_info(struct hwloc_topology *topology __hwloc_attribute_unused)
+{
+#ifdef HAVE_UNAME
+  struct utsname utsname;
+
+  if (uname(&utsname) < 0)
+    return;
+
+  hwloc_add_object_info(topology->levels[0][0], "OSName", utsname.sysname);
+  hwloc_add_object_info(topology->levels[0][0], "OSRelease", utsname.release);
+  hwloc_add_object_info(topology->levels[0][0], "OSVersion", utsname.version);
+  hwloc_add_object_info(topology->levels[0][0], "HostName", utsname.nodename);
+  hwloc_add_object_info(topology->levels[0][0], "Architecture", utsname.machine);
+#endif /* HAVE_UNAME */
+}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-aix.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-aix.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-aix.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -23,74 +25,248 @@
 #include <sys/rset.h>
 #include <sys/processor.h>
 #include <sys/thread.h>
+#include <sys/mman.h>
 
 static int
-hwloc_aix_set_sth_cpubind(hwloc_topology_t topology, rstype_t what, rsid_t who, hwloc_const_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_aix_set_sth_cpubind(hwloc_topology_t topology, rstype_t what, rsid_t who, hwloc_const_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
-  rsethandle_t rset, rad;
-  hwloc_obj_t obj;
-  int res = -1;
+  rsethandle_t rad;
+  int res;
+  unsigned cpu;
 
+  if (flags & HWLOC_CPUBIND_NOMEMBIND) {
+    errno = ENOSYS;
+    return -1;
+  }
+
   /* The resulting binding is always strict */
 
-  if (hwloc_cpuset_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
+  if (hwloc_bitmap_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
     if (ra_detachrset(what, who, 0))
       return -1;
     return 0;
   }
 
-  obj = hwloc_get_first_largest_obj_inside_cpuset(topology, hwloc_set);
-  if (!hwloc_cpuset_isequal(obj->cpuset, hwloc_set) || obj->os_level == -1) {
-    /* Does not correspond to exactly one radset, not possible */
-    errno = EXDEV;
+  rad = rs_alloc(RS_EMPTY);
+  hwloc_bitmap_foreach_begin(cpu, hwloc_set)
+    rs_op(RS_ADDRESOURCE, rad, NULL, R_PROCS, cpu);
+  hwloc_bitmap_foreach_end();
+
+  res = ra_attachrset(what, who, rad, 0);
+
+  rs_free(rad);
+  return res;
+}
+
+static int
+hwloc_aix_get_sth_cpubind(hwloc_topology_t topology, rstype_t what, rsid_t who, hwloc_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
+{
+  rsethandle_t rset;
+  unsigned cpu, maxcpus;
+  int res = -1;
+
+  rset = rs_alloc(RS_EMPTY);
+
+  if (ra_getrset(what, who, 0, rset) == -1)
+    goto out;
+
+  hwloc_bitmap_zero(hwloc_set);
+  maxcpus = rs_getinfo(rset, R_MAXPROCS, 0);
+  for (cpu = 0; cpu < maxcpus; cpu++)
+    if (rs_op(RS_TESTRESOURCE, rset, NULL, R_PROCS, cpu) == 1)
+      hwloc_bitmap_set(hwloc_set, cpu);
+  hwloc_bitmap_and(hwloc_set, hwloc_set, hwloc_topology_get_complete_cpuset(topology));
+  res = 0;
+
+out:
+  rs_free(rset);
+  return res;
+}
+
+static int
+hwloc_aix_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
+{
+  rsid_t who = { .at_pid = getpid() };
+  return hwloc_aix_set_sth_cpubind(topology, R_PROCESS, who, hwloc_set, flags);
+}
+
+static int
+hwloc_aix_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, int flags)
+{
+  rsid_t who = { .at_pid = getpid() };
+  return hwloc_aix_get_sth_cpubind(topology, R_PROCESS, who, hwloc_set, flags);
+}
+
+static int
+hwloc_aix_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
+{
+  rsid_t who = { .at_tid = thread_self() };
+  return hwloc_aix_set_sth_cpubind(topology, R_THREAD, who, hwloc_set, flags);
+}
+
+static int
+hwloc_aix_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, int flags)
+{
+  rsid_t who = { .at_tid = thread_self() };
+  return hwloc_aix_get_sth_cpubind(topology, R_THREAD, who, hwloc_set, flags);
+}
+
+static int
+hwloc_aix_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t hwloc_set, int flags)
+{
+  rsid_t who = { .at_pid = pid };
+  return hwloc_aix_set_sth_cpubind(topology, R_PROCESS, who, hwloc_set, flags);
+}
+
+static int
+hwloc_aix_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t hwloc_set, int flags)
+{
+  rsid_t who = { .at_pid = pid };
+  return hwloc_aix_get_sth_cpubind(topology, R_PROCESS, who, hwloc_set, flags);
+}
+
+#ifdef HWLOC_HAVE_PTHREAD_GETTHRDS_NP
+static int
+hwloc_aix_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_const_bitmap_t hwloc_set, int flags)
+{
+  struct __pthrdsinfo info;
+  int size;
+  if ((errno = pthread_getthrds_np(&pthread, PTHRDSINFO_QUERY_TID, &info, sizeof(info), NULL, &size)))
     return -1;
+  {
+    rsid_t who = { .at_tid = info.__pi_tid };
+    return hwloc_aix_set_sth_cpubind(topology, R_THREAD, who, hwloc_set, flags);
   }
+}
 
+static int
+hwloc_aix_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_bitmap_t hwloc_set, int flags)
+{
+  struct __pthrdsinfo info;
+  int size;
+  if (pthread_getthrds_np(&pthread, PTHRDSINFO_QUERY_TID, &info, sizeof(info), NULL, &size))
+    return -1;
+  {
+    rsid_t who = { .at_tid = info.__pi_tid };
+    return hwloc_aix_get_sth_cpubind(topology, R_THREAD, who, hwloc_set, flags);
+  }
+}
+#endif /* HWLOC_HAVE_PTHREAD_GETTHRDS_NP */
+
+#ifdef P_DEFAULT
+
+static int
+hwloc_aix_membind_policy_from_hwloc(uint_t *aix_policy, int policy)
+{
+  switch (policy) {
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      *aix_policy = P_DEFAULT;
+      break;
+    case HWLOC_MEMBIND_FIRSTTOUCH:
+      *aix_policy = P_FIRST_TOUCH;
+      break;
+    case HWLOC_MEMBIND_INTERLEAVE:
+      *aix_policy = P_BALANCED;
+      break;
+    default:
+      errno = ENOSYS;
+      return -1;
+  }
+  return 0;
+}
+
+static int
+hwloc_aix_prepare_membind(hwloc_topology_t topology, rsethandle_t *rad, hwloc_const_nodeset_t nodeset, int flags __hwloc_attribute_unused)
+{
+  rsethandle_t rset, noderad;
+  int MCMlevel;
+  int node;
+
+  MCMlevel = rs_getinfo(NULL, R_MCMSDL, 0);
   if ((topology->flags & HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM))
     rset = rs_alloc(RS_ALL);
   else
     rset = rs_alloc(RS_PARTITION);
-  rad = rs_alloc(RS_EMPTY);
-  if (rs_getrad(rset, rad, obj->os_level, obj->os_index, 0)) {
-    fprintf(stderr,"rs_getrad(%d,%u) failed: %s\n", obj->os_level, obj->os_index, strerror(errno));
-    goto out;
-  }
+  *rad = rs_alloc(RS_EMPTY);
+  noderad = rs_alloc(RS_EMPTY);
 
-  /* TODO: memory binding and policy (P_DEFAULT / P_FIRST_TOUCH / P_BALANCED)
-   * ra_mmap to allocation on an rset
-   */
+  hwloc_bitmap_foreach_begin(node, nodeset)
+    rs_getrad(rset, noderad, MCMlevel, node, 0);
+    rs_op(RS_UNION, noderad, *rad, 0, 0);
+  hwloc_bitmap_foreach_end();
 
-  if (ra_attachrset(what, who, rad, 0)) {
-    res = -1;
-    goto out;
+  rs_free(rset);
+  rs_free(noderad);
+
+  return 0;
+}
+
+static int
+hwloc_aix_set_sth_membind(hwloc_topology_t topology, rstype_t what, rsid_t who, hwloc_const_bitmap_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  rsethandle_t rad;
+  int res;
+
+  if (flags & HWLOC_MEMBIND_NOCPUBIND) {
+    errno = ENOSYS;
+    return -1;
   }
 
-  res = 0;
+  switch (policy) {
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      break;
+    default:
+      errno = ENOSYS;
+      return -1;
+  }
 
-out:
-  rs_free(rset);
+  if (hwloc_aix_prepare_membind(topology, &rad, nodeset, flags))
+    return -1;
+
+  res = ra_attachrset(what, who, rad, 0);
+
   rs_free(rad);
   return res;
 }
 
 static int
-hwloc_aix_get_sth_cpubind(hwloc_topology_t topology, rstype_t what, rsid_t who, hwloc_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_aix_get_sth_membind(hwloc_topology_t topology, rstype_t what, rsid_t who, hwloc_bitmap_t nodeset, hwloc_membind_policy_t *policy, int flags __hwloc_attribute_unused)
 {
+  hwloc_bitmap_t hwloc_set;
   rsethandle_t rset;
   unsigned cpu, maxcpus;
   int res = -1;
+  int depth, n, i;
 
+  depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  if (depth < 0) {
+    errno = EXDEV;
+    return -1;
+  }
+  n = hwloc_get_nbobjs_by_depth(topology, depth);
+
   rset = rs_alloc(RS_EMPTY);
 
   if (ra_getrset(what, who, 0, rset) == -1)
     goto out;
 
-  hwloc_cpuset_zero(hwloc_set);
+  hwloc_set = hwloc_bitmap_alloc();
   maxcpus = rs_getinfo(rset, R_MAXPROCS, 0);
   for (cpu = 0; cpu < maxcpus; cpu++)
     if (rs_op(RS_TESTRESOURCE, rset, NULL, R_PROCS, cpu) == 1)
-      hwloc_cpuset_set(hwloc_set, cpu);
-  hwloc_cpuset_and(hwloc_set, hwloc_set, hwloc_topology_get_complete_cpuset(topology));
+      hwloc_bitmap_set(hwloc_set, cpu);
+  hwloc_bitmap_and(hwloc_set, hwloc_set, hwloc_topology_get_complete_cpuset(topology));
+
+  hwloc_bitmap_zero(nodeset);
+  for (i = 0; i < n; i++) {
+    hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+    if (hwloc_bitmap_isincluded(obj->cpuset, hwloc_set))
+      hwloc_bitmap_set(nodeset, obj->os_index);
+  }
+
+  *policy = HWLOC_MEMBIND_DEFAULT;
   res = 0;
 
 out:
@@ -99,50 +275,50 @@
 }
 
 static int
-hwloc_aix_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_aix_set_thisproc_membind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, hwloc_membind_policy_t policy, int flags)
 {
   rsid_t who = { .at_pid = getpid() };
-  return hwloc_aix_set_sth_cpubind(topology, R_PROCESS, who, hwloc_set, policy);
+  return hwloc_aix_set_sth_membind(topology, R_PROCESS, who, hwloc_set, policy, flags);
 }
 
 static int
-hwloc_aix_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_aix_get_thisproc_membind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, hwloc_membind_policy_t *policy, int flags)
 {
   rsid_t who = { .at_pid = getpid() };
-  return hwloc_aix_get_sth_cpubind(topology, R_PROCESS, who, hwloc_set, policy);
+  return hwloc_aix_get_sth_membind(topology, R_PROCESS, who, hwloc_set, policy, flags);
 }
 
 static int
-hwloc_aix_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_aix_set_thisthread_membind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, hwloc_membind_policy_t policy, int flags)
 {
   rsid_t who = { .at_tid = thread_self() };
-  return hwloc_aix_set_sth_cpubind(topology, R_THREAD, who, hwloc_set, policy);
+  return hwloc_aix_set_sth_membind(topology, R_THREAD, who, hwloc_set, policy, flags);
 }
 
 static int
-hwloc_aix_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_aix_get_thisthread_membind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, hwloc_membind_policy_t *policy, int flags)
 {
   rsid_t who = { .at_tid = thread_self() };
-  return hwloc_aix_get_sth_cpubind(topology, R_THREAD, who, hwloc_set, policy);
+  return hwloc_aix_get_sth_membind(topology, R_THREAD, who, hwloc_set, policy, flags);
 }
 
 static int
-hwloc_aix_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_aix_set_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t hwloc_set, hwloc_membind_policy_t policy, int flags)
 {
   rsid_t who = { .at_pid = pid };
-  return hwloc_aix_set_sth_cpubind(topology, R_PROCESS, who, hwloc_set, policy);
+  return hwloc_aix_set_sth_membind(topology, R_PROCESS, who, hwloc_set, policy, flags);
 }
 
 static int
-hwloc_aix_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_aix_get_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t hwloc_set, hwloc_membind_policy_t *policy, int flags)
 {
   rsid_t who = { .at_pid = pid };
-  return hwloc_aix_get_sth_cpubind(topology, R_PROCESS, who, hwloc_set, policy);
+  return hwloc_aix_get_sth_membind(topology, R_PROCESS, who, hwloc_set, policy, flags);
 }
 
-#ifdef HWLOC_HAVE_PTHREAD_GETTHRDS_NP
+#if 0 /* def HWLOC_HAVE_PTHREAD_GETTHRDS_NP */
 static int
-hwloc_aix_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_aix_set_thread_membind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_const_bitmap_t hwloc_set, hwloc_membind_policy_t policy, int flags)
 {
   struct __pthrdsinfo info;
   int size;
@@ -150,12 +326,12 @@
     return -1;
   {
     rsid_t who = { .at_tid = info.__pi_tid };
-    return hwloc_aix_set_sth_cpubind(topology, R_THREAD, who, hwloc_set, policy);
+    return hwloc_aix_set_sth_membind(topology, R_THREAD, who, hwloc_set, policy, flags);
   }
 }
 
 static int
-hwloc_aix_get_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_aix_get_thread_membind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_bitmap_t hwloc_set, hwloc_membind_policy_t *policy, int flags)
 {
   struct __pthrdsinfo info;
   int size;
@@ -163,11 +339,72 @@
     return -1;
   {
     rsid_t who = { .at_tid = info.__pi_tid };
-    return hwloc_aix_get_sth_cpubind(topology, R_THREAD, who, hwloc_set, policy);
+    return hwloc_aix_get_sth_membind(topology, R_THREAD, who, hwloc_set, policy, flags);
   }
 }
 #endif /* HWLOC_HAVE_PTHREAD_GETTHRDS_NP */
 
+#if 0
+/* TODO: seems to be right, but doesn't seem to be working (EINVAL), even after
+ * aligning the range on 64K... */
+static int
+hwloc_aix_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  subrange_t subrange;
+  rsid_t rsid = { .at_subrange = &subrange };
+  uint_t aix_policy;
+  int ret;
+  fprintf(stderr,"yop\n");
+
+  if ((flags & (HWLOC_MEMBIND_MIGRATE|HWLOC_MEMBIND_STRICT))
+            == (HWLOC_MEMBIND_MIGRATE|HWLOC_MEMBIND_STRICT)) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  subrange.su_offset = (uintptr_t) addr;
+  subrange.su_length = len;
+  subrange.su_rstype = R_RSET;
+
+  if (hwloc_aix_membind_policy_from_hwloc(&aix_policy, policy))
+    return -1;
+
+  if (hwloc_aix_prepare_membind(topology, &subrange.su_rsid.at_rset, nodeset, flags))
+    return -1;
+
+  subrange.su_policy = aix_policy;
+
+  ret = ra_attachrset(R_SUBRANGE, rsid, subrange.su_rsid.at_rset, 0);
+  rs_free(subrange.su_rsid.at_rset);
+  return ret;
+}
+#endif
+
+static void *
+hwloc_aix_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  void *ret;
+  rsid_t rsid;
+  uint_t aix_policy;
+
+  if (hwloc_aix_membind_policy_from_hwloc(&aix_policy, policy))
+    return hwloc_alloc_or_fail(topology, len, flags);
+
+  if (hwloc_aix_prepare_membind(topology, &rsid.at_rset, nodeset, flags))
+    return hwloc_alloc_or_fail(topology, len, flags);
+
+  ret = ra_mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0, R_RSET, rsid, aix_policy);
+
+  rs_free(rsid.at_rset);
+  return ret;
+}
+
+static int
+hwloc_aix_free_membind(hwloc_topology_t topology __hwloc_attribute_unused, void *addr, size_t len) {
+  return munmap(addr, len);
+}
+#endif /* P_DEFAULT */
+
 static void
 look_rset(int sdl, hwloc_obj_type_t type, struct hwloc_topology *topology, int level)
 {
@@ -198,12 +435,12 @@
     /* It seems logical processors are numbered from 1 here, while the
      * bindprocessor functions numbers them from 0... */
     obj = hwloc_alloc_setup_object(type, i - (type == HWLOC_OBJ_PU));
-    obj->cpuset = hwloc_cpuset_alloc();
+    obj->cpuset = hwloc_bitmap_alloc();
     obj->os_level = sdl;
     switch(type) {
       case HWLOC_OBJ_NODE:
-	obj->nodeset = hwloc_cpuset_alloc();
-	hwloc_cpuset_set(obj->nodeset, i);
+	obj->nodeset = hwloc_bitmap_alloc();
+	hwloc_bitmap_set(obj->nodeset, i);
 	obj->memory.local_memory = 0; /* TODO: odd, rs_getinfo(rad, R_MEMSIZE, 0) << 10 returns the total memory ... */
 	obj->memory.page_types_len = 2;
 	obj->memory.page_types = malloc(2*sizeof(*obj->memory.page_types));
@@ -216,6 +453,7 @@
 	break;
       case HWLOC_OBJ_CACHE:
 	obj->attr->cache.size = 0; /* TODO: ? */
+	obj->attr->cache.linesize = 0; /* TODO: ? */
 	obj->attr->cache.depth = 2;
 	break;
       case HWLOC_OBJ_GROUP:
@@ -226,9 +464,9 @@
     maxcpus = rs_getinfo(rad, R_MAXPROCS, 0);
     for (j = 0; j < maxcpus; j++) {
       if (rs_op(RS_TESTRESOURCE, rad, NULL, R_PROCS, j))
-	hwloc_cpuset_set(obj->cpuset, j);
+	hwloc_bitmap_set(obj->cpuset, j);
     }
-    hwloc_debug_2args_cpuset("%s %d has cpuset %s\n",
+    hwloc_debug_2args_bitmap("%s %d has cpuset %s\n",
 	       hwloc_obj_type_string(type),
 	       i, obj->cpuset);
     hwloc_insert_object_by_cpuset(topology, obj);
@@ -296,6 +534,8 @@
 	  look_rset(i, HWLOC_OBJ_GROUP, topology, i);
 	}
     }
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "AIX");
 }
 
 void
@@ -311,4 +551,25 @@
   topology->get_thisproc_cpubind = hwloc_aix_get_thisproc_cpubind;
   topology->set_thisthread_cpubind = hwloc_aix_set_thisthread_cpubind;
   topology->get_thisthread_cpubind = hwloc_aix_get_thisthread_cpubind;
+#ifdef P_DEFAULT
+  topology->set_proc_membind = hwloc_aix_set_proc_membind;
+  topology->get_proc_membind = hwloc_aix_get_proc_membind;
+#if 0 /* def HWLOC_HAVE_PTHREAD_GETTHRDS_NP */
+  /* Does it really make sense to set the memory binding of another thread? */
+  topology->set_thread_membind = hwloc_aix_set_thread_membind;
+  topology->get_thread_membind = hwloc_aix_get_thread_membind;
+#endif /* HWLOC_HAVE_PTHREAD_GETTHRDS_NP */
+  topology->set_thisproc_membind = hwloc_aix_set_thisproc_membind;
+  topology->get_thisproc_membind = hwloc_aix_get_thisproc_membind;
+  topology->set_thisthread_membind = hwloc_aix_set_thisthread_membind;
+  topology->get_thisthread_membind = hwloc_aix_get_thisthread_membind;
+  //topology->set_area_membind = hwloc_aix_set_area_membind;
+  /* get_area_membind is not available */
+  topology->alloc_membind = hwloc_aix_alloc_membind;
+  topology->alloc = hwloc_alloc_mmap;
+  topology->free_membind = hwloc_aix_free_membind;
+  topology->support.membind->firsttouch_membind = 1;
+  topology->support.membind->bind_membind = 1;
+  topology->support.membind->interleave_membind = 1;
+#endif /* P_DEFAULT */
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-darwin.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-darwin.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-darwin.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -31,6 +33,7 @@
   size_t size;
   int64_t l1cachesize;
   int64_t l2cachesize;
+  int64_t cachelinesize;
   int64_t memsize;
 
   if (hwloc_get_sysctlbyname("hw.ncpu", &_nprocs) || _nprocs <= 0)
@@ -60,11 +63,11 @@
     if (nprocs == npackages * logical_per_package)
       for (i = 0; i < npackages; i++) {
         obj = hwloc_alloc_setup_object(HWLOC_OBJ_SOCKET, i);
-        obj->cpuset = hwloc_cpuset_alloc();
+        obj->cpuset = hwloc_bitmap_alloc();
         for (cpu = i*logical_per_package; cpu < (i+1)*logical_per_package; cpu++)
-          hwloc_cpuset_set(obj->cpuset, cpu);
+          hwloc_bitmap_set(obj->cpuset, cpu);
 
-        hwloc_debug_1arg_cpuset("package %u has cpuset %s\n",
+        hwloc_debug_1arg_bitmap("package %u has cpuset %s\n",
                    i, obj->cpuset);
         hwloc_insert_object_by_cpuset(topology, obj);
       }
@@ -76,13 +79,13 @@
       if (!(logical_per_package % cores_per_package))
         for (i = 0; i < npackages * cores_per_package; i++) {
           obj = hwloc_alloc_setup_object(HWLOC_OBJ_CORE, i);
-          obj->cpuset = hwloc_cpuset_alloc();
+          obj->cpuset = hwloc_bitmap_alloc();
           for (cpu = i*(logical_per_package/cores_per_package);
                cpu < (i+1)*(logical_per_package/cores_per_package);
                cpu++)
-            hwloc_cpuset_set(obj->cpuset, cpu);
+            hwloc_bitmap_set(obj->cpuset, cpu);
 
-          hwloc_debug_1arg_cpuset("core %u has cpuset %s\n",
+          hwloc_debug_1arg_bitmap("core %u has cpuset %s\n",
                      i, obj->cpuset);
           hwloc_insert_object_by_cpuset(topology, obj);
         }
@@ -95,6 +98,9 @@
   if (hwloc_get_sysctlbyname("hw.l2cachesize", &l2cachesize))
     l2cachesize = 0;
 
+  if (hwloc_get_sysctlbyname("hw.cachelinesize", &cachelinesize))
+    cachelinesize = 0;
+
   if (hwloc_get_sysctlbyname("hw.memsize", &memsize))
     memsize = 0;
 
@@ -140,22 +146,23 @@
         for (j = 0; j < (nprocs / cacheconfig[i]); j++) {
           obj = hwloc_alloc_setup_object(i?HWLOC_OBJ_CACHE:HWLOC_OBJ_NODE, j);
           if (!i) {
-            obj->nodeset = hwloc_cpuset_alloc();
-            hwloc_cpuset_set(obj->nodeset, j);
+            obj->nodeset = hwloc_bitmap_alloc();
+            hwloc_bitmap_set(obj->nodeset, j);
           }
-          obj->cpuset = hwloc_cpuset_alloc();
+          obj->cpuset = hwloc_bitmap_alloc();
           for (cpu = j*cacheconfig[i];
                cpu < ((j+1)*cacheconfig[i]);
                cpu++)
-            hwloc_cpuset_set(obj->cpuset, cpu);
+            hwloc_bitmap_set(obj->cpuset, cpu);
 
           if (i) {
-            hwloc_debug_2args_cpuset("L%ucache %u has cpuset %s\n",
+            hwloc_debug_2args_bitmap("L%ucache %u has cpuset %s\n",
                 i, j, obj->cpuset);
             obj->attr->cache.depth = i;
             obj->attr->cache.size = cachesize[i];
+            obj->attr->cache.linesize = cachelinesize;
           } else {
-            hwloc_debug_1arg_cpuset("node %u has cpuset %s\n",
+            hwloc_debug_1arg_bitmap("node %u has cpuset %s\n",
                 j, obj->cpuset);
 	    obj->memory.local_memory = cachesize[i];
 	    obj->memory.page_types_len = 2;
@@ -175,6 +182,8 @@
 
   /* add PU objects */
   hwloc_setup_pu_level(topology, nprocs);
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "Darwin");
 }
 
 void

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-freebsd.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-freebsd.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-freebsd.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -23,27 +25,27 @@
 
 #ifdef HAVE_SYS_CPUSET_H
 static void
-hwloc_freebsd_bsd2hwloc(hwloc_cpuset_t hwloc_cpuset, const cpuset_t *cpuset)
+hwloc_freebsd_bsd2hwloc(hwloc_bitmap_t hwloc_cpuset, const cpuset_t *cpuset)
 {
   unsigned cpu;
-  hwloc_cpuset_zero(hwloc_cpuset);
-  for (cpu = 0; cpu < HWLOC_NBMAXCPUS && cpu < CPU_SETSIZE; cpu++)
+  hwloc_bitmap_zero(hwloc_cpuset);
+  for (cpu = 0; cpu < CPU_SETSIZE; cpu++)
     if (CPU_ISSET(cpu, cpuset))
-      hwloc_cpuset_set(hwloc_cpuset, cpu);
+      hwloc_bitmap_set(hwloc_cpuset, cpu);
 }
 
 static void
-hwloc_freebsd_hwloc2bsd(hwloc_const_cpuset_t hwloc_cpuset, cpuset_t *cpuset)
+hwloc_freebsd_hwloc2bsd(hwloc_const_bitmap_t hwloc_cpuset, cpuset_t *cpuset)
 {
   unsigned cpu;
   CPU_ZERO(cpuset);
-  for (cpu = 0; cpu < HWLOC_NBMAXCPUS && cpu < CPU_SETSIZE; cpu++)
-    if (hwloc_cpuset_isset(hwloc_cpuset, cpu))
+  for (cpu = 0; cpu < CPU_SETSIZE; cpu++)
+    if (hwloc_bitmap_isset(hwloc_cpuset, cpu))
       CPU_SET(cpu, cpuset);
 }
 
 static int
-hwloc_freebsd_set_sth_affinity(hwloc_topology_t topology __hwloc_attribute_unused, cpulevel_t level, cpuwhich_t which, id_t id, hwloc_const_cpuset_t hwloc_cpuset, int policy __hwloc_attribute_unused)
+hwloc_freebsd_set_sth_affinity(hwloc_topology_t topology __hwloc_attribute_unused, cpulevel_t level, cpuwhich_t which, id_t id, hwloc_const_bitmap_t hwloc_cpuset, int flags __hwloc_attribute_unused)
 {
   cpuset_t cpuset;
 
@@ -56,7 +58,7 @@
 }
 
 static int
-hwloc_freebsd_get_sth_affinity(hwloc_topology_t topology __hwloc_attribute_unused, cpulevel_t level, cpuwhich_t which, id_t id, hwloc_cpuset_t hwloc_cpuset, int policy __hwloc_attribute_unused)
+hwloc_freebsd_get_sth_affinity(hwloc_topology_t topology __hwloc_attribute_unused, cpulevel_t level, cpuwhich_t which, id_t id, hwloc_bitmap_t hwloc_cpuset, int flags __hwloc_attribute_unused)
 {
   cpuset_t cpuset;
 
@@ -68,39 +70,39 @@
 }
 
 static int
-hwloc_freebsd_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_cpuset, int policy)
+hwloc_freebsd_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_freebsd_set_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, hwloc_cpuset, policy);
+  return hwloc_freebsd_set_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, hwloc_cpuset, flags);
 }
 
 static int
-hwloc_freebsd_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_cpuset, int policy)
+hwloc_freebsd_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_freebsd_get_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, hwloc_cpuset, policy);
+  return hwloc_freebsd_get_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, -1, hwloc_cpuset, flags);
 }
 
 static int
-hwloc_freebsd_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_cpuset, int policy)
+hwloc_freebsd_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_freebsd_set_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, hwloc_cpuset, policy);
+  return hwloc_freebsd_set_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, hwloc_cpuset, flags);
 }
 
 static int
-hwloc_freebsd_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_cpuset, int policy)
+hwloc_freebsd_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_freebsd_get_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, hwloc_cpuset, policy);
+  return hwloc_freebsd_get_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_TID, -1, hwloc_cpuset, flags);
 }
 
 static int
-hwloc_freebsd_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t hwloc_cpuset, int policy)
+hwloc_freebsd_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_freebsd_set_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, pid, hwloc_cpuset, policy);
+  return hwloc_freebsd_set_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, pid, hwloc_cpuset, flags);
 }
 
 static int
-hwloc_freebsd_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_cpuset_t hwloc_cpuset, int policy)
+hwloc_freebsd_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_freebsd_get_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, pid, hwloc_cpuset, policy);
+  return hwloc_freebsd_get_sth_affinity(topology, CPU_LEVEL_WHICH, CPU_WHICH_PID, pid, hwloc_cpuset, flags);
 }
 
 #ifdef hwloc_thread_t
@@ -108,7 +110,7 @@
 #if HAVE_DECL_PTHREAD_SETAFFINITY_NP
 #pragma weak pthread_setaffinity_np
 static int
-hwloc_freebsd_set_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid, hwloc_const_cpuset_t hwloc_cpuset, int policy __hwloc_attribute_unused)
+hwloc_freebsd_set_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid, hwloc_const_bitmap_t hwloc_cpuset, int flags __hwloc_attribute_unused)
 {
   int err;
   cpuset_t cpuset;
@@ -134,7 +136,7 @@
 #if HAVE_DECL_PTHREAD_GETAFFINITY_NP
 #pragma weak pthread_getaffinity_np
 static int
-hwloc_freebsd_get_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid, hwloc_cpuset_t hwloc_cpuset, int policy __hwloc_attribute_unused)
+hwloc_freebsd_get_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid, hwloc_bitmap_t hwloc_cpuset, int flags __hwloc_attribute_unused)
 {
   int err;
   cpuset_t cpuset;
@@ -171,6 +173,8 @@
   hwloc_look_x86(topology, nbprocs);
 
   hwloc_setup_pu_level(topology, nbprocs);
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "FreeBSD");
 }
 
 void

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-hpux.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-hpux.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-hpux.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,13 +1,11 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
-/* TODO: memory:
- * mmap/shmget: +MAP/IPC_MEM_INTERLEAVED, MAP/IPC_MEM_LOCAL,
-   MAP_IPC/MEM_FIRST_TOUCH */
-
-/* TODO: psets?
+/* TODO: psets? (Only for root)
  * since 11i 1.6:
    _SC_PSET_SUPPORT
    pset_create/destroy/assign/setattr
@@ -29,10 +27,11 @@
 #include <private/debug.h>
 
 #include <sys/mpctl.h>
+#include <sys/mman.h>
 #include <pthread.h>
 
 static ldom_t
-hwloc_hpux_find_ldom(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set)
+hwloc_hpux_find_ldom(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set)
 {
   int has_numa = sysconf(_SC_CCNUMA_SUPPORT) == 1;
   hwloc_obj_t obj;
@@ -41,7 +40,7 @@
     return -1;
 
   obj = hwloc_get_first_largest_obj_inside_cpuset(topology, hwloc_set);
-  if (!hwloc_cpuset_isequal(obj->cpuset, hwloc_set) || obj->type != HWLOC_OBJ_NODE) {
+  if (!hwloc_bitmap_isequal(obj->cpuset, hwloc_set) || obj->type != HWLOC_OBJ_NODE) {
     /* Does not correspond to exactly one node */
     return -1;
   }
@@ -50,19 +49,19 @@
 }
 
 static spu_t
-hwloc_hpux_find_spu(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t hwloc_set)
+hwloc_hpux_find_spu(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_bitmap_t hwloc_set)
 {
   spu_t cpu;
 
-  cpu = hwloc_cpuset_first(hwloc_set);
-  if (cpu != -1 && hwloc_cpuset_weight(hwloc_set) == 1)
+  cpu = hwloc_bitmap_first(hwloc_set);
+  if (cpu != -1 && hwloc_bitmap_weight(hwloc_set) == 1)
     return cpu;
   return -1;
 }
 
 /* Note: get_cpubind not available on HP-UX */
 static int
-hwloc_hpux_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_hpux_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   ldom_t ldom;
   spu_t cpu;
@@ -71,7 +70,7 @@
   mpctl(MPC_SETLDOM, MPC_LDOMFLOAT, pid);
   mpctl(MPC_SETPROCESS, MPC_SPUFLOAT, pid);
 
-  if (hwloc_cpuset_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology)))
+  if (hwloc_bitmap_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology)))
     return 0;
 
   ldom = hwloc_hpux_find_ldom(topology, hwloc_set);
@@ -80,21 +79,21 @@
 
   cpu = hwloc_hpux_find_spu(topology, hwloc_set);
   if (cpu != -1)
-    return mpctl(policy & HWLOC_CPUBIND_STRICT ? MPC_SETPROCESS_FORCE : MPC_SETPROCESS, cpu, pid);
+    return mpctl(flags & HWLOC_CPUBIND_STRICT ? MPC_SETPROCESS_FORCE : MPC_SETPROCESS, cpu, pid);
 
   errno = EXDEV;
   return -1;
 }
 
 static int
-hwloc_hpux_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_hpux_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_hpux_set_proc_cpubind(topology, MPC_SELFPID, hwloc_set, policy);
+  return hwloc_hpux_set_proc_cpubind(topology, MPC_SELFPID, hwloc_set, flags);
 }
 
 #ifdef hwloc_thread_t
 static int
-hwloc_hpux_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_hpux_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t pthread, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   ldom_t ldom, ldom2;
   spu_t cpu, cpu2;
@@ -103,7 +102,7 @@
   pthread_ldom_bind_np(&ldom2, PTHREAD_LDOMFLOAT_NP, pthread);
   pthread_processor_bind_np(PTHREAD_BIND_ADVISORY_NP, &cpu2, PTHREAD_SPUFLOAT_NP, pthread);
 
-  if (hwloc_cpuset_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology)))
+  if (hwloc_bitmap_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology)))
     return 0;
 
   ldom = hwloc_hpux_find_ldom(topology, hwloc_set);
@@ -112,19 +111,59 @@
 
   cpu = hwloc_hpux_find_spu(topology, hwloc_set);
   if (cpu != -1)
-    return pthread_processor_bind_np(policy & HWLOC_CPUBIND_STRICT ? PTHREAD_BIND_FORCED_NP : PTHREAD_BIND_ADVISORY_NP, &cpu2, cpu, pthread);
+    return pthread_processor_bind_np(flags & HWLOC_CPUBIND_STRICT ? PTHREAD_BIND_FORCED_NP : PTHREAD_BIND_ADVISORY_NP, &cpu2, cpu, pthread);
 
   errno = EXDEV;
   return -1;
 }
 
 static int
-hwloc_hpux_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_hpux_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_hpux_set_thread_cpubind(topology, PTHREAD_SELFTID_NP, hwloc_set, policy);
+  return hwloc_hpux_set_thread_cpubind(topology, PTHREAD_SELFTID_NP, hwloc_set, flags);
 }
 #endif
 
+/* According to HP docs, HP-UX up to 11iv2 don't support migration */
+
+#ifdef MAP_MEM_FIRST_TOUCH
+static void*
+hwloc_hpux_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  int mmap_flags;
+
+  /* Can not give a set of nodes.  */
+  if (!hwloc_bitmap_isequal(nodeset, hwloc_topology_get_complete_nodeset(topology))) {
+    errno = EXDEV;
+    return hwloc_alloc_or_fail(topology, len, flags);
+  }
+
+  switch (policy) {
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      mmap_flags = 0;
+      break;
+    case HWLOC_MEMBIND_FIRSTTOUCH:
+      mmap_flags = MAP_MEM_FIRST_TOUCH;
+      break;
+    case HWLOC_MEMBIND_INTERLEAVE:
+      mmap_flags = MAP_MEM_INTERLEAVED;
+      break;
+    default:
+      errno = ENOSYS;
+      return NULL;
+  }
+
+  return mmap(NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS | mmap_flags, -1, 0);
+}
+
+static int
+hwloc_hpux_free_membind(hwloc_topology_t topology, void *addr, size_t len)
+{
+  return munmap(addr, len);
+}
+#endif /* MAP_MEM_FIRST_TOUCH */
+
 void
 hwloc_look_hpux(struct hwloc_topology *topology)
 {
@@ -152,9 +191,9 @@
     while (currentnode != -1 && i < nbnodes) {
       hwloc_debug("node %d is %d\n", i, currentnode);
       nodes[i] = obj = hwloc_alloc_setup_object(HWLOC_OBJ_NODE, currentnode);
-      obj->cpuset = hwloc_cpuset_alloc();
-      obj->nodeset = hwloc_cpuset_alloc();
-      hwloc_cpuset_set(obj->nodeset, currentnode);
+      obj->cpuset = hwloc_bitmap_alloc();
+      obj->nodeset = hwloc_bitmap_alloc();
+      hwloc_bitmap_set(obj->nodeset, currentnode);
       /* TODO: obj->attr->node.memory_kB */
       /* TODO: obj->attr->node.huge_page_free */
 
@@ -169,8 +208,8 @@
       MPC_GETFIRSTSPU_SYS : MPC_GETFIRSTSPU, 0,0);
   while (currentcpu != -1) {
     obj = hwloc_alloc_setup_object(HWLOC_OBJ_PU, currentcpu);
-    obj->cpuset = hwloc_cpuset_alloc();
-    hwloc_cpuset_set(obj->cpuset, currentcpu);
+    obj->cpuset = hwloc_bitmap_alloc();
+    hwloc_bitmap_set(obj->cpuset, currentcpu);
 
     hwloc_debug("cpu %d\n", currentcpu);
 
@@ -182,7 +221,7 @@
           if ((ldom_t) nodes[i]->os_index == currentnode)
             break;
       if (i < nbnodes) {
-        hwloc_cpuset_set(nodes[i]->cpuset, currentcpu);
+        hwloc_bitmap_set(nodes[i]->cpuset, currentcpu);
         hwloc_debug("is in node %d\n", i);
       } else {
         hwloc_debug("%s", "is in no node?!\n");
@@ -204,6 +243,8 @@
   }
 
   topology->support.discovery->pu = 1;
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "HP-UX");
 }
 
 void
@@ -215,4 +256,12 @@
   topology->set_thread_cpubind = hwloc_hpux_set_thread_cpubind;
   topology->set_thisthread_cpubind = hwloc_hpux_set_thisthread_cpubind;
 #endif
+#ifdef MAP_MEM_FIRST_TOUCH
+  topology->alloc_membind = hwloc_hpux_alloc_membind;
+  topology->alloc = hwloc_alloc_mmap;
+  topology->free_membind = hwloc_hpux_free_membind;
+  topology->support.membind->firsttouch_membind = 1;
+  topology->support.membind->bind_membind = 1;
+  topology->support.membind->interleave_membind = 1;
+#endif /* MAP_MEM_FIRST_TOUCH */
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-linux.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,13 +1,18 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2010 IBM
  * See COPYING in top-level directory.
  */
 
 #include <private/config.h>
 #include <hwloc.h>
 #include <hwloc/linux.h>
+#include <private/misc.h>
 #include <private/private.h>
+#include <private/misc.h>
 #include <private/debug.h>
 
 #include <limits.h>
@@ -21,8 +26,12 @@
 #include <sys/stat.h>
 #include <sched.h>
 #include <pthread.h>
+#include <sys/mman.h>
+#if defined HWLOC_HAVE_SET_MEMPOLICY || defined HWLOC_HAVE_MBIND
+#include <numaif.h>
+#endif
 
-#if !defined(HWLOC_HAVE_CPU_SET) && !defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)
+#if !defined(HWLOC_HAVE_CPU_SET) && !(defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)) && defined(HWLOC_HAVE__SYSCALL3)
 /* libc doesn't have support for sched_setaffinity, build system call
  * ourselves: */
 #    include <linux/unistd.h>
@@ -57,7 +66,7 @@
 #       endif
 #    endif
 #    ifndef sched_setaffinity
-       _syscall3(int, sched_setaffinity, pid_t, pid, unsigned int, lg, const void *, mask);
+       _syscall3(int, sched_setaffinity, pid_t, pid, unsigned int, lg, const void *, mask)
 #    endif
 #    ifndef __NR_sched_getaffinity
 #       ifdef __i386__
@@ -90,32 +99,54 @@
 #       endif
 #    endif
 #    ifndef sched_getaffinity
-       _syscall3(int, sched_getaffinity, pid_t, pid, unsigned int, lg, void *, mask);
+       _syscall3(int, sched_getaffinity, pid_t, pid, unsigned int, lg, void *, mask)
 #    endif
 #endif
 
+/* Added for ntohl() */
+#include <arpa/inet.h>
+
 #ifdef HAVE_OPENAT
 /* Use our own filesystem functions if we have openat */
 
-static FILE *
-hwloc_fopenat(const char *path, const char *mode, int fsroot_fd)
+static const char *
+hwloc_checkat(const char *path, int fsroot_fd)
 {
-  int fd;
   const char *relative_path;
-
   if (fsroot_fd < 0) {
     errno = EBADF;
     return NULL;
   }
+
+  /* Skip leading slashes.  */
+  for (relative_path = path; *relative_path == '/'; relative_path++);
+
+  return relative_path;
+}
+
+static int
+hwloc_openat(const char *path, int fsroot_fd)
+{
+  const char *relative_path;
+
+  relative_path = hwloc_checkat(path, fsroot_fd);
+  if (!relative_path)
+    return -1;
+
+  return openat (fsroot_fd, relative_path, O_RDONLY);
+}
+
+static FILE *
+hwloc_fopenat(const char *path, const char *mode, int fsroot_fd)
+{
+  int fd;
+
   if (strcmp(mode, "r")) {
     errno = ENOTSUP;
     return NULL;
   }
 
-  /* Skip leading slashes.  */
-  for (relative_path = path; *relative_path == '/'; relative_path++);
-
-  fd = openat (fsroot_fd, relative_path, O_RDONLY);
+  fd = hwloc_openat (path, fsroot_fd);
   if (fd == -1)
     return NULL;
 
@@ -127,25 +158,34 @@
 {
   const char *relative_path;
 
-  if (fsroot_fd < 0) {
-    errno = EBADF;
+  relative_path = hwloc_checkat(path, fsroot_fd);
+  if (!relative_path)
     return -1;
-  }
 
-  /* Skip leading slashes.  */
-  for (relative_path = path; *relative_path == '/'; relative_path++);
-
   return faccessat(fsroot_fd, relative_path, mode, 0);
 }
 
+static int
+hwloc_fstatat(const char *path, struct stat *st, int flags, int fsroot_fd)
+{
+  const char *relative_path;
+
+  relative_path = hwloc_checkat(path, fsroot_fd);
+  if (!relative_path)
+    return -1;
+
+  return fstatat(fsroot_fd, relative_path, st, flags);
+}
+
 static DIR*
 hwloc_opendirat(const char *path, int fsroot_fd)
 {
   int dir_fd;
   const char *relative_path;
 
-  /* Skip leading slashes.  */
-  for (relative_path = path; *relative_path == '/'; relative_path++);
+  relative_path = hwloc_checkat(path, fsroot_fd);
+  if (!relative_path)
+    return NULL;
 
   dir_fd = openat(fsroot_fd, relative_path, O_RDONLY | O_DIRECTORY);
   if (dir_fd < 0)
@@ -158,13 +198,23 @@
 
 /* Static inline version of fopen so that we can use openat if we have
    it, but still preserve compiler parameter checking */
+static inline int
+hwloc_open(const char *p, int d __hwloc_attribute_unused)
+{ 
+#ifdef HAVE_OPENAT
+    return hwloc_openat(p, d);
+#else
+    return open(p, O_RDONLY);
+#endif
+}
+
 static inline FILE *
 hwloc_fopen(const char *p, const char *m, int d __hwloc_attribute_unused)
 { 
 #ifdef HAVE_OPENAT
     return hwloc_fopenat(p, m, d);
 #else
-    return fopen(p, m); 
+    return fopen(p, m);
 #endif
 }
 
@@ -176,10 +226,20 @@
 #ifdef HAVE_OPENAT
     return hwloc_accessat(p, m, d);
 #else
-    return access(p, m); 
+    return access(p, m);
 #endif
 }
 
+static inline int
+hwloc_stat(const char *p, struct stat *st, int d __hwloc_attribute_unused)
+{
+#ifdef HAVE_OPENAT
+    return hwloc_fstatat(p, st, 0, d);
+#else
+    return stat(p, st);
+#endif
+}
+
 /* Static inline version of opendir so that we can use openat if we have
    it, but still preserve compiler parameter checking */
 static inline DIR *
@@ -188,12 +248,12 @@
 #ifdef HAVE_OPENAT
     return hwloc_opendirat(p, d);
 #else
-    return opendir(p); 
+    return opendir(p);
 #endif
 }
 
 int
-hwloc_linux_set_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, pid_t tid, hwloc_const_cpuset_t hwloc_set)
+hwloc_linux_set_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, pid_t tid __hwloc_attribute_unused, hwloc_const_bitmap_t hwloc_set __hwloc_attribute_unused)
 {
   /* TODO Kerrighed: Use
    * int migrate (pid_t pid, int destination_node);
@@ -203,18 +263,26 @@
 
   /* The resulting binding is always strict */
 
-#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY) && CPU_SETSIZE < HWLOC_NBMAXCPUS
+#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)
   cpu_set_t *plinux_set;
   unsigned cpu;
-  size_t setsize = CPU_ALLOC_SIZE(HWLOC_NBMAXCPUS);
+  int last;
+  size_t setsize;
   int err;
 
-  plinux_set = CPU_ALLOC(HWLOC_NBMAXCPUS);
+  last = hwloc_bitmap_last(hwloc_set);
+  if (last == -1) {
+    errno = EINVAL;
+    return -1;
+  }
 
+  setsize = CPU_ALLOC_SIZE(last+1);
+  plinux_set = CPU_ALLOC(last+1);
+
   CPU_ZERO_S(setsize, plinux_set);
-  hwloc_cpuset_foreach_begin(cpu, hwloc_set)
+  hwloc_bitmap_foreach_begin(cpu, hwloc_set)
     CPU_SET_S(cpu, setsize, plinux_set);
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 
   err = sched_setaffinity(tid, setsize, plinux_set);
 
@@ -225,38 +293,77 @@
   unsigned cpu;
 
   CPU_ZERO(&linux_set);
-  hwloc_cpuset_foreach_begin(cpu, hwloc_set)
+  hwloc_bitmap_foreach_begin(cpu, hwloc_set)
     CPU_SET(cpu, &linux_set);
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
   return sched_setaffinity(tid, &linux_set);
 #else /* HWLOC_HAVE_OLD_SCHED_SETAFFINITY */
   return sched_setaffinity(tid, sizeof(linux_set), &linux_set);
 #endif /* HWLOC_HAVE_OLD_SCHED_SETAFFINITY */
-#else /* !CPU_SET */
-  unsigned long mask = hwloc_cpuset_to_ulong(hwloc_set);
+#elif defined(HWLOC_HAVE__SYSCALL3)
+  unsigned long mask = hwloc_bitmap_to_ulong(hwloc_set);
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
   return sched_setaffinity(tid, (void*) &mask);
 #else /* HWLOC_HAVE_OLD_SCHED_SETAFFINITY */
   return sched_setaffinity(tid, sizeof(mask), (void*) &mask);
 #endif /* HWLOC_HAVE_OLD_SCHED_SETAFFINITY */
-#endif /* !CPU_SET */
+#else /* !_SYSCALL3 */
+  errno = ENOSYS;
+  return -1;
+#endif /* !_SYSCALL3 */
 }
 
+#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)
+/*
+ * On some kernels, sched_getaffinity requires the output size to be larger
+ * than the kernel cpu_set size (defined by CONFIG_NR_CPUS).
+ * Try sched_affinity on ourself until we find a nr_cpus value that makes
+ * the kernel happy.
+ */
+static int
+hwloc_linux_find_kernel_nr_cpus(hwloc_topology_t topology)
+{
+  static int nr_cpus = -1;
+
+  if (nr_cpus != -1)
+    /* already computed */
+    return nr_cpus;
+
+  /* start with a nr_cpus that may contain the whole topology */
+  nr_cpus = hwloc_bitmap_last(topology->levels[0][0]->complete_cpuset) + 1;
+  while (1) {
+    cpu_set_t *set = CPU_ALLOC(nr_cpus);
+    size_t setsize = CPU_ALLOC_SIZE(nr_cpus);
+    int err = sched_getaffinity(0, setsize, set); /* always works, unless setsize is too small */
+    CPU_FREE(set);
+    if (!err)
+      /* found it */
+      return nr_cpus;
+    nr_cpus *= 2;
+  }
+}
+#endif
+
 int
-hwloc_linux_get_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, pid_t tid, hwloc_cpuset_t hwloc_set)
+hwloc_linux_get_tid_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, pid_t tid __hwloc_attribute_unused, hwloc_bitmap_t hwloc_set __hwloc_attribute_unused)
 {
-  int err;
+  int err __hwloc_attribute_unused;
   /* TODO Kerrighed */
 
-#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY) && CPU_SETSIZE < HWLOC_NBMAXCPUS
+#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)
   cpu_set_t *plinux_set;
   unsigned cpu;
-  size_t setsize = CPU_ALLOC_SIZE(HWLOC_NBMAXCPUS);
+  int last;
+  size_t setsize;
+  int kernel_nr_cpus;
 
-  plinux_set = CPU_ALLOC(HWLOC_NBMAXCPUS);
+  /* find the kernel nr_cpus so as to use a large enough cpu_set size */
+  kernel_nr_cpus = hwloc_linux_find_kernel_nr_cpus(topology);
+  setsize = CPU_ALLOC_SIZE(kernel_nr_cpus);
+  plinux_set = CPU_ALLOC(kernel_nr_cpus);
 
   err = sched_getaffinity(tid, setsize, plinux_set);
 
@@ -265,10 +372,13 @@
     return -1;
   }
 
-  hwloc_cpuset_zero(hwloc_set);
-  for(cpu=0; cpu<HWLOC_NBMAXCPUS; cpu++)
+  last = hwloc_bitmap_last(topology->levels[0][0]->complete_cpuset);
+  assert(last != -1);
+
+  hwloc_bitmap_zero(hwloc_set);
+  for(cpu=0; cpu<=(unsigned) last; cpu++)
     if (CPU_ISSET_S(cpu, setsize, plinux_set))
-      hwloc_cpuset_set(hwloc_set, cpu);
+      hwloc_bitmap_set(hwloc_set, cpu);
 
   CPU_FREE(plinux_set);
 #elif defined(HWLOC_HAVE_CPU_SET)
@@ -283,11 +393,11 @@
   if (err < 0)
     return -1;
 
-  hwloc_cpuset_zero(hwloc_set);
+  hwloc_bitmap_zero(hwloc_set);
   for(cpu=0; cpu<CPU_SETSIZE; cpu++)
     if (CPU_ISSET(cpu, &linux_set))
-      hwloc_cpuset_set(hwloc_set, cpu);
-#else /* !CPU_SET */
+      hwloc_bitmap_set(hwloc_set, cpu);
+#elif defined(HWLOC_HAVE__SYSCALL3)
   unsigned long mask;
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
@@ -298,8 +408,11 @@
   if (err < 0)
     return -1;
 
-  hwloc_cpuset_from_ulong(hwloc_set, mask);
-#endif /* !CPU_SET */
+  hwloc_bitmap_from_ulong(hwloc_set, mask);
+#else /* !_SYSCALL3 */
+  errno = ENOSYS;
+  return -1;
+#endif /* !_SYSCALL3 */
 
   return 0;
 }
@@ -349,42 +462,42 @@
 }
 
 /* Callbacks for binding each process sub-tid */
-typedef int (*hwloc_linux_foreach_proc_tid_cb_t)(hwloc_topology_t topology, pid_t tid, void *data, int idx, int policy);
+typedef int (*hwloc_linux_foreach_proc_tid_cb_t)(hwloc_topology_t topology, pid_t tid, void *data, int idx, int flags);
 
 static int
-hwloc_linux_foreach_proc_tid_set_cpubind_cb(hwloc_topology_t topology, pid_t tid, void *data, int idx __hwloc_attribute_unused, int policy __hwloc_attribute_unused)
+hwloc_linux_foreach_proc_tid_set_cpubind_cb(hwloc_topology_t topology, pid_t tid, void *data, int idx __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
 {
-  hwloc_cpuset_t cpuset = data;
+  hwloc_bitmap_t cpuset = data;
   return hwloc_linux_set_tid_cpubind(topology, tid, cpuset);
 }
 
 static int
-hwloc_linux_foreach_proc_tid_get_cpubind_cb(hwloc_topology_t topology, pid_t tid, void *data, int idx, int policy)
+hwloc_linux_foreach_proc_tid_get_cpubind_cb(hwloc_topology_t topology, pid_t tid, void *data, int idx, int flags)
 {
-  hwloc_cpuset_t *cpusets = data;
-  hwloc_cpuset_t cpuset = cpusets[0];
-  hwloc_cpuset_t tidset = cpusets[1];
+  hwloc_bitmap_t *cpusets = data;
+  hwloc_bitmap_t cpuset = cpusets[0];
+  hwloc_bitmap_t tidset = cpusets[1];
 
   if (hwloc_linux_get_tid_cpubind(topology, tid, tidset))
     return -1;
 
   /* reset the cpuset on first iteration */
   if (!idx)
-    hwloc_cpuset_zero(cpuset);
+    hwloc_bitmap_zero(cpuset);
 
-  if (policy & HWLOC_CPUBIND_STRICT) {
+  if (flags & HWLOC_CPUBIND_STRICT) {
     /* if STRICT, we want all threads to have the same binding */
     if (!idx) {
       /* this is the first thread, copy its binding */
-      hwloc_cpuset_copy(cpuset, tidset);
-    } else if (!hwloc_cpuset_isequal(cpuset, tidset)) {
+      hwloc_bitmap_copy(cpuset, tidset);
+    } else if (!hwloc_bitmap_isequal(cpuset, tidset)) {
       /* this is not the first thread, and it's binding is different */
       errno = EXDEV;
       return -1;
     }
   } else {
     /* if not STRICT, just OR all thread bindings */
-    hwloc_cpuset_or(cpuset, cpuset, tidset);
+    hwloc_bitmap_or(cpuset, cpuset, tidset);
   }
   return 0;
 }
@@ -393,7 +506,7 @@
 static int
 hwloc_linux_foreach_proc_tid(hwloc_topology_t topology,
 			     pid_t pid, hwloc_linux_foreach_proc_tid_cb_t cb,
-			     void *data, int policy)
+			     void *data, int flags)
 {
   char taskdir_path[128];
   DIR *taskdir;
@@ -421,7 +534,7 @@
  retry:
   /* apply the callback to all threads */
   for(i=0; i<nr; i++) {
-    err = cb(topology, tids[i], data, i, policy);
+    err = cb(topology, tids[i], data, i, flags);
     if (err < 0)
       goto out_with_tids;
   }
@@ -448,62 +561,62 @@
 }
 
 static int
-hwloc_linux_set_pid_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_linux_set_pid_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   return hwloc_linux_foreach_proc_tid(topology, pid,
 				      hwloc_linux_foreach_proc_tid_set_cpubind_cb,
-				      (void*) hwloc_set, policy);
+				      (void*) hwloc_set, flags);
 }
 
 static int
-hwloc_linux_get_pid_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_linux_get_pid_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_bitmap_t hwloc_set, int flags)
 {
-  hwloc_cpuset_t tidset = hwloc_cpuset_alloc();
-  hwloc_cpuset_t cpusets[2] = { hwloc_set, tidset };
+  hwloc_bitmap_t tidset = hwloc_bitmap_alloc();
+  hwloc_bitmap_t cpusets[2] = { hwloc_set, tidset };
   int ret;
   ret = hwloc_linux_foreach_proc_tid(topology, pid,
 					 hwloc_linux_foreach_proc_tid_get_cpubind_cb,
-					 (void*) cpusets, policy);
-  hwloc_cpuset_free(tidset);
+					 (void*) cpusets, flags);
+  hwloc_bitmap_free(tidset);
   return ret;
 }
 
 static int
-hwloc_linux_set_proc_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_linux_set_proc_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   if (pid == 0)
     pid = topology->pid;
-  if (policy & HWLOC_CPUBIND_THREAD)
+  if (flags & HWLOC_CPUBIND_THREAD)
     return hwloc_linux_set_tid_cpubind(topology, pid, hwloc_set);
   else
-    return hwloc_linux_set_pid_cpubind(topology, pid, hwloc_set, policy);
+    return hwloc_linux_set_pid_cpubind(topology, pid, hwloc_set, flags);
 }
 
 static int
-hwloc_linux_get_proc_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_linux_get_proc_cpubind(hwloc_topology_t topology, pid_t pid, hwloc_bitmap_t hwloc_set, int flags)
 {
   if (pid == 0)
     pid = topology->pid;
-  if (policy & HWLOC_CPUBIND_THREAD)
+  if (flags & HWLOC_CPUBIND_THREAD)
     return hwloc_linux_get_tid_cpubind(topology, pid, hwloc_set);
   else
-    return hwloc_linux_get_pid_cpubind(topology, pid, hwloc_set, policy);
+    return hwloc_linux_get_pid_cpubind(topology, pid, hwloc_set, flags);
 }
 
 static int
-hwloc_linux_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_linux_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_linux_set_pid_cpubind(topology, topology->pid, hwloc_set, policy);
+  return hwloc_linux_set_pid_cpubind(topology, topology->pid, hwloc_set, flags);
 }
 
 static int
-hwloc_linux_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_set, int policy)
+hwloc_linux_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_linux_get_pid_cpubind(topology, topology->pid, hwloc_set, policy);
+  return hwloc_linux_get_pid_cpubind(topology, topology->pid, hwloc_set, flags);
 }
 
 static int
-hwloc_linux_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_linux_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   if (topology->pid) {
     errno = ENOSYS;
@@ -513,7 +626,7 @@
 }
 
 static int
-hwloc_linux_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_linux_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   if (topology->pid) {
     errno = ENOSYS;
@@ -526,7 +639,7 @@
 #pragma weak pthread_setaffinity_np
 
 static int
-hwloc_linux_set_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_const_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_linux_set_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_const_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   int err;
 
@@ -549,17 +662,44 @@
    * int thread_migrate (int thread_id, int destination_node);
    */
 
-#ifdef HWLOC_HAVE_CPU_SET
+#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)
   /* Use a separate block so that we can define specific variable
      types here */
   {
+     cpu_set_t *plinux_set;
+     unsigned cpu;
+     int last;
+     size_t setsize;
+
+     last = hwloc_bitmap_last(hwloc_set);
+     if (last == -1) {
+       errno = EINVAL;
+       return -1;
+     }
+
+     setsize = CPU_ALLOC_SIZE(last+1);
+     plinux_set = CPU_ALLOC(last+1);
+
+     CPU_ZERO_S(setsize, plinux_set);
+     hwloc_bitmap_foreach_begin(cpu, hwloc_set)
+         CPU_SET_S(cpu, setsize, plinux_set);
+     hwloc_bitmap_foreach_end();
+
+     err = pthread_setaffinity_np(tid, setsize, plinux_set);
+
+     CPU_FREE(plinux_set);
+  }
+#elif defined(HWLOC_HAVE_CPU_SET)
+  /* Use a separate block so that we can define specific variable
+     types here */
+  {
      cpu_set_t linux_set;
      unsigned cpu;
 
      CPU_ZERO(&linux_set);
-     hwloc_cpuset_foreach_begin(cpu, hwloc_set)
+     hwloc_bitmap_foreach_begin(cpu, hwloc_set)
          CPU_SET(cpu, &linux_set);
-     hwloc_cpuset_foreach_end();
+     hwloc_bitmap_foreach_end();
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
      err = pthread_setaffinity_np(tid, &linux_set);
@@ -571,7 +711,7 @@
   /* Use a separate block so that we can define specific variable
      types here */
   {
-      unsigned long mask = hwloc_cpuset_to_ulong(hwloc_set);
+      unsigned long mask = hwloc_bitmap_to_ulong(hwloc_set);
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
       err = pthread_setaffinity_np(tid, (void*) &mask);
@@ -593,7 +733,7 @@
 #pragma weak pthread_getaffinity_np
 
 static int
-hwloc_linux_get_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_linux_get_thread_cpubind(hwloc_topology_t topology, pthread_t tid, hwloc_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   int err;
 
@@ -612,10 +752,39 @@
   }
   /* TODO Kerrighed */
 
-#ifdef HWLOC_HAVE_CPU_SET
+#if defined(HWLOC_HAVE_CPU_SET_S) && !defined(HWLOC_HAVE_OLD_SCHED_SETAFFINITY)
   /* Use a separate block so that we can define specific variable
      types here */
   {
+     cpu_set_t *plinux_set;
+     unsigned cpu;
+     int last;
+     size_t setsize;
+
+     last = hwloc_bitmap_last(topology->levels[0][0]->complete_cpuset);
+     assert (last != -1);
+
+     setsize = CPU_ALLOC_SIZE(last+1);
+     plinux_set = CPU_ALLOC(last+1);
+
+     err = pthread_getaffinity_np(tid, setsize, plinux_set);
+     if (err) {
+        CPU_FREE(plinux_set);
+        errno = err;
+        return -1;
+     }
+
+     hwloc_bitmap_zero(hwloc_set);
+     for(cpu=0; cpu<(unsigned) last; cpu++)
+       if (CPU_ISSET_S(cpu, setsize, plinux_set))
+	 hwloc_bitmap_set(hwloc_set, cpu);
+
+     CPU_FREE(plinux_set);
+  }
+#elif defined(HWLOC_HAVE_CPU_SET)
+  /* Use a separate block so that we can define specific variable
+     types here */
+  {
      cpu_set_t linux_set;
      unsigned cpu;
 
@@ -629,10 +798,10 @@
         return -1;
      }
 
-     hwloc_cpuset_zero(hwloc_set);
+     hwloc_bitmap_zero(hwloc_set);
      for(cpu=0; cpu<CPU_SETSIZE; cpu++)
        if (CPU_ISSET(cpu, &linux_set))
-	 hwloc_cpuset_set(hwloc_set, cpu);
+	 hwloc_bitmap_set(hwloc_set, cpu);
   }
 #else /* CPU_SET */
   /* Use a separate block so that we can define specific variable
@@ -650,7 +819,7 @@
         return -1;
       }
 
-     hwloc_cpuset_from_ulong(hwloc_set, mask);
+     hwloc_bitmap_from_ulong(hwloc_set, mask);
   }
 #endif /* CPU_SET */
 
@@ -658,6 +827,291 @@
 }
 #endif /* HAVE_DECL_PTHREAD_GETAFFINITY_NP */
 
+#if defined HWLOC_HAVE_SET_MEMPOLICY || defined HWLOC_HAVE_MBIND
+static int
+hwloc_linux_membind_policy_from_hwloc(int *linuxpolicy, hwloc_membind_policy_t policy, int flags)
+{
+  switch (policy) {
+  case HWLOC_MEMBIND_DEFAULT:
+  case HWLOC_MEMBIND_FIRSTTOUCH:
+    *linuxpolicy = MPOL_DEFAULT;
+    break;
+  case HWLOC_MEMBIND_BIND:
+    if (flags & HWLOC_MEMBIND_STRICT)
+      *linuxpolicy = MPOL_BIND;
+    else
+      *linuxpolicy = MPOL_PREFERRED;
+    break;
+  case HWLOC_MEMBIND_INTERLEAVE:
+    *linuxpolicy = MPOL_INTERLEAVE;
+    break;
+  /* TODO: next-touch when (if?) patch applied upstream */
+  default:
+    errno = ENOSYS;
+    return -1;
+  }
+  return 0;
+}
+
+static int
+hwloc_linux_membind_mask_from_nodeset(hwloc_topology_t topology __hwloc_attribute_unused,
+				      hwloc_const_nodeset_t nodeset,
+				      unsigned *max_os_index_p, unsigned long **linuxmaskp)
+{
+  unsigned max_os_index = 0; /* highest os_index + 1 */
+  unsigned long *linuxmask;
+  unsigned i;
+
+  max_os_index = hwloc_bitmap_last(nodeset);
+  if (max_os_index == (unsigned) -1)
+    max_os_index = 0;
+  /* round up to the nearest multiple of BITS_PER_LONG */
+  max_os_index = (max_os_index + HWLOC_BITS_PER_LONG) & ~(HWLOC_BITS_PER_LONG - 1);
+
+  linuxmask = calloc(max_os_index/HWLOC_BITS_PER_LONG, sizeof(long));
+  if (!linuxmask) {
+    errno = ENOMEM;
+    return -1;
+  }
+
+  for(i=0; i<max_os_index/HWLOC_BITS_PER_LONG; i++)
+    linuxmask[i] = hwloc_bitmap_to_ith_ulong(nodeset, i);
+
+  *max_os_index_p = max_os_index;
+  *linuxmaskp = linuxmask;
+  return 0;
+}
+
+static void
+hwloc_linux_membind_mask_to_nodeset(hwloc_topology_t topology __hwloc_attribute_unused,
+				    hwloc_nodeset_t nodeset,
+				    unsigned _max_os_index, const unsigned long *linuxmask)
+{
+  unsigned max_os_index;
+  unsigned i;
+
+  /* round up to the nearest multiple of BITS_PER_LONG */
+  max_os_index = (_max_os_index + HWLOC_BITS_PER_LONG) & ~(HWLOC_BITS_PER_LONG - 1);
+
+  hwloc_bitmap_zero(nodeset);
+  for(i=0; i<max_os_index/HWLOC_BITS_PER_LONG; i++)
+    hwloc_bitmap_set_ith_ulong(nodeset, i, linuxmask[i]);
+  /* if we don't trust the kernel, we could clear bits from _max_os_index+1 to max_os_index-1 */
+}
+#endif /* HWLOC_HAVE_SET_MEMPOLICY || HWLOC_HAVE_MBIND */
+
+#ifdef HWLOC_HAVE_MBIND
+static int
+hwloc_linux_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  unsigned max_os_index; /* highest os_index + 1 */
+  unsigned long *linuxmask;
+  size_t remainder;
+  int linuxpolicy;
+  unsigned linuxflags = 0;
+  int err;
+
+  remainder = (uintptr_t) addr & (sysconf(_SC_PAGESIZE)-1);
+  addr = (char*) addr - remainder;
+  len += remainder;
+
+  err = hwloc_linux_membind_policy_from_hwloc(&linuxpolicy, policy, flags);
+  if (err < 0)
+    return err;
+
+  if (linuxpolicy == MPOL_DEFAULT)
+    /* Some Linux kernels don't like being passed a set */
+    return mbind((void *) addr, len, linuxpolicy, NULL, 0, 0);
+
+  err = hwloc_linux_membind_mask_from_nodeset(topology, nodeset, &max_os_index, &linuxmask);
+  if (err < 0)
+    goto out;
+
+  if (flags & HWLOC_MEMBIND_MIGRATE) {
+#ifdef MPOL_MF_MOVE
+    linuxflags = MPOL_MF_MOVE;
+    if (flags & HWLOC_MEMBIND_STRICT)
+      linuxflags |= MPOL_MF_STRICT;
+#else
+    if (flags & HWLOC_MEMBIND_STRICT) {
+      errno = ENOSYS;
+      goto out_with_mask;
+    }
+#endif
+  }
+
+  err = mbind((void *) addr, len, linuxpolicy, linuxmask, max_os_index+1, linuxflags);
+  if (err < 0)
+    goto out_with_mask;
+
+  free(linuxmask);
+  return 0;
+
+ out_with_mask:
+  free(linuxmask);
+ out:
+  return -1;
+}
+
+static void *
+hwloc_linux_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  void *buffer;
+  int err;
+
+  buffer = hwloc_alloc_mmap(topology, len);
+  if (buffer == MAP_FAILED)
+    return NULL;
+
+  err = hwloc_linux_set_area_membind(topology, buffer, len, nodeset, policy, flags);
+  if (err < 0 && policy & HWLOC_MEMBIND_STRICT) {
+    munmap(buffer, len);
+    return NULL;
+  }
+
+  return buffer;
+}
+
+static int
+hwloc_linux_free_membind(hwloc_topology_t topology __hwloc_attribute_unused, void *addr, size_t len)
+{
+  return munmap(addr, len);
+}
+#endif /* HWLOC_HAVE_MBIND */
+
+#ifdef HWLOC_HAVE_SET_MEMPOLICY
+static int
+hwloc_linux_set_thisthread_membind(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  unsigned max_os_index; /* highest os_index + 1 */
+  unsigned long *linuxmask;
+  int linuxpolicy;
+  int err;
+
+  err = hwloc_linux_membind_policy_from_hwloc(&linuxpolicy, policy, flags);
+  if (err < 0)
+    return err;
+
+  if (linuxpolicy == MPOL_DEFAULT)
+    /* Some Linux kernels don't like being passed a set */
+    return set_mempolicy(linuxpolicy, NULL, 0);
+
+  err = hwloc_linux_membind_mask_from_nodeset(topology, nodeset, &max_os_index, &linuxmask);
+  if (err < 0)
+    goto out;
+
+  if (flags & HWLOC_MEMBIND_MIGRATE) {
+#ifdef HWLOC_HAVE_MIGRATE_PAGES
+    unsigned long *fullmask = malloc(max_os_index/HWLOC_BITS_PER_LONG * sizeof(long));
+    if (fullmask) {
+      memset(fullmask, max_os_index/HWLOC_BITS_PER_LONG * sizeof(long), 0xf);
+      err = migrate_pages(0, max_os_index+1, fullmask, linuxmask);
+      free(fullmask);
+    } else
+      err = -1;
+    if (err < 0 && (flags & HWLOC_MEMBIND_STRICT))
+      goto out_with_mask;
+#else
+    errno = ENOSYS;
+    goto out_with_mask;
+#endif
+  }
+
+  err = set_mempolicy(linuxpolicy, linuxmask, max_os_index+1);
+  if (err < 0)
+    goto out_with_mask;
+
+  free(linuxmask);
+  return 0;
+
+ out_with_mask:
+  free(linuxmask);
+ out:
+  return -1;
+}
+
+/*
+ * On some kernels, get_mempolicy requires the output size to be larger
+ * than the kernel MAX_NUMNODES (defined by CONFIG_NODES_SHIFT).
+ * Try get_mempolicy on ourself until we find a max_os_index value that
+ * makes the kernel happy.
+ */
+static int
+hwloc_linux_find_kernel_max_numnodes(hwloc_topology_t topology __hwloc_attribute_unused)
+{
+  static int max_numnodes = -1;
+  int linuxpolicy;
+
+  if (max_numnodes != -1)
+    /* already computed */
+    return max_numnodes;
+
+  /* start with a single ulong, it's the minimal and it's enough for most machines */
+  max_numnodes = HWLOC_BITS_PER_LONG;
+  while (1) {
+    unsigned long *mask = malloc(max_numnodes / HWLOC_BITS_PER_LONG * sizeof(long));
+    int err = get_mempolicy(&linuxpolicy, mask, max_numnodes, 0, 0);
+    free(mask);
+    if (!err || errno != EINVAL)
+      /* found it */
+      return max_numnodes;
+    max_numnodes *= 2;
+  }
+}
+
+static int
+hwloc_linux_get_thisthread_membind(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t *policy, int flags __hwloc_attribute_unused)
+{
+  unsigned max_os_index;
+  unsigned long *linuxmask;
+  int linuxpolicy;
+  int err;
+
+  max_os_index = hwloc_linux_find_kernel_max_numnodes(topology);
+
+  linuxmask = malloc(max_os_index/HWLOC_BITS_PER_LONG * sizeof(long));
+  if (!linuxmask) {
+    errno = ENOMEM;
+    goto out;
+  }
+
+  err = get_mempolicy(&linuxpolicy, linuxmask, max_os_index, 0, 0);
+  if (err < 0)
+    goto out_with_mask;
+
+  if (linuxpolicy == MPOL_DEFAULT) {
+    hwloc_bitmap_copy(nodeset, hwloc_topology_get_topology_nodeset(topology));
+  } else {
+    hwloc_linux_membind_mask_to_nodeset(topology, nodeset, max_os_index, linuxmask);
+  }
+
+  switch (linuxpolicy) {
+  case MPOL_DEFAULT:
+    *policy = HWLOC_MEMBIND_FIRSTTOUCH;
+    break;
+  case MPOL_PREFERRED:
+  case MPOL_BIND:
+    *policy = HWLOC_MEMBIND_BIND;
+    break;
+  case MPOL_INTERLEAVE:
+    *policy = HWLOC_MEMBIND_INTERLEAVE;
+    break;
+  default:
+    errno = EINVAL;
+    goto out_with_mask;
+  }
+
+  free(linuxmask);
+  return 0;
+
+ out_with_mask:
+  free(linuxmask);
+ out:
+  return -1;
+}
+
+#endif /* HWLOC_HAVE_SET_MEMPOLICY */
+
 int
 hwloc_backend_sysfs_init(struct hwloc_topology *topology, const char *fsroot_path __hwloc_attribute_unused)
 {
@@ -676,8 +1130,10 @@
   if (strcmp(fsroot_path, "/"))
     topology->is_thissystem = 0;
 
+  topology->backend_params.sysfs.root_path = strdup(fsroot_path);
   topology->backend_params.sysfs.root_fd = root;
 #else
+  topology->backend_params.sysfs.root_path = NULL;
   topology->backend_params.sysfs.root_fd = -1;
 #endif
   topology->backend_type = HWLOC_BACKEND_SYSFS;
@@ -690,6 +1146,8 @@
   assert(topology->backend_type == HWLOC_BACKEND_SYSFS);
 #ifdef HAVE_OPENAT
   close(topology->backend_params.sysfs.root_fd);
+  free(topology->backend_params.sysfs.root_path);
+  topology->backend_params.sysfs.root_path = NULL;
 #endif
   topology->backend_type = HWLOC_BACKEND_NONE;
 }
@@ -721,26 +1179,28 @@
 /* kernel cpumaps are composed of an array of 32bits cpumasks */
 #define KERNEL_CPU_MASK_BITS 32
 #define KERNEL_CPU_MAP_LEN (KERNEL_CPU_MASK_BITS/4+2)
-#define MAX_KERNEL_CPU_MASK ((HWLOC_NBMAXCPUS+KERNEL_CPU_MASK_BITS-1)/KERNEL_CPU_MASK_BITS)
 
 int
-hwloc_linux_parse_cpumap_file(FILE *file, hwloc_cpuset_t set)
+hwloc_linux_parse_cpumap_file(FILE *file, hwloc_bitmap_t set)
 {
-  unsigned long maps[MAX_KERNEL_CPU_MASK];
+  unsigned long *maps;
   unsigned long map;
   int nr_maps = 0;
-  int n;
-
+  static int nr_maps_allocated = 8; /* only compute the power-of-two above the kernel cpumask size once */
   int i;
 
+  maps = malloc(nr_maps_allocated * sizeof(*maps));
+
   /* reset to zero first */
-  hwloc_cpuset_zero(set);
+  hwloc_bitmap_zero(set);
 
   /* parse the whole mask */
   while (fscanf(file, "%lx,", &map) == 1) /* read one kernel cpu mask and the ending comma */
     {
-      if (nr_maps == MAX_KERNEL_CPU_MASK)
-        break; /* too many cpumasks in this cpumap */
+      if (nr_maps == nr_maps_allocated) {
+	nr_maps_allocated *= 2;
+	maps = realloc(maps, nr_maps_allocated * sizeof(*maps));
+      }
 
       if (!map && !nr_maps)
 	/* ignore the first map if it's empty */
@@ -751,30 +1211,36 @@
       nr_maps++;
     }
 
-  /* check that the map can be stored in our cpuset */
-  n = nr_maps*KERNEL_CPU_MASK_BITS;
-  if (n > HWLOC_NBMAXCPUS)
-    n = HWLOC_NBMAXCPUS;
-
   /* convert into a set */
-  for(i=0; i<n; i++)
-    if (maps[i/KERNEL_CPU_MASK_BITS] & 1<<(i%KERNEL_CPU_MASK_BITS))
-      hwloc_cpuset_set(set, i);
+#if KERNEL_CPU_MASK_BITS == HWLOC_BITS_PER_LONG
+  for(i=0; i<nr_maps; i++)
+    hwloc_bitmap_set_ith_ulong(set, i, maps[i]);
+#else
+  for(i=0; i<(nr_maps+1)/2; i++) {
+    unsigned long ulong;
+    ulong = maps[2*i];
+    if (2*i+1<nr_maps)
+      ulong |= maps[2*i+1] << KERNEL_CPU_MASK_BITS;
+    hwloc_bitmap_set_ith_ulong(set, i, ulong);
+  }
+#endif
 
+  free(maps);
+
   return 0;
 }
 
-static hwloc_cpuset_t
+static hwloc_bitmap_t
 hwloc_parse_cpumap(const char *mappath, int fsroot_fd)
 {
-  hwloc_cpuset_t set;
+  hwloc_bitmap_t set;
   FILE * file;
 
   file = hwloc_fopen(mappath, "r", fsroot_fd);
   if (!file)
     return NULL;
 
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   hwloc_linux_parse_cpumap_file(file, set);
 
   fclose(file);
@@ -811,7 +1277,7 @@
 static void
 hwloc_find_linux_cpuset_mntpnt(char **cgroup_mntpnt, char **cpuset_mntpnt, int fsroot_fd)
 {
-#define PROC_MOUNT_LINE_LEN 128
+#define PROC_MOUNT_LINE_LEN 512
   char line[PROC_MOUNT_LINE_LEN];
   FILE *fd;
 
@@ -831,6 +1297,13 @@
     char *type;
     char *tmp;
 
+    /* remove the ending " 0 0\n" that the kernel always adds */
+    tmp = line + strlen(line) - 5;
+    if (tmp < line || strcmp(tmp, " 0 0\n"))
+      fprintf(stderr, "Unexpected end of /proc/mounts line `%s'\n", line);
+    else
+      *tmp = '\0';
+
     /* path is after first field and a space */
     tmp = strchr(line, ' ');
     if (!tmp)
@@ -851,9 +1324,12 @@
       hwloc_debug("Found cpuset mount point on %s\n", path);
       *cpuset_mntpnt = hwloc_strdup_mntpath(path, type-path);
       break;
+
     } else if (!strncmp(type, "cgroup ", 7)) {
       /* found a cgroup mntpnt */
       char *opt, *opts;
+      int cpuset_opt = 0;
+      int noprefix_opt = 0;
 
       /* find options */
       tmp = strchr(type, ' ');
@@ -861,14 +1337,23 @@
 	continue;
       opts = tmp+1;
 
-      /* find "cpuset" option */
-      while ((opt = strsep(&opts, ",")) && strcmp(opt, "cpuset"))
-        ; /* continue */
-      if (!opt)
+      /* look at options */
+      while ((opt = strsep(&opts, ",")) != NULL) {
+	if (!strcmp(opt, "cpuset"))
+	  cpuset_opt = 1;
+	else if (!strcmp(opt, "noprefix"))
+	  noprefix_opt = 1;
+      }
+      if (!cpuset_opt)
 	continue;
 
-      hwloc_debug("Found cgroup/cpuset mount point on %s\n", path);
-      *cgroup_mntpnt = hwloc_strdup_mntpath(path, type-path);
+      if (noprefix_opt) {
+	hwloc_debug("Found cgroup emulating a cpuset mount point on %s\n", path);
+	*cpuset_mntpnt = hwloc_strdup_mntpath(path, type-path);
+      } else {
+	hwloc_debug("Found cgroup/cpuset mount point on %s\n", path);
+	*cgroup_mntpnt = hwloc_strdup_mntpath(path, type-path);
+      }
       break;
     }
   }
@@ -1001,11 +1486,12 @@
 hwloc_admin_disable_set_from_cpuset(struct hwloc_topology *topology,
 				    const char *cgroup_mntpnt, const char *cpuset_mntpnt, const char *cpuset_name,
 				    const char *attr_name,
-				    hwloc_cpuset_t admin_enabled_cpus_set)
+				    hwloc_bitmap_t admin_enabled_cpus_set)
 {
   char *cpuset_mask;
   char *current, *comma, *tmp;
   int prevlast, nextfirst, nextlast; /* beginning/end of enabled-segments */
+  hwloc_bitmap_t tmpset;
 
   cpuset_mask = hwloc_read_linux_cpuset_mask(cgroup_mntpnt, cpuset_mntpnt, cpuset_name,
 					     attr_name, topology->backend_params.sysfs.root_fd);
@@ -1031,7 +1517,7 @@
       nextlast = nextfirst;
     if (prevlast+1 <= nextfirst-1) {
       hwloc_debug("%s [%d:%d] excluded by cpuset\n", attr_name, prevlast+1, nextfirst-1);
-      hwloc_cpuset_clr_range(admin_enabled_cpus_set, prevlast+1, nextfirst-1);
+      hwloc_bitmap_clr_range(admin_enabled_cpus_set, prevlast+1, nextfirst-1);
     }
 
     /* switch to next enabled-segment */
@@ -1041,95 +1527,232 @@
     current = comma+1;
   }
 
-  /* disable after last enabled-segment */
-  nextfirst = HWLOC_NBMAXCPUS;
-  if (prevlast+1 <= nextfirst-1) {
-    hwloc_debug("%s [%d:%d] excluded by cpuset\n", attr_name, prevlast+1, nextfirst-1);
-    hwloc_cpuset_clr_range(admin_enabled_cpus_set, prevlast+1, nextfirst-1);
-  }
+  hwloc_debug("%s [%d:%d] excluded by cpuset\n", attr_name, prevlast+1, nextfirst-1);
+  /* no easy way to clear until the infinity */
+  tmpset = hwloc_bitmap_alloc();
+  hwloc_bitmap_set_range(tmpset, 0, prevlast);
+  hwloc_bitmap_and(admin_enabled_cpus_set, admin_enabled_cpus_set, tmpset);
+  hwloc_bitmap_free(tmpset);
 
   free(cpuset_mask);
 }
 
 static void
-hwloc_get_procfs_meminfo_info(struct hwloc_topology *topology,
-			     const char *path, struct hwloc_obj_memory_s *memory)
+hwloc_parse_meminfo_info(struct hwloc_topology *topology,
+			 const char *path,
+			 int prefixlength,
+			 uint64_t *local_memory,
+			 uint64_t *meminfo_hugepages_count,
+			 uint64_t *meminfo_hugepages_size,
+			 int onlytotal)
 {
   char string[64];
   FILE *fd;
 
+  fd = hwloc_fopen(path, "r", topology->backend_params.sysfs.root_fd);
+  if (!fd)
+    return;
+
+  while (fgets(string, sizeof(string), fd) && *string != '\0')
+    {
+      unsigned long long number;
+      if (strlen(string) < (size_t) prefixlength)
+        continue;
+      if (sscanf(string+prefixlength, "MemTotal: %llu kB", (unsigned long long *) &number) == 1) {
+	*local_memory = number << 10;
+	if (onlytotal)
+	  break;
+      }
+      else if (!onlytotal) {
+	if (sscanf(string+prefixlength, "Hugepagesize: %llu", (unsigned long long *) &number) == 1)
+	  *meminfo_hugepages_size = number << 10;
+	else if (sscanf(string+prefixlength, "HugePages_Free: %llu", (unsigned long long *) &number) == 1)
+          /* these are free hugepages, not the total amount of huge pages */
+	  *meminfo_hugepages_count = number;
+      }
+    }
+
+  fclose(fd);
+}
+
+#define SYSFS_NUMA_NODE_PATH_LEN 128
+
+static void
+hwloc_parse_hugepages_info(struct hwloc_topology *topology,
+			   const char *dirpath,
+			   struct hwloc_obj_memory_s *memory,
+			   uint64_t *remaining_local_memory)
+{
+  DIR *dir;
+  struct dirent *dirent;
+  unsigned long index = 1;
+  FILE *hpfd;
+  char line[64];
+  char path[SYSFS_NUMA_NODE_PATH_LEN];
+
+  dir = hwloc_opendir(dirpath, topology->backend_params.sysfs.root_fd);
+  if (dir) {
+    while ((dirent = readdir(dir)) != NULL) {
+      if (strncmp(dirent->d_name, "hugepages-", 10))
+        continue;
+      memory->page_types[index].size = strtoul(dirent->d_name+10, NULL, 0) * 1024ULL;
+      sprintf(path, "%s/%s/nr_hugepages", dirpath, dirent->d_name);
+      hpfd = hwloc_fopen(path, "r", topology->backend_params.sysfs.root_fd);
+      if (hpfd) {
+        if (fgets(line, sizeof(line), hpfd)) {
+          fclose(hpfd);
+          /* these are the actual total amount of huge pages */
+          memory->page_types[index].count = strtoull(line, NULL, 0);
+          *remaining_local_memory -= memory->page_types[index].count * memory->page_types[index].size;
+          index++;
+        }
+      }
+    }
+    closedir(dir);
+    memory->page_types_len = index;
+  }
+}
+
+static void
+hwloc_get_kerrighed_node_meminfo_info(struct hwloc_topology *topology, unsigned long node, struct hwloc_obj_memory_s *memory)
+{
+  char path[128];
+  uint64_t meminfo_hugepages_count, meminfo_hugepages_size = 0;
+
   if (topology->is_thissystem) {
     memory->page_types_len = 2;
     memory->page_types = malloc(2*sizeof(*memory->page_types));
     memset(memory->page_types, 0, 2*sizeof(*memory->page_types));
-
-  /* Try to get the hugepage size from sysconf in case we fail to get it from /proc/meminfo later */
+    /* Try to get the hugepage size from sysconf in case we fail to get it from /proc/meminfo later */
 #ifdef HAVE__SC_LARGE_PAGESIZE
     memory->page_types[1].size = sysconf(_SC_LARGE_PAGESIZE);
 #endif
     memory->page_types[0].size = getpagesize();
   }
 
-  fd = hwloc_fopen(path, "r", topology->backend_params.sysfs.root_fd);
-  if (!fd)
-    return;
+  snprintf(path, sizeof(path), "/proc/nodes/node%lu/meminfo", node);
+  hwloc_parse_meminfo_info(topology, path, 0 /* no prefix */,
+			   &memory->local_memory,
+			   &meminfo_hugepages_count, &meminfo_hugepages_size,
+			   memory->page_types == NULL);
 
-  while (fgets(string, sizeof(string), fd) && *string != '\0')
-    {
-      unsigned long long number;
-      if (sscanf(string, "MemTotal: %llu kB", &number) == 1)
-	memory->local_memory = number << 10;
-      else if (memory->page_types && sscanf(string, "Hugepagesize: %llu", &number) == 1)
-	memory->page_types[1].size = number << 10;
-      else if (memory->page_types && sscanf(string, "HugePages_Free: %llu", &number) == 1)
-	memory->page_types[1].count = number;
+  if (memory->page_types) {
+    uint64_t remaining_local_memory = memory->local_memory;
+    if (meminfo_hugepages_size) {
+      memory->page_types[1].size = meminfo_hugepages_size;
+      memory->page_types[1].count = meminfo_hugepages_count;
+      remaining_local_memory -= meminfo_hugepages_count * meminfo_hugepages_size;
+    } else {
+      memory->page_types_len = 1;
     }
+    memory->page_types[0].count = remaining_local_memory / memory->page_types[0].size;
+  }
+}
 
-  if (memory->page_types)
-    memory->page_types[0].count = (memory->local_memory - memory->page_types[1].count*memory->page_types[1].size) / memory->page_types[0].size;
+static void
+hwloc_get_procfs_meminfo_info(struct hwloc_topology *topology, struct hwloc_obj_memory_s *memory)
+{
+  uint64_t meminfo_hugepages_count, meminfo_hugepages_size = 0;
+  struct stat st;
+  int has_sysfs_hugepages = 0;
+  int types = 2;
+  int err;
 
-  fclose(fd);
+  err = hwloc_stat("/sys/kernel/mm/hugepages", &st, topology->backend_params.sysfs.root_fd);
+  if (!err) {
+    types = 1 + st.st_nlink-2;
+    has_sysfs_hugepages = 1;
+  }
+
+  if (topology->is_thissystem) {
+    memory->page_types_len = types;
+    memory->page_types = malloc(types*sizeof(*memory->page_types));
+    memset(memory->page_types, 0, types*sizeof(*memory->page_types));
+    /* Try to get the hugepage size from sysconf in case we fail to get it from /proc/meminfo later */
+#ifdef HAVE__SC_LARGE_PAGESIZE
+    memory->page_types[1].size = sysconf(_SC_LARGE_PAGESIZE);
+#endif
+    memory->page_types[0].size = getpagesize();
+  }
+
+  hwloc_parse_meminfo_info(topology, "/proc/meminfo", 0 /* no prefix */,
+			   &memory->local_memory,
+			   &meminfo_hugepages_count, &meminfo_hugepages_size,
+			   memory->page_types == NULL);
+
+  if (memory->page_types) {
+    uint64_t remaining_local_memory = memory->local_memory;
+    if (has_sysfs_hugepages) {
+      /* read from node%d/hugepages/hugepages-%skB/nr_hugepages */
+      hwloc_parse_hugepages_info(topology, "/sys/kernel/mm/hugepages", memory, &remaining_local_memory);
+    } else {
+      /* use what we found in meminfo */
+      if (meminfo_hugepages_size) {
+        memory->page_types[1].size = meminfo_hugepages_size;
+        memory->page_types[1].count = meminfo_hugepages_count;
+        remaining_local_memory -= meminfo_hugepages_count * meminfo_hugepages_size;
+      } else {
+        memory->page_types_len = 1;
+      }
+    }
+    memory->page_types[0].count = remaining_local_memory / memory->page_types[0].size;
+  }
 }
 
-#define SYSFS_NUMA_NODE_PATH_LEN 128
-
 static void
 hwloc_sysfs_node_meminfo_info(struct hwloc_topology *topology,
 			     const char *syspath, int node,
 			     struct hwloc_obj_memory_s *memory)
 {
   char path[SYSFS_NUMA_NODE_PATH_LEN];
-  char string[64];
-  FILE *fd;
+  char meminfopath[SYSFS_NUMA_NODE_PATH_LEN];
+  uint64_t meminfo_hugepages_count = 0;
+  uint64_t meminfo_hugepages_size = 0;
+  struct stat st;
+  int has_sysfs_hugepages = 0;
+  int types = 2;
+  int err;
 
-  sprintf(path, "%s/node%d/meminfo", syspath, node);
-  fd = hwloc_fopen(path, "r", topology->backend_params.sysfs.root_fd);
-  if (!fd)
-    return;
+  sprintf(path, "%s/node%d/hugepages", syspath, node);
+  err = hwloc_stat(path, &st, topology->backend_params.sysfs.root_fd);
+  if (!err) {
+    types = 1 + st.st_nlink-2;
+    has_sysfs_hugepages = 1;
+  }
 
   if (topology->is_thissystem) {
-    memory->page_types_len = 2;
-    memory->page_types = malloc(2*sizeof(*memory->page_types));
-    memset(memory->page_types, 0, 2*sizeof(*memory->page_types));
+    memory->page_types_len = types;
+    memory->page_types = malloc(types*sizeof(*memory->page_types));
+    memset(memory->page_types, 0, types*sizeof(*memory->page_types));
   }
 
-  while (fgets(string, sizeof(string), fd) && *string != '\0')
-    {
-      unsigned long long number;
-      if (sscanf(string, "Node %d MemTotal: %llu kB", &node, &number) == 2)
-	memory->local_memory = number << 10;
-      else if (memory->page_types && sscanf(string, "Node %d HugePages_Free: %llu kB", &node, &number) == 2)
-	memory->page_types[1].count = number;
-    }
+  sprintf(meminfopath, "%s/node%d/meminfo", syspath, node);
+  hwloc_parse_meminfo_info(topology, meminfopath,
+			   hwloc_snprintf(NULL, 0, "Node %d ", node),
+			   &memory->local_memory,
+			   &meminfo_hugepages_count, &meminfo_hugepages_size,
+			   memory->page_types == NULL);
 
   if (memory->page_types) {
-    /* hwloc_get_procfs_meminfo_info must have been called earlier */
-    memory->page_types[1].size = topology->levels[0][0]->memory.page_types[1].size;
+    uint64_t remaining_local_memory = memory->local_memory;
+    if (has_sysfs_hugepages) {
+      /* read from node%d/hugepages/hugepages-%skB/nr_hugepages */
+      hwloc_parse_hugepages_info(topology, path, memory, &remaining_local_memory);
+    } else {
+      /* use what we found in meminfo */
+      /* hwloc_get_procfs_meminfo_info must have been called earlier */
+      if (meminfo_hugepages_size) {
+        memory->page_types[1].count = meminfo_hugepages_count;
+        memory->page_types[1].size = topology->levels[0][0]->memory.page_types[1].size;
+        remaining_local_memory -= meminfo_hugepages_count * memory->page_types[1].size;
+      } else {
+        memory->page_types_len = 1;
+      }
+    }
+    /* update what's remaining as normal pages */
     memory->page_types[0].size = getpagesize();
-    memory->page_types[0].count = (memory->local_memory - memory->page_types[1].count*memory->page_types[1].size) / memory->page_types[0].size;
+    memory->page_types[0].count = remaining_local_memory / memory->page_types[0].size;
   }
-
-  fclose(fd);
 }
 
 static void
@@ -1166,39 +1789,67 @@
 look_sysfsnode(struct hwloc_topology *topology, const char *path, unsigned *found)
 {
   unsigned osnode;
-  unsigned nbnodes = 1;
+  unsigned nbnodes = 0;
   DIR *dir;
   struct dirent *dirent;
   hwloc_obj_t node;
+  hwloc_bitmap_t nodeset = hwloc_bitmap_alloc();
 
   *found = 0;
 
+  /* Get the list of nodes first */
   dir = hwloc_opendir(path, topology->backend_params.sysfs.root_fd);
   if (dir)
     {
       while ((dirent = readdir(dir)) != NULL)
 	{
-	  unsigned long numnode;
 	  if (strncmp(dirent->d_name, "node", 4))
 	    continue;
-	  numnode = strtoul(dirent->d_name+4, NULL, 0);
-	  if (nbnodes < numnode+1)
-	    nbnodes = numnode+1;
+	  osnode = strtoul(dirent->d_name+4, NULL, 0);
+	  hwloc_bitmap_set(nodeset, osnode);
+	  nbnodes++;
 	}
       closedir(dir);
     }
 
   if (nbnodes <= 1)
-    return;
+    {
+      hwloc_bitmap_free(nodeset);
+      return;
+    }
 
   /* For convenience, put these declarations inside a block.  Saves us
      from a bunch of mallocs, particularly with the 2D array. */
+
   {
       hwloc_obj_t nodes[nbnodes];
       unsigned distances[nbnodes][nbnodes];
-      for (osnode=0; osnode < nbnodes; osnode++) {
+      unsigned distance_indexes[nbnodes];
+      unsigned index;
+
+      /* Get node indexes now. We need them in order since Linux groups
+       * sparse distances but keep them in order in the sysfs distance files.
+       */
+      index = 0;
+      hwloc_bitmap_foreach_begin (osnode, nodeset) {
+	distance_indexes[index] = osnode;
+	index++;
+      } hwloc_bitmap_foreach_end();
+      hwloc_bitmap_free(nodeset);
+
+#ifdef HWLOC_DEBUG
+      hwloc_debug("%s", "numa distance indexes: ");
+      for (index = 0; index < nbnodes; index++) {
+	hwloc_debug(" %u", distance_indexes[index]);
+      }
+      hwloc_debug("%s", "\n");
+#endif
+
+      /* Get actual distances now */
+      for (index = 0; index < nbnodes; index++) {
           char nodepath[SYSFS_NUMA_NODE_PATH_LEN];
-          hwloc_cpuset_t cpuset;
+          hwloc_bitmap_t cpuset;
+	  osnode = distance_indexes[index];
 
           sprintf(nodepath, "%s/node%u/cpumap", path, osnode);
           cpuset = hwloc_parse_cpumap(nodepath, topology->backend_params.sysfs.root_fd);
@@ -1207,38 +1858,310 @@
 
           node = hwloc_alloc_setup_object(HWLOC_OBJ_NODE, osnode);
           node->cpuset = cpuset;
-          node->nodeset = hwloc_cpuset_alloc();
-          hwloc_cpuset_set(node->nodeset, osnode);
+          node->nodeset = hwloc_bitmap_alloc();
+          hwloc_bitmap_set(node->nodeset, osnode);
 
           hwloc_sysfs_node_meminfo_info(topology, path, osnode, &node->memory);
 
-          hwloc_debug_1arg_cpuset("os node %u has cpuset %s\n",
+          hwloc_debug_1arg_bitmap("os node %u has cpuset %s\n",
                                   osnode, node->cpuset);
           hwloc_insert_object_by_cpuset(topology, node);
-          nodes[osnode] = node;
+          nodes[index] = node;
 
           sprintf(nodepath, "%s/node%u/distance", path, osnode);
-          hwloc_parse_node_distance(nodepath, nbnodes, distances[osnode], topology->backend_params.sysfs.root_fd);
+          hwloc_parse_node_distance(nodepath, nbnodes, distances[index], topology->backend_params.sysfs.root_fd);
       }
 
-      hwloc_setup_misc_level_from_distances(topology, nbnodes, nodes, (unsigned*) distances);
+      hwloc_setup_misc_level_from_distances(topology, nbnodes, nodes, (unsigned *) distances, (unsigned *) distance_indexes);
   }
 
   *found = nbnodes;
 }
 
+/* Reads the entire file and returns bytes read if bytes_read != NULL
+ * Returned pointer can be freed by using free().  */
+static void * 
+hwloc_read_raw(const char *p, const char *p1, size_t *bytes_read, int root_fd)
+{
+  char fname[strlen(p) + 1 + strlen(p1) + 1];
+  char *ret = NULL;
+  struct stat fs;
+
+  snprintf(fname, sizeof(fname), "%s/%s", p, p1);
+
+  int file = hwloc_open(fname, root_fd);
+  if (-1 == file)
+    return NULL;
+  if (fstat(file, &fs)) {
+    close(file);
+    return NULL;
+  }
+
+  ret = (char *) malloc(fs.st_size);
+  if (NULL != ret) {
+    ssize_t cb = read(file, ret, fs.st_size);
+    if (cb == -1) {
+      free(ret);
+      ret = NULL;
+    } else {
+      if (NULL != bytes_read)
+        *bytes_read = cb;
+    }
+  }
+  close(file);
+  return ret;
+}
+
+/* Reads the entire file and returns it as a 0-terminated string
+ * Returned pointer can be freed by using free().  */
+static char *
+hwloc_read_str(const char *p, const char *p1, int root_fd)
+{
+  size_t cb = 0;
+  char *ret = hwloc_read_raw(p, p1, &cb, root_fd);
+  if ((NULL != ret) && (0 < cb) && (0 != ret[cb-1])) {
+    ret = realloc(ret, cb + 1);
+    ret[cb] = 0;
+  }
+  return ret;
+}
+
+/* Reads first 32bit bigendian value */
+static size_t 
+hwloc_read_unit32be(const char *p, const char *p1, uint32_t *buf, int root_fd)
+{
+  size_t cb = 0;
+  uint32_t *tmp = hwloc_read_raw(p, p1, &cb, root_fd);
+  if (sizeof(*buf) != cb) {
+    errno = EINVAL;
+    return -1;
+  }
+  *buf = htonl(*tmp);
+  free(tmp);
+  return sizeof(*buf);
+}
+
+typedef struct {
+  unsigned int n, allocated;
+  struct {
+    hwloc_bitmap_t cpuset;
+    uint32_t ibm_phandle;
+    uint32_t l2_cache;
+    char *name;
+  } *p;
+} device_tree_cpus_t;
+
+static void
+add_device_tree_cpus_node(device_tree_cpus_t *cpus, hwloc_bitmap_t cpuset,
+    uint32_t l2_cache, uint32_t ibm_phandle, const char *name)
+{
+  if (cpus->n == cpus->allocated) {
+    if (!cpus->allocated)
+      cpus->allocated = 64;
+    else
+      cpus->allocated *= 2;
+    cpus->p = realloc(cpus->p, cpus->allocated * sizeof(cpus->p[0]));
+  }
+  cpus->p[cpus->n].ibm_phandle = ibm_phandle;
+  cpus->p[cpus->n].cpuset = (NULL == cpuset)?NULL:hwloc_bitmap_dup(cpuset);
+  cpus->p[cpus->n].l2_cache = l2_cache;
+  cpus->p[cpus->n].name = strdup(name);
+  ++cpus->n;
+}
+
+/* Walks over the cache list in order to detect nested caches and CPU mask for each */
+static int
+look_powerpc_device_tree_discover_cache(device_tree_cpus_t *cpus,
+    uint32_t ibm_phandle, unsigned int *level, hwloc_bitmap_t cpuset)
+{
+  int ret = -1;
+  if ((NULL == level) || (NULL == cpuset))
+    return ret;
+  for (unsigned int i = 0; i < cpus->n; ++i) {
+    if (ibm_phandle != cpus->p[i].l2_cache)
+      continue;
+    if (NULL != cpus->p[i].cpuset) {
+      hwloc_bitmap_or(cpuset, cpuset, cpus->p[i].cpuset);
+      ret = 0;
+    } else {
+      ++(*level);
+      if (0 == look_powerpc_device_tree_discover_cache(cpus,
+            cpus->p[i].ibm_phandle, level, cpuset))
+        ret = 0;
+    }
+  }
+  return ret;
+}
+
+static void
+try_add_cache_from_device_tree_cpu(struct hwloc_topology *topology,
+  const char *cpu, unsigned int level, hwloc_bitmap_t cpuset)
+{
+  /* Ignore Instruction caches */
+  /* d-cache-block-size - ignore */
+  /* d-cache-line-size - to read, in bytes */
+  /* d-cache-sets - ignore */
+  /* d-cache-size - to read, in bytes */ 
+  /* d-tlb-sets - ignore */
+  /* d-tlb-size - ignore, always 0 on power6 */
+  /* i-cache-* and i-tlb-* represent instruction cache, ignore */
+  uint32_t d_cache_line_size = 0, d_cache_size = 0;
+
+  hwloc_read_unit32be(cpu, "d-cache-line-size", &d_cache_line_size,
+      topology->backend_params.sysfs.root_fd);
+  hwloc_read_unit32be(cpu, "d-cache-size", &d_cache_size,
+      topology->backend_params.sysfs.root_fd);
+
+  if ( (0 == d_cache_line_size) && (0 == d_cache_size) )
+    return;
+
+  struct hwloc_obj *c = hwloc_alloc_setup_object(HWLOC_OBJ_CACHE, -1);
+  c->attr->cache.depth = level;
+  c->attr->cache.linesize = d_cache_line_size;
+  c->attr->cache.size = d_cache_size;
+  c->cpuset = hwloc_bitmap_dup(cpuset);
+  hwloc_debug_1arg_bitmap("cache depth %d has cpuset %s\n", level, c->cpuset);
+  hwloc_insert_object_by_cpuset(topology, c);
+}
+
+/* 
+ * Discovers L1/L2/L3 cache information on IBM PowerPC systems for old kernels (RHEL5.*)
+ * which provide NUMA nodes information without any details
+ */
+static void
+look_powerpc_device_tree(struct hwloc_topology *topology)
+{
+  device_tree_cpus_t cpus = { .n = 0, .p = NULL, .allocated = 0 };
+  const char ofroot[] = "/proc/device-tree/cpus";
+
+  int root_fd = topology->backend_params.sysfs.root_fd;
+  DIR *dt = hwloc_opendir(ofroot, root_fd);
+  if (NULL == dt)
+    return;
+
+  struct dirent *dirent;
+  while (NULL != (dirent = readdir(dt))) {
+
+    if ('.' == dirent->d_name[0])
+      continue;
+
+    char cpu[sizeof(ofroot) + 1 + strlen(dirent->d_name) + 1];
+    snprintf(cpu, sizeof(cpu), "%s/%s", ofroot, dirent->d_name);
+    struct stat statbuf;
+    int err;
+
+    err = hwloc_stat(cpu, &statbuf, root_fd);
+    if (err < 0 || !S_ISDIR(statbuf.st_mode))
+      continue;
+
+    char *device_type = hwloc_read_str(cpu, "device_type", root_fd);
+    if (NULL == device_type)
+      continue;
+
+    uint32_t reg = -1, l2_cache = -1, ibm_phandle = -1;
+    hwloc_read_unit32be(cpu, "reg", &reg, root_fd);
+    hwloc_read_unit32be(cpu, "l2-cache", &l2_cache, root_fd);
+    hwloc_read_unit32be(cpu, "ibm,phandle", &ibm_phandle, root_fd);
+
+    if (0 == strcmp(device_type, "cache")) {
+      add_device_tree_cpus_node(&cpus, NULL, l2_cache, ibm_phandle, dirent->d_name); 
+    }
+    else if (0 == strcmp(device_type, "cpu")) {
+      /* Found CPU */
+      hwloc_bitmap_t cpuset = NULL;
+      size_t cb = 0;
+      uint32_t *threads = hwloc_read_raw(cpu, "ibm,ppc-interrupt-server#s", &cb, root_fd);
+      uint32_t nthreads = cb / sizeof(threads[0]);
+
+      if (NULL != threads) {
+        cpuset = hwloc_bitmap_alloc();
+        for (unsigned int i = 0; i < nthreads; ++i) {
+          hwloc_bitmap_set(cpuset, ntohl(threads[i]));
+        }
+        free(threads);
+      } else if ((unsigned int)-1 != reg) {
+        cpuset = hwloc_bitmap_alloc();
+        hwloc_bitmap_set(cpuset, reg);
+      }
+
+      if (NULL == cpuset) {
+        hwloc_debug("%s has no \"reg\" property, skipping\n", cpu);
+      } else {
+        add_device_tree_cpus_node(&cpus, cpuset, l2_cache, ibm_phandle, dirent->d_name); 
+
+        /* Add core */
+        struct hwloc_obj *core = hwloc_alloc_setup_object(HWLOC_OBJ_CORE, reg);
+        core->cpuset = hwloc_bitmap_dup(cpuset);
+        hwloc_insert_object_by_cpuset(topology, core);
+
+        /* Add L1 cache */
+        try_add_cache_from_device_tree_cpu(topology, cpu, 1, cpuset);
+
+        hwloc_bitmap_free(cpuset);
+      }
+      free(device_type);
+    }
+  }
+  closedir(dt);
+
+  /* No cores and L2 cache were found, exiting */
+  if (0 == cpus.n) {
+    hwloc_debug("No cores and L2 cache were found in %s, exiting\n", ofroot);
+    return;
+  }
+
+#ifdef HWLOC_DEBUG
+  for (unsigned int i = 0; i < cpus.n; ++i) {
+    hwloc_debug("%i: %s  ibm,phandle=%08X l2_cache=%08X ",
+      i, cpus.p[i].name, cpus.p[i].ibm_phandle, cpus.p[i].l2_cache);
+    if (NULL == cpus.p[i].cpuset) {
+      hwloc_debug("%s\n", "no cpuset");
+    } else {
+      hwloc_debug_bitmap("cpuset %s\n", cpus.p[i].cpuset);
+    }
+  }
+#endif
+
+  /* Scan L2/L3/... caches */
+  for (unsigned int i = 0; i < cpus.n; ++i) {
+    /* Skip real CPUs */
+    if (NULL != cpus.p[i].cpuset)
+      continue;
+
+    /* Calculate cache level and CPU mask */
+    unsigned int level = 2;
+    hwloc_bitmap_t cpuset = hwloc_bitmap_alloc();
+    if (0 == look_powerpc_device_tree_discover_cache(&cpus,
+          cpus.p[i].ibm_phandle, &level, cpuset)) {
+
+      char cpu[sizeof(ofroot) + 1 + strlen(cpus.p[i].name) + 1];
+      snprintf(cpu, sizeof(cpu), "%s/%s", ofroot, cpus.p[i].name);
+
+      try_add_cache_from_device_tree_cpu(topology, cpu, level, cpuset);
+    }
+    hwloc_bitmap_free(cpuset);
+  }
+
+  /* Do cleanup */
+  for (unsigned int i = 0; i < cpus.n; ++i) {
+    hwloc_bitmap_free(cpus.p[i].cpuset);
+    free(cpus.p[i].name);
+  }
+  free(cpus.p);
+}
+
 /* Look at Linux' /sys/devices/system/cpu/cpu%d/topology/ */
 static void
 look_sysfscpu(struct hwloc_topology *topology, const char *path)
 {
-  hwloc_cpuset_t cpuset; /* Set of cpus for which we have topology information */
+  hwloc_bitmap_t cpuset; /* Set of cpus for which we have topology information */
 #define CPU_TOPOLOGY_STR_LEN 128
   char str[CPU_TOPOLOGY_STR_LEN];
   DIR *dir;
   int i,j;
   FILE *fd;
 
-  cpuset = hwloc_cpuset_alloc();
+  cpuset = hwloc_bitmap_alloc();
 
   /* fill the cpuset of interesting cpus */
   dir = hwloc_opendir(path, topology->backend_params.sysfs.root_fd);
@@ -1252,11 +2175,8 @@
 	continue;
       cpu = strtoul(dirent->d_name+3, NULL, 0);
 
-      if (cpu >= HWLOC_NBMAXCPUS)
-        continue;
-
       /* Maybe we don't have topology information but at least it exists */
-      hwloc_cpuset_set(topology->levels[0][0]->complete_cpuset, cpu);
+      hwloc_bitmap_set(topology->levels[0][0]->complete_cpuset, cpu);
 
       /* check whether this processor is online */
       sprintf(str, "%s/cpu%lu/online", path, cpu);
@@ -1268,7 +2188,7 @@
 	    hwloc_debug("os proc %lu is online\n", cpu);
 	  } else {
 	    hwloc_debug("os proc %lu is offline\n", cpu);
-            hwloc_cpuset_clr(topology->levels[0][0]->online_cpuset, cpu);
+            hwloc_bitmap_clr(topology->levels[0][0]->online_cpuset, cpu);
 	  }
 	} else {
 	  fclose(fd);
@@ -1283,19 +2203,20 @@
 	continue;
       }
 
-      hwloc_cpuset_set(cpuset, cpu);
+      hwloc_bitmap_set(cpuset, cpu);
     }
     closedir(dir);
   }
 
   topology->support.discovery->pu = 1;
-  hwloc_debug_1arg_cpuset("found %d cpu topologies, cpuset %s\n",
-	     hwloc_cpuset_weight(cpuset), cpuset);
+  hwloc_debug_1arg_bitmap("found %d cpu topologies, cpuset %s\n",
+	     hwloc_bitmap_weight(cpuset), cpuset);
 
-  hwloc_cpuset_foreach_begin(i, cpuset)
+  unsigned caches_added = 0;
+  hwloc_bitmap_foreach_begin(i, cpuset)
     {
       struct hwloc_obj *socket, *core, *thread;
-      hwloc_cpuset_t socketset, coreset, threadset;
+      hwloc_bitmap_t socketset, coreset, threadset, savedcoreset;
       unsigned mysocketid, mycoreid;
 
       /* look at the socket */
@@ -1305,17 +2226,16 @@
 
       sprintf(str, "%s/cpu%d/topology/core_siblings", path, i);
       socketset = hwloc_parse_cpumap(str, topology->backend_params.sysfs.root_fd);
-      if (socketset && hwloc_cpuset_weight(socketset) >= 1) {
-        if (hwloc_cpuset_first(socketset) == i) {
-          /* first cpu in this socket, add the socket */
-          socket = hwloc_alloc_setup_object(HWLOC_OBJ_SOCKET, mysocketid);
-          socket->cpuset = socketset;
-          hwloc_debug_1arg_cpuset("os socket %u has cpuset %s\n",
+      if (socketset && hwloc_bitmap_first(socketset) == i) {
+        /* first cpu in this socket, add the socket */
+        socket = hwloc_alloc_setup_object(HWLOC_OBJ_SOCKET, mysocketid);
+        socket->cpuset = socketset;
+        hwloc_debug_1arg_bitmap("os socket %u has cpuset %s\n",
                      mysocketid, socketset);
-          hwloc_insert_object_by_cpuset(topology, socket);
-        } else
-          hwloc_cpuset_free(socketset);
+        hwloc_insert_object_by_cpuset(topology, socket);
+        socketset = NULL; /* don't free it */
       }
+      hwloc_bitmap_free(socketset);
 
       /* look at the core */
       mycoreid = 0; /* shut-up the compiler */
@@ -1324,25 +2244,24 @@
 
       sprintf(str, "%s/cpu%d/topology/thread_siblings", path, i);
       coreset = hwloc_parse_cpumap(str, topology->backend_params.sysfs.root_fd);
-      if (coreset && hwloc_cpuset_weight(coreset) >= 1) {
-        if (hwloc_cpuset_first(coreset) == i) {
-          core = hwloc_alloc_setup_object(HWLOC_OBJ_CORE, mycoreid);
-          core->cpuset = coreset;
-          hwloc_debug_1arg_cpuset("os core %u has cpuset %s\n",
+      savedcoreset = coreset; /* store it for later work-arounds */
+      if (coreset && hwloc_bitmap_first(coreset) == i) {
+        core = hwloc_alloc_setup_object(HWLOC_OBJ_CORE, mycoreid);
+        core->cpuset = coreset;
+        hwloc_debug_1arg_bitmap("os core %u has cpuset %s\n",
                      mycoreid, coreset);
-          hwloc_insert_object_by_cpuset(topology, core);
-        } else
-          hwloc_cpuset_free(coreset);
+        hwloc_insert_object_by_cpuset(topology, core);
+        coreset = NULL; /* don't free it */
       }
 
       /* look at the thread */
-      threadset = hwloc_cpuset_alloc();
-      hwloc_cpuset_cpu(threadset, i);
+      threadset = hwloc_bitmap_alloc();
+      hwloc_bitmap_only(threadset, i);
 
       /* add the thread */
       thread = hwloc_alloc_setup_object(HWLOC_OBJ_PU, i);
       thread->cpuset = threadset;
-      hwloc_debug_1arg_cpuset("thread %d has cpuset %s\n",
+      hwloc_debug_1arg_bitmap("thread %d has cpuset %s\n",
 		 i, threadset);
       hwloc_insert_object_by_cpuset(topology, thread);
 
@@ -1352,8 +2271,9 @@
 	char mappath[SHARED_CPU_MAP_STRLEN];
 	char str2[20]; /* enough for a level number (one digit) or a type (Data/Instruction/Unified) */
 	struct hwloc_obj *cache;
-	hwloc_cpuset_t cacheset;
+	hwloc_bitmap_t cacheset;
 	unsigned long kB = 0;
+	unsigned linesize = 0;
 	int depth; /* 0 for L1, .... */
 
 	/* get the cache level depth */
@@ -1392,30 +2312,52 @@
 	  fclose(fd);
 	}
 
+	/* get the line size */
+	sprintf(mappath, "%s/cpu%d/cache/index%d/coherency_line_size", path, i, j);
+	fd = hwloc_fopen(mappath, "r", topology->backend_params.sysfs.root_fd);
+	if (fd) {
+	  if (fgets(str2,sizeof(str2), fd))
+	    linesize = atol(str2); /* in bytes */
+	  fclose(fd);
+	}
+
 	sprintf(mappath, "%s/cpu%d/cache/index%d/shared_cpu_map", path, i, j);
 	cacheset = hwloc_parse_cpumap(mappath, topology->backend_params.sysfs.root_fd);
         if (cacheset) {
-          if (hwloc_cpuset_weight(cacheset) < 1)
-            /* mask is wrong (happens on ia64), assumes it's not shared */
-            hwloc_cpuset_cpu(cacheset, i);
+          if (hwloc_bitmap_weight(cacheset) < 1) {
+            /* mask is wrong (useful for many itaniums) */
+            if (savedcoreset)
+              /* assume it's a core-specific cache */
+              hwloc_bitmap_copy(cacheset, savedcoreset);
+            else
+              /* assumes it's not shared */
+              hwloc_bitmap_only(cacheset, i);
+          }
 
-          if (hwloc_cpuset_first(cacheset) == i) {
+          if (hwloc_bitmap_first(cacheset) == i) {
             /* first cpu in this cache, add the cache */
             cache = hwloc_alloc_setup_object(HWLOC_OBJ_CACHE, -1);
             cache->attr->cache.size = kB << 10;
             cache->attr->cache.depth = depth+1;
+            cache->attr->cache.linesize = linesize;
             cache->cpuset = cacheset;
-            hwloc_debug_1arg_cpuset("cache depth %d has cpuset %s\n",
+            hwloc_debug_1arg_bitmap("cache depth %d has cpuset %s\n",
                        depth, cacheset);
             hwloc_insert_object_by_cpuset(topology, cache);
-          } else
-            hwloc_cpuset_free(cacheset);
+            cacheset = NULL; /* don't free it */
+            ++caches_added;
+          }
         }
+        hwloc_bitmap_free(cacheset);
       }
+      hwloc_bitmap_free(coreset);
     }
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 
-  hwloc_cpuset_free(cpuset);
+  if (0 == caches_added)
+    look_powerpc_device_tree(topology);
+
+  hwloc_bitmap_free(cpuset);
 }
 
 
@@ -1423,9 +2365,10 @@
 #      define PROCESSOR	"processor"
 #      define PHYSID "physical id"
 #      define COREID "core id"
+#define HWLOC_NBMAXCPUS 1024 /* FIXME: drop */
 static int
 look_cpuinfo(struct hwloc_topology *topology, const char *path,
-	     hwloc_cpuset_t online_cpuset)
+	     hwloc_bitmap_t online_cpuset)
 {
   FILE *fd;
   char str[strlen(PHYSID)+1+9+1+1];
@@ -1446,7 +2389,7 @@
   unsigned missingcore;
   unsigned long processor = (unsigned long) -1;
   unsigned i;
-  hwloc_cpuset_t cpuset;
+  hwloc_bitmap_t cpuset;
   hwloc_obj_t obj;
 
   for (i = 0; i < HWLOC_NBMAXCPUS; i++) {
@@ -1464,7 +2407,7 @@
       return -1;
     }
 
-  cpuset = hwloc_cpuset_alloc();
+  cpuset = hwloc_bitmap_alloc();
   /* Just record information and count number of sockets and cores */
 
   hwloc_debug("%s", "\n\n * Topology extraction from /proc/cpuinfo *\n\n");
@@ -1478,26 +2421,26 @@
 	if (endptr==c)							\
 	  {								\
             hwloc_debug("%s", "no number in "field" field of /proc/cpuinfo\n"); \
-            hwloc_cpuset_free(cpuset);					\
+            hwloc_bitmap_free(cpuset);					\
             return -1;							\
 	  }								\
 	else if (var==ULONG_MAX)						\
 	  {								\
             hwloc_debug("%s", "too big "field" number in /proc/cpuinfo\n"); \
-            hwloc_cpuset_free(cpuset);					\
+            hwloc_bitmap_free(cpuset);					\
             return -1;							\
 	  }								\
 	hwloc_debug(field " %lu\n", var)
 #      define getprocnb_end()			\
       }
       getprocnb_begin(PROCESSOR,processor);
-      hwloc_cpuset_set(cpuset, processor);
+      hwloc_bitmap_set(cpuset, processor);
 
       obj = hwloc_alloc_setup_object(HWLOC_OBJ_PU, processor);
-      obj->cpuset = hwloc_cpuset_alloc();
-      hwloc_cpuset_cpu(obj->cpuset, processor);
+      obj->cpuset = hwloc_bitmap_alloc();
+      hwloc_bitmap_only(obj->cpuset, processor);
 
-      hwloc_debug_2args_cpuset("cpu %u (os %lu) has cpuset %s\n",
+      hwloc_debug_2args_bitmap("cpu %u (os %lu) has cpuset %s\n",
 		 numprocs, processor, obj->cpuset);
       numprocs++;
       hwloc_insert_object_by_cpuset(topology, obj);
@@ -1536,18 +2479,18 @@
   fclose(fd);
 
   if (processor == (unsigned long) -1) {
-    hwloc_cpuset_free(cpuset);
+    hwloc_bitmap_free(cpuset);
     return -1;
   }
 
   topology->support.discovery->pu = 1;
   /* setup the final number of procs */
   procid_max = processor + 1;
-  hwloc_cpuset_copy(online_cpuset, cpuset);
-  hwloc_cpuset_free(cpuset);
+  hwloc_bitmap_copy(online_cpuset, cpuset);
+  hwloc_bitmap_free(cpuset);
 
   hwloc_debug("%u online processors found, with id max %u\n", numprocs, procid_max);
-  hwloc_debug_cpuset("online processor cpuset: %s\n", online_cpuset);
+  hwloc_debug_bitmap("online processor cpuset: %s\n", online_cpuset);
 
   hwloc_debug("%s", "\n * Topology summary *\n");
   hwloc_debug("%u processors (%u max id)\n", numprocs, procid_max);
@@ -1556,7 +2499,7 @@
    * provide bogus information. We should rather drop it. */
   missingsocket=0;
   missingcore=0;
-  hwloc_cpuset_foreach_begin(processor, online_cpuset)
+  hwloc_bitmap_foreach_begin(processor, online_cpuset)
     if (proc_physids[processor] == (unsigned) -1)
       missingsocket=1;
     if (proc_coreids[processor] == (unsigned) -1)
@@ -1564,12 +2507,14 @@
     if (missingcore && missingsocket)
       /* No usable information, no need to continue */
       break;
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 
   hwloc_debug("%u sockets%s\n", numsockets, missingsocket ? ", but some missing socket" : "");
   if (!missingsocket && numsockets>0)
     hwloc_setup_level(procid_max, numsockets, osphysids, proc_physids, topology, HWLOC_OBJ_SOCKET);
 
+  look_powerpc_device_tree(topology);
+
   hwloc_debug("%u cores%s\n", numcores, missingcore ? ", but some missing core" : "");
   if (!missingcore && numcores>0)
     hwloc_setup_level(procid_max, numcores, oscoreids, proc_coreids, topology, HWLOC_OBJ_CORE);
@@ -1578,49 +2523,59 @@
 }
 
 static void
-hwloc__get_dmi_info(struct hwloc_topology *topology,
-		   char **dmi_board_vendor, char **dmi_board_name)
+hwloc__get_dmi_one_info(struct hwloc_topology *topology, hwloc_obj_t obj, char *sysfs_name, char *hwloc_name)
 {
-#define DMI_BOARD_STRINGS_LEN 50
-  char dmi_line[DMI_BOARD_STRINGS_LEN];
+  char sysfs_path[128];
+  char dmi_line[64];
   char *tmp;
   FILE *fd;
 
-  dmi_line[0] = '\0';
-  fd = hwloc_fopen("/sys/class/dmi/id/board_vendor", "r", topology->backend_params.sysfs.root_fd);
-  if (fd) {
-    tmp = fgets(dmi_line, DMI_BOARD_STRINGS_LEN, fd);
-    fclose (fd);
-    if (tmp && dmi_line[0] != '\0') {
-      tmp = strchr(dmi_line, '\n');
-      if (tmp)
-	*tmp = '\0';
-      *dmi_board_vendor = strdup(dmi_line);
-      hwloc_debug("found DMI board vendor '%s'\n", *dmi_board_vendor);
-    }
-  }
+  snprintf(sysfs_path, sizeof(sysfs_path), "/sys/class/dmi/id/%s", sysfs_name);
 
   dmi_line[0] = '\0';
-  fd = hwloc_fopen("/sys/class/dmi/id/board_name", "r", topology->backend_params.sysfs.root_fd);
+  fd = hwloc_fopen(sysfs_path, "r", topology->backend_params.sysfs.root_fd);
   if (fd) {
-    tmp = fgets(dmi_line, DMI_BOARD_STRINGS_LEN, fd);
+    tmp = fgets(dmi_line, sizeof(dmi_line), fd);
     fclose (fd);
     if (tmp && dmi_line[0] != '\0') {
       tmp = strchr(dmi_line, '\n');
       if (tmp)
 	*tmp = '\0';
-      *dmi_board_name = strdup(dmi_line);
-      hwloc_debug("found DMI board name '%s'\n", *dmi_board_name);
+      hwloc_debug("found %s '%s'\n", hwloc_name, dmi_line);
+      hwloc_add_object_info(obj, hwloc_name, dmi_line);
     }
   }
 }
 
+static void
+hwloc__get_dmi_info(struct hwloc_topology *topology, hwloc_obj_t obj)
+{
+  hwloc__get_dmi_one_info(topology, obj, "product_name", "DMIProductName");
+  hwloc__get_dmi_one_info(topology, obj, "product_version", "DMIProductVersion");
+  hwloc__get_dmi_one_info(topology, obj, "product_serial", "DMIProductSerial");
+  hwloc__get_dmi_one_info(topology, obj, "product_uuid", "DMIProductUUID");
+  hwloc__get_dmi_one_info(topology, obj, "board_vendor", "DMIBoardVendor");
+  hwloc__get_dmi_one_info(topology, obj, "board_name", "DMIBoardName");
+  hwloc__get_dmi_one_info(topology, obj, "board_version", "DMIBoardVersion");
+  hwloc__get_dmi_one_info(topology, obj, "board_serial", "DMIBoardSerial");
+  hwloc__get_dmi_one_info(topology, obj, "board_asset_tag", "DMIBoardAssetTag");
+  hwloc__get_dmi_one_info(topology, obj, "chassis_vendor", "DMIChassisVendor");
+  hwloc__get_dmi_one_info(topology, obj, "chassis_type", "DMIChassisType");
+  hwloc__get_dmi_one_info(topology, obj, "chassis_version", "DMIChassisVersion");
+  hwloc__get_dmi_one_info(topology, obj, "chassis_serial", "DMIChassisSerial");
+  hwloc__get_dmi_one_info(topology, obj, "chassis_asset_tag", "DMIChassisAssetTag");
+  hwloc__get_dmi_one_info(topology, obj, "bios_vendor", "DMIBIOSVendor");
+  hwloc__get_dmi_one_info(topology, obj, "bios_version", "DMIBIOSVersion");
+  hwloc__get_dmi_one_info(topology, obj, "bios_date", "DMIBIOSDate");
+  hwloc__get_dmi_one_info(topology, obj, "sys_vendor", "DMISysVendor");
+}
+
 void
 hwloc_look_linux(struct hwloc_topology *topology)
 {
   DIR *nodes_dir;
   unsigned nbnodes;
-  char *cpuset_mntpnt, *cgroup_mntpnt, *cpuset_name;
+  char *cpuset_mntpnt, *cgroup_mntpnt, *cpuset_name = NULL;
   int err;
 
   /* Gather the list of admin-disabled cpus and mems */
@@ -1630,7 +2585,6 @@
     if (cpuset_name) {
       hwloc_admin_disable_set_from_cpuset(topology, cgroup_mntpnt, cpuset_mntpnt, cpuset_name, "cpus", topology->levels[0][0]->allowed_cpuset);
       hwloc_admin_disable_set_from_cpuset(topology, cgroup_mntpnt, cpuset_mntpnt, cpuset_name, "mems", topology->levels[0][0]->allowed_nodeset);
-      free(cpuset_name);
     }
     free(cgroup_mntpnt);
     free(cpuset_mntpnt);
@@ -1642,7 +2596,7 @@
     struct dirent *dirent;
     char path[128];
     hwloc_obj_t machine;
-    hwloc_cpuset_t machine_online_set;
+    hwloc_bitmap_t machine_online_set;
 
     /* replace top-level object type with SYSTEM and add some MACHINE underneath */
 
@@ -1655,52 +2609,49 @@
       unsigned long node;
       if (strncmp(dirent->d_name, "node", 4))
 	continue;
-      machine_online_set = hwloc_cpuset_alloc();
+      machine_online_set = hwloc_bitmap_alloc();
       node = strtoul(dirent->d_name+4, NULL, 0);
       snprintf(path, sizeof(path), "/proc/nodes/node%lu/cpuinfo", node);
       err = look_cpuinfo(topology, path, machine_online_set);
       if (err < 0)
         continue;
-      hwloc_cpuset_or(topology->levels[0][0]->online_cpuset, topology->levels[0][0]->online_cpuset, machine_online_set);
+      hwloc_bitmap_or(topology->levels[0][0]->online_cpuset, topology->levels[0][0]->online_cpuset, machine_online_set);
       machine = hwloc_alloc_setup_object(HWLOC_OBJ_MACHINE, node);
       machine->cpuset = machine_online_set;
-      machine->attr->machine.dmi_board_name = NULL;
-      machine->attr->machine.dmi_board_vendor = NULL;
-      hwloc_debug_1arg_cpuset("machine number %lu has cpuset %s\n",
+      hwloc_debug_1arg_bitmap("machine number %lu has cpuset %s\n",
 		 node, machine_online_set);
       hwloc_insert_object_by_cpuset(topology, machine);
 
-      snprintf(path, sizeof(path), "/proc/nodes/node%lu/meminfo", node);
       /* Get the machine memory attributes */
-      hwloc_get_procfs_meminfo_info(topology, path, &machine->memory);
+      hwloc_get_kerrighed_node_meminfo_info(topology, node, &machine->memory);
 
       /* Gather DMI info */
       /* FIXME: get the right DMI info of each machine */
-      hwloc__get_dmi_info(topology,
-			 &machine->attr->machine.dmi_board_vendor,
-			 &machine->attr->machine.dmi_board_name);
+      hwloc__get_dmi_info(topology, machine);
     }
     closedir(nodes_dir);
   } else {
     /* Get the machine memory attributes */
-    hwloc_get_procfs_meminfo_info(topology, "/proc/meminfo", &topology->levels[0][0]->memory);
+    hwloc_get_procfs_meminfo_info(topology, &topology->levels[0][0]->memory);
 
     /* Gather NUMA information. Must be after hwloc_get_procfs_meminfo_info so that the hugepage size is known */
     look_sysfsnode(topology, "/sys/devices/system/node", &nbnodes);
 
     /* if we found some numa nodes, the machine object has no local memory */
     if (nbnodes) {
+      unsigned i;
       topology->levels[0][0]->memory.local_memory = 0;
-      if (topology->levels[0][0]->memory.page_types) {
-        topology->levels[0][0]->memory.page_types[0].count = 0;
-        topology->levels[0][0]->memory.page_types[1].count = 0;
-      }
+      if (topology->levels[0][0]->memory.page_types)
+        for(i=0; i<topology->levels[0][0]->memory.page_types_len; i++)
+          topology->levels[0][0]->memory.page_types[i].count = 0;
     }
 
     /* Gather the list of cpus now */
     if (getenv("HWLOC_LINUX_USE_CPUINFO")
-	|| hwloc_access("/sys/devices/system/cpu/cpu0/topology", R_OK, topology->backend_params.sysfs.root_fd) < 0) {
-	/* revert to reading cpuinfo only if /sys/.../topology unavailable (before 2.6.16) */
+	|| (hwloc_access("/sys/devices/system/cpu/cpu0/topology/core_siblings", R_OK, topology->backend_params.sysfs.root_fd) < 0
+	    && hwloc_access("/sys/devices/system/cpu/cpu0/topology/thread_siblings", R_OK, topology->backend_params.sysfs.root_fd) < 0)) {
+	/* revert to reading cpuinfo only if /sys/.../topology unavailable (before 2.6.16)
+	 * or not containing anything interesting */
       err = look_cpuinfo(topology, "/proc/cpuinfo", topology->levels[0][0]->online_cpuset);
       if (err < 0) {
         if (topology->is_thissystem)
@@ -1715,10 +2666,18 @@
     }
 
     /* Gather DMI info */
-    hwloc__get_dmi_info(topology,
-		       &topology->levels[0][0]->attr->machine.dmi_board_vendor,
-		       &topology->levels[0][0]->attr->machine.dmi_board_name);
+    hwloc__get_dmi_info(topology, topology->levels[0][0]);
   }
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "Linux");
+  if (cpuset_name) {
+    hwloc_add_object_info(topology->levels[0][0], "LinuxCgroup", cpuset_name);
+    free(cpuset_name);
+  }
+
+  /* gather uname info if fsroot wasn't changed */
+  if (topology->is_thissystem)
+     hwloc_add_uname_info(topology);
 }
 
 void
@@ -1736,6 +2695,20 @@
 #if HAVE_DECL_PTHREAD_GETAFFINITY_NP
   topology->get_thread_cpubind = hwloc_linux_get_thread_cpubind;
 #endif /* HAVE_DECL_PTHREAD_GETAFFINITY_NP */
+#ifdef HWLOC_HAVE_SET_MEMPOLICY
+  topology->set_thisthread_membind = hwloc_linux_set_thisthread_membind;
+  topology->get_thisthread_membind = hwloc_linux_get_thisthread_membind;
+#endif /* HWLOC_HAVE_SET_MEMPOLICY */
+#ifdef HWLOC_HAVE_MBIND
+  topology->set_area_membind = hwloc_linux_set_area_membind;
+  topology->alloc_membind = hwloc_linux_alloc_membind;
+  topology->alloc = hwloc_alloc_mmap;
+  topology->free_membind = hwloc_linux_free_membind;
+  topology->support.membind->firsttouch_membind = 1;
+  topology->support.membind->bind_membind = 1;
+  topology->support.membind->interleave_membind = 1;
+#endif /* HWLOC_HAVE_MBIND */
+#if (defined HWLOC_HAVE_MIGRATE_PAGES) || ((defined HWLOC_HAVE_MBIND) && (defined MPOL_MF_MOVE))
+  topology->support.membind->migrate_membind = 1;
+#endif
 }
-
-/* TODO mbind, setpolicy */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-osf.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-osf.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-osf.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -22,9 +24,19 @@
 #include <numa.h>
 #include <radset.h>
 #include <cpuset.h>
+#include <sys/mman.h>
 
+/*
+ * TODO
+ *
+ * nsg_init(), nsg_attach_pid(), RAD_MIGRATE/RAD_WAIT
+ * assign_pid_to_pset()
+ *
+ * pthread_use_only_cpu too?
+ */
+
 static int
-prepare_radset(hwloc_topology_t topology, radset_t *radset, hwloc_const_cpuset_t hwloc_set)
+prepare_radset(hwloc_topology_t topology, radset_t *radset, hwloc_const_bitmap_t hwloc_set)
 {
   unsigned cpu;
   cpuset_t target_cpuset;
@@ -35,9 +47,9 @@
 
   cpusetcreate(&target_cpuset);
   cpuemptyset(target_cpuset);
-  hwloc_cpuset_foreach_begin(cpu, hwloc_set)
+  hwloc_bitmap_foreach_begin(cpu, hwloc_set)
     cpuaddset(target_cpuset, cpu);
-  hwloc_cpuset_foreach_end();
+  hwloc_bitmap_foreach_end();
 
   cpusetcreate(&cpuset);
   cpusetcreate(&xor_cpuset);
@@ -71,20 +83,26 @@
 /* Note: get_cpubind not available on OSF */
 
 static int
-hwloc_osf_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_osf_set_thread_cpubind(hwloc_topology_t topology, hwloc_thread_t thread, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   radset_t radset;
 
-  if (hwloc_cpuset_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
+  if (hwloc_bitmap_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
     if ((errno = pthread_rad_detach(thread)))
       return -1;
     return 0;
   }
 
+  /* Apparently OSF migrates pages */
+  if (flags & HWLOC_CPUBIND_NOMEMBIND) {
+    errno = ENOSYS;
+    return -1;
+  }
+
   if (!prepare_radset(topology, &radset, hwloc_set))
     return -1;
 
-  if (policy & HWLOC_CPUBIND_STRICT) {
+  if (flags & HWLOC_CPUBIND_STRICT) {
     if ((errno = pthread_rad_bind(thread, radset, RAD_INSIST | RAD_WAIT)))
       return -1;
   } else {
@@ -97,20 +115,26 @@
 }
 
 static int
-hwloc_osf_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_osf_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   radset_t radset;
 
-  if (hwloc_cpuset_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
+  if (hwloc_bitmap_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
     if (rad_detach_pid(pid))
       return -1;
     return 0;
   }
 
+  /* Apparently OSF migrates pages */
+  if (flags & HWLOC_CPUBIND_NOMEMBIND) {
+    errno = ENOSYS;
+    return -1;
+  }
+
   if (!prepare_radset(topology, &radset, hwloc_set))
     return -1;
 
-  if (policy & HWLOC_CPUBIND_STRICT) {
+  if (flags & HWLOC_CPUBIND_STRICT) {
     if (rad_bind_pid(pid, radset, RAD_INSIST | RAD_WAIT))
       return -1;
   } else {
@@ -123,26 +147,95 @@
 }
 
 static int
-hwloc_osf_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_osf_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_osf_set_thread_cpubind(topology, pthread_self(), hwloc_set, policy);
+  return hwloc_osf_set_thread_cpubind(topology, pthread_self(), hwloc_set, flags);
 }
 
 static int
-hwloc_osf_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_osf_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_osf_set_proc_cpubind(topology, getpid(), hwloc_set, policy);
+  return hwloc_osf_set_proc_cpubind(topology, getpid(), hwloc_set, flags);
 }
 
-/* TODO: memory
- *
- * nmadvise(addr,len), nmmap()
- * policies: DIRECTED, STRIPPED, first_touch(REPLICATED)
- *
- * nsg_init(), nsg_attach_pid(), RAD_MIGRATE/RAD_WAIT
- * assign_pid_to_pset()
- */
+static int
+hwloc_osf_prepare_mattr(hwloc_topology_t topology __hwloc_attribute_unused, memalloc_attr_t *mattr, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags __hwloc_attribute_unused)
+{
+  unsigned long osf_policy;
+  int node;
 
+  switch (policy) {
+    case HWLOC_MEMBIND_FIRSTTOUCH:
+      osf_policy = MPOL_THREAD;
+      break;
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      osf_policy = MPOL_DIRECTED;
+      break;
+    case HWLOC_MEMBIND_INTERLEAVE:
+      osf_policy = MPOL_STRIPPED;
+      break;
+    case HWLOC_MEMBIND_REPLICATE:
+      osf_policy = MPOL_REPLICATED;
+      break;
+    default:
+      errno = ENOSYS;
+      return -1;
+  }
+
+  memset(mattr, 0, sizeof(*mattr));
+  mattr->mattr_policy = osf_policy;
+  mattr->mattr_rad = RAD_NONE;
+  radsetcreate(&mattr->mattr_radset);
+  rademptyset(mattr->mattr_radset);
+
+  hwloc_bitmap_foreach_begin(node, nodeset)
+    radaddset(mattr->mattr_radset, node);
+  hwloc_bitmap_foreach_end();
+  return 0;
+}
+
+static int
+hwloc_osf_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  memalloc_attr_t mattr;
+  int behavior = 0;
+  int ret;
+
+  if (flags & HWLOC_MEMBIND_MIGRATE)
+    behavior |= MADV_CURRENT;
+  if (flags & HWLOC_MEMBIND_STRICT)
+    behavior |= MADV_INSIST;
+
+  if (hwloc_osf_prepare_mattr(topology, &mattr, nodeset, policy, flags))
+    return -1;
+
+  ret = nmadvise(addr, len, MADV_CURRENT, &mattr);
+  radsetdestroy(&mattr.mattr_radset);
+  return ret;
+}
+
+static void *
+hwloc_osf_alloc_membind(hwloc_topology_t topology, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  memalloc_attr_t mattr;
+  void *ptr;
+
+  if (hwloc_osf_prepare_mattr(topology, &mattr, nodeset, policy, flags))
+    return hwloc_alloc_or_fail(topology, len, flags);
+
+  /* TODO: rather use acreate/amalloc ? */
+  ptr = nmmap(NULL, len, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1,
+               0, &mattr);
+  radsetdestroy(&mattr.mattr_radset);
+  return ptr;
+}
+
+static int
+hwloc_osf_free_membind(hwloc_topology_t topology __hwloc_attribute_unused, void *addr, size_t len) {
+  return munmap(addr, len);
+}
+
 void
 hwloc_look_osf(struct hwloc_topology *topology)
 {
@@ -163,6 +256,7 @@
   {
     hwloc_obj_t nodes[nbnodes];
     unsigned distances[nbnodes][nbnodes];
+    unsigned distance_indexes[nbnodes];
     unsigned nfound;
     numa_attr_t attr = {
       .nattr_type = R_RAD,
@@ -180,7 +274,7 @@
       }
 
       nodes[radid] = obj = hwloc_alloc_setup_object(HWLOC_OBJ_NODE, radid);
-      obj->cpuset = hwloc_cpuset_alloc();
+      obj->cpuset = hwloc_bitmap_alloc();
       obj->memory.local_memory = rad_get_physmem(radid) * getpagesize();
       obj->memory.page_types_len = 2;
       obj->memory.page_types = malloc(2*sizeof(*obj->memory.page_types));
@@ -192,13 +286,15 @@
 
       cursor = SET_CURSOR_INIT;
       while((cpuid = cpu_foreach(cpuset, 0, &cursor)) != CPU_NONE)
-	hwloc_cpuset_set(obj->cpuset, cpuid);
+	hwloc_bitmap_set(obj->cpuset, cpuid);
 
-      hwloc_debug_1arg_cpuset("node %d has cpuset %s\n",
+      hwloc_debug_1arg_bitmap("node %d has cpuset %s\n",
 		 radid, obj->cpuset);
 
       hwloc_insert_object_by_cpuset(topology, obj);
 
+      distance_indexes[radid] = radid;
+
       nfound = 0;
       for (radid2 = 0; radid2 < (radid_t) nbnodes; radid2++)
 	distances[radid][radid2] = RAD_DIST_REMOTE;
@@ -221,7 +317,7 @@
 	  break;
       }
     }
-    hwloc_setup_misc_level_from_distances(topology, nbnodes, nodes, (unsigned*) distances);
+    hwloc_setup_misc_level_from_distances(topology, nbnodes, nodes, (unsigned*) distances, (unsigned*) distance_indexes);
   }
   radsetdestroy(&radset2);
   radsetdestroy(&radset);
@@ -229,6 +325,8 @@
 
   /* add PU objects */
   hwloc_setup_pu_level(topology, hwloc_fallback_nbprocessors(topology));
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "OSF");
 }
 
 void
@@ -238,4 +336,12 @@
   topology->set_thisthread_cpubind = hwloc_osf_set_thisthread_cpubind;
   topology->set_proc_cpubind = hwloc_osf_set_proc_cpubind;
   topology->set_thisproc_cpubind = hwloc_osf_set_thisproc_cpubind;
+  topology->set_area_membind = hwloc_osf_set_area_membind;
+  topology->alloc_membind = hwloc_osf_alloc_membind;
+  topology->alloc = hwloc_alloc_mmap;
+  topology->free_membind = hwloc_osf_free_membind;
+  topology->support.membind->firsttouch_membind = 1;
+  topology->support.membind->bind_membind = 1;
+  topology->support.membind->interleave_membind = 1;
+  topology->support.membind->replicate_membind = 1;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-solaris.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-solaris.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-solaris.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -15,28 +17,89 @@
 #include <sys/types.h>
 #include <sys/processor.h>
 #include <sys/procset.h>
+#include <sys/types.h>
+#include <sys/mman.h>
 
-/* Note: get_cpubind not available on Solaris */
-/* TODO: try to use pset (restricted to super-user) to support cpusets with weigth > 1? */
+#ifdef HAVE_LIBLGRP
+#  include <sys/lgrp_user.h>
+#endif
+
+/* TODO: use psets? (only for root)
+ */
+
 static int
-hwloc_solaris_set_sth_cpubind(hwloc_topology_t topology, idtype_t idtype, id_t id, hwloc_const_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_solaris_set_sth_cpubind(hwloc_topology_t topology, idtype_t idtype, id_t id, hwloc_const_bitmap_t hwloc_set, int flags)
 {
   unsigned target;
 
   /* The resulting binding is always strict */
 
-  if (hwloc_cpuset_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
+  if (hwloc_bitmap_isequal(hwloc_set, hwloc_topology_get_complete_cpuset(topology))) {
     if (processor_bind(idtype, id, PBIND_NONE, NULL) != 0)
       return -1;
+#ifdef HAVE_LIBLGRP
+    if (!(flags & HWLOC_CPUBIND_NOMEMBIND)) {
+      int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+      if (depth >= 0) {
+	int n = hwloc_get_nbobjs_by_depth(topology, depth);
+	int i;
+
+	for (i = 0; i < n; i++) {
+	  hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+	  lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_NONE);
+	}
+      }
+    }
+#endif /* HAVE_LIBLGRP */
     return 0;
   }
 
-  if (hwloc_cpuset_weight(hwloc_set) != 1) {
+#ifdef HAVE_LIBLGRP
+  if (!(flags & HWLOC_CPUBIND_NOMEMBIND)) {
+    int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+    if (depth >= 0) {
+      int n = hwloc_get_nbobjs_by_depth(topology, depth);
+      int i;
+      int ok;
+      hwloc_bitmap_t target = hwloc_bitmap_alloc();
+
+      for (i = 0; i < n; i++) {
+	hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+        if (hwloc_bitmap_isincluded(obj->cpuset, hwloc_set))
+          hwloc_bitmap_or(target, target, obj->cpuset);
+      }
+
+      ok = hwloc_bitmap_isequal(target, hwloc_set);
+      hwloc_bitmap_free(target);
+
+      if (ok) {
+        /* Ok, managed to achieve hwloc_set by just combining NUMA nodes */
+
+        for (i = 0; i < n; i++) {
+          hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+
+          if (hwloc_bitmap_isincluded(obj->cpuset, hwloc_set)) {
+            lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_STRONG);
+          } else {
+            if (flags & HWLOC_CPUBIND_STRICT)
+              lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_NONE);
+            else
+              lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_WEAK);
+          }
+        }
+
+        return 0;
+      }
+    }
+  }
+#endif /* HAVE_LIBLGRP */
+
+  if (hwloc_bitmap_weight(hwloc_set) != 1) {
     errno = EXDEV;
     return -1;
   }
 
-  target = hwloc_cpuset_first(hwloc_set);
+  target = hwloc_bitmap_first(hwloc_set);
 
   if (processor_bind(idtype, id,
 		     (processorid_t) (target), NULL) != 0)
@@ -46,27 +109,222 @@
 }
 
 static int
-hwloc_solaris_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_solaris_set_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_solaris_set_sth_cpubind(topology, P_PID, pid, hwloc_set, policy);
+  return hwloc_solaris_set_sth_cpubind(topology, P_PID, pid, hwloc_set, flags);
 }
 
 static int
-hwloc_solaris_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_solaris_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_solaris_set_sth_cpubind(topology, P_PID, P_MYID, hwloc_set, policy);
+  return hwloc_solaris_set_sth_cpubind(topology, P_PID, P_MYID, hwloc_set, flags);
 }
 
 static int
-hwloc_solaris_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_solaris_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_solaris_set_sth_cpubind(topology, P_LWPID, P_MYID, hwloc_set, policy);
+  return hwloc_solaris_set_sth_cpubind(topology, P_LWPID, P_MYID, hwloc_set, flags);
 }
 
-/* TODO: thread, maybe not easy because of the historical n:m implementation */
+#ifdef HAVE_LIBLGRP
+static int
+hwloc_solaris_get_sth_cpubind(hwloc_topology_t topology, idtype_t idtype, id_t id, hwloc_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  int n;
+  int i;
 
+  if (depth < 0) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  hwloc_bitmap_zero(hwloc_set);
+  n = hwloc_get_nbobjs_by_depth(topology, depth);
+
+  for (i = 0; i < n; i++) {
+    hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+    lgrp_affinity_t aff = lgrp_affinity_get(idtype, id, obj->os_index);
+
+    if (aff == LGRP_AFF_STRONG)
+      hwloc_bitmap_or(hwloc_set, hwloc_set, obj->cpuset);      
+  }
+
+  if (hwloc_bitmap_iszero(hwloc_set))
+    hwloc_bitmap_copy(hwloc_set, hwloc_topology_get_complete_cpuset(topology));
+
+  return 0;
+}
+
+static int
+hwloc_solaris_get_proc_cpubind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_bitmap_t hwloc_set, int flags)
+{
+  return hwloc_solaris_get_sth_cpubind(topology, P_PID, pid, hwloc_set, flags);
+}
+
+static int
+hwloc_solaris_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, int flags)
+{
+  return hwloc_solaris_get_sth_cpubind(topology, P_PID, P_MYID, hwloc_set, flags);
+}
+
+static int
+hwloc_solaris_get_thisthread_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_set, int flags)
+{
+  return hwloc_solaris_get_sth_cpubind(topology, P_LWPID, P_MYID, hwloc_set, flags);
+}
+#endif /* HAVE_LIBLGRP */
+
+/* TODO: given thread, probably not easy because of the historical n:m implementation */
 #ifdef HAVE_LIBLGRP
-#      include <sys/lgrp_user.h>
+static int
+hwloc_solaris_set_sth_membind(hwloc_topology_t topology, idtype_t idtype, id_t id, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  int depth;
+  int n, i;
+
+  switch (policy) {
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      break;
+    default:
+      errno = ENOSYS;
+      return -1;
+  }
+
+  if (flags & HWLOC_MEMBIND_NOCPUBIND) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  if (depth < 0) {
+    errno = EXDEV;
+    return -1;
+  }
+  n = hwloc_get_nbobjs_by_depth(topology, depth);
+
+  for (i = 0; i < n; i++) {
+    hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+    if (hwloc_bitmap_isset(nodeset, obj->os_index)) {
+      lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_STRONG);
+    } else {
+      if (flags & HWLOC_CPUBIND_STRICT)
+	lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_NONE);
+      else
+	lgrp_affinity_set(idtype, id, obj->os_index, LGRP_AFF_WEAK);
+    }
+  }
+
+  return 0;
+}
+
+static int
+hwloc_solaris_set_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  return hwloc_solaris_set_sth_membind(topology, P_PID, pid, nodeset, policy, flags);
+}
+
+static int
+hwloc_solaris_set_thisproc_membind(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  return hwloc_solaris_set_sth_membind(topology, P_PID, P_MYID, nodeset, policy, flags);
+}
+
+static int
+hwloc_solaris_set_thisthread_membind(hwloc_topology_t topology, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags)
+{
+  return hwloc_solaris_set_sth_membind(topology, P_LWPID, P_MYID, nodeset, policy, flags);
+}
+
+static int
+hwloc_solaris_get_sth_membind(hwloc_topology_t topology, idtype_t idtype, id_t id, hwloc_nodeset_t nodeset, hwloc_membind_policy_t *policy, int flags __hwloc_attribute_unused)
+{
+  int depth = hwloc_get_type_depth(topology, HWLOC_OBJ_NODE);
+  int n;
+  int i;
+
+  if (depth < 0) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  hwloc_bitmap_zero(nodeset);
+  n = hwloc_get_nbobjs_by_depth(topology, depth);
+
+  for (i = 0; i < n; i++) {
+    hwloc_obj_t obj = hwloc_get_obj_by_depth(topology, depth, i);
+    lgrp_affinity_t aff = lgrp_affinity_get(idtype, id, obj->os_index);
+
+    if (aff == LGRP_AFF_STRONG)
+      hwloc_bitmap_set(nodeset, obj->os_index);
+  }
+
+  if (hwloc_bitmap_iszero(nodeset))
+    hwloc_bitmap_copy(nodeset, hwloc_topology_get_complete_nodeset(topology));
+
+  *policy = HWLOC_MEMBIND_DEFAULT;
+  return 0;
+}
+
+static int
+hwloc_solaris_get_proc_membind(hwloc_topology_t topology, hwloc_pid_t pid, hwloc_nodeset_t nodeset, hwloc_membind_policy_t *policy, int flags)
+{
+  return hwloc_solaris_get_sth_membind(topology, P_PID, pid, nodeset, policy, flags);
+}
+
+static int
+hwloc_solaris_get_thisproc_membind(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t *policy, int flags)
+{
+  return hwloc_solaris_get_sth_membind(topology, P_PID, P_MYID, nodeset, policy, flags);
+}
+
+static int
+hwloc_solaris_get_thisthread_membind(hwloc_topology_t topology, hwloc_nodeset_t nodeset, hwloc_membind_policy_t *policy, int flags)
+{
+  return hwloc_solaris_get_sth_membind(topology, P_LWPID, P_MYID, nodeset, policy, flags);
+}
+#endif /* HAVE_LIBLGRP */
+
+
+#ifdef MADV_ACCESS_LWP 
+static int
+hwloc_solaris_set_area_membind(hwloc_topology_t topology, const void *addr, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags __hwloc_attribute_unused)
+{
+  int advice;
+  size_t remainder;
+
+  /* Can not give a set of nodes just for an area.  */
+  if (!hwloc_bitmap_isequal(nodeset, hwloc_topology_get_complete_nodeset(topology))) {
+    errno = EXDEV;
+    return -1;
+  }
+
+  switch (policy) {
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      advice = MADV_ACCESS_DEFAULT;
+      break;
+    case HWLOC_MEMBIND_FIRSTTOUCH:
+    case HWLOC_MEMBIND_NEXTTOUCH:
+      advice = MADV_ACCESS_LWP;
+      break;
+    case HWLOC_MEMBIND_INTERLEAVE:
+      advice = MADV_ACCESS_MANY;
+      break;
+    default:
+      errno = ENOSYS;
+      return -1;
+  }
+
+  remainder = (uintptr_t) addr & (sysconf(_SC_PAGESIZE)-1);
+  addr = (char*) addr - remainder;
+  len += remainder;
+  return madvise((void*) addr, len, advice);
+}
+#endif
+
+#ifdef HAVE_LIBLGRP
 static void
 browse(struct hwloc_topology *topology, lgrp_cookie_t cookie, lgrp_id_t lgrp, hwloc_obj_t *glob_lgrps, unsigned *curlgrp)
 {
@@ -78,23 +336,24 @@
   if (n == -1)
     return;
 
+  /* Is this lgrp a NUMA node? */
   if ((mem_size = lgrp_mem_size(cookie, lgrp, LGRP_MEM_SZ_INSTALLED, LGRP_CONTENT_DIRECT)) > 0)
   {
     int i;
     processorid_t cpuids[n];
 
     obj = hwloc_alloc_setup_object(HWLOC_OBJ_NODE, lgrp);
-    obj->nodeset = hwloc_cpuset_alloc();
-    hwloc_cpuset_set(obj->nodeset, lgrp);
-    obj->cpuset = hwloc_cpuset_alloc();
+    obj->nodeset = hwloc_bitmap_alloc();
+    hwloc_bitmap_set(obj->nodeset, lgrp);
+    obj->cpuset = hwloc_bitmap_alloc();
     glob_lgrps[(*curlgrp)++] = obj;
 
     lgrp_cpus(cookie, lgrp, cpuids, n, LGRP_CONTENT_HIERARCHY);
     for (i = 0; i < n ; i++) {
       hwloc_debug("node %ld's cpu %d is %d\n", lgrp, i, cpuids[i]);
-      hwloc_cpuset_set(obj->cpuset, cpuids[i]);
+      hwloc_bitmap_set(obj->cpuset, cpuids[i]);
     }
-    hwloc_debug_1arg_cpuset("node %ld has cpuset %s\n",
+    hwloc_debug_1arg_bitmap("node %ld has cpuset %s\n",
 	lgrp, obj->cpuset);
 
     /* or LGRP_MEM_SZ_FREE */
@@ -150,11 +409,14 @@
 #ifdef HAVE_LGRP_LATENCY_COOKIE
     {
       unsigned distances[curlgrp][curlgrp];
+      unsigned indexes[curlgrp];
       unsigned i, j;
-      for (i = 0; i < curlgrp; i++)
+      for (i = 0; i < curlgrp; i++) {
+        indexes[i] = glob_lgrps[i]->os_index;
 	for (j = 0; j < curlgrp; j++)
 	  distances[i][j] = lgrp_latency_cookie(cookie, glob_lgrps[i]->os_index, glob_lgrps[j]->os_index, LGRP_LAT_CPU_TO_MEM);
-      hwloc_setup_misc_level_from_distances(topology, curlgrp, glob_lgrps, (unsigned*) distances);
+      }
+      hwloc_setup_misc_level_from_distances(topology, curlgrp, glob_lgrps, (unsigned*) distances, (unsigned*) indexes);
     }
 #endif /* HAVE_LGRP_LATENCY_COOKIE */
   }
@@ -164,6 +426,7 @@
 
 #ifdef HAVE_LIBKSTAT
 #include <kstat.h>
+#define HWLOC_NBMAXCPUS 1024 /* FIXME: drop */
 static int
 hwloc_look_kstat(struct hwloc_topology *topology)
 {
@@ -241,7 +504,7 @@
           hwloc_debug("cpu%u's state is %s\n", cpuid, stat->value.c);
           if (strcmp(stat->value.c, "on-line"))
             /* not online */
-            hwloc_cpuset_clr(topology->levels[0][0]->online_cpuset, cpuid);
+            hwloc_bitmap_clr(topology->levels[0][0]->online_cpuset, cpuid);
         }
 
       if (look_chips) do {
@@ -363,6 +626,8 @@
     return;
 #endif /* HAVE_LIBKSTAT */
   hwloc_setup_pu_level(topology, nbprocs);
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "Solaris");
 }
 
 void
@@ -371,9 +636,22 @@
   topology->set_proc_cpubind = hwloc_solaris_set_proc_cpubind;
   topology->set_thisproc_cpubind = hwloc_solaris_set_thisproc_cpubind;
   topology->set_thisthread_cpubind = hwloc_solaris_set_thisthread_cpubind;
+#ifdef HAVE_LIBLGRP
+  topology->get_proc_cpubind = hwloc_solaris_get_proc_cpubind;
+  topology->get_thisproc_cpubind = hwloc_solaris_get_thisproc_cpubind;
+  topology->get_thisthread_cpubind = hwloc_solaris_get_thisthread_cpubind;
+#endif /* HAVE_LIBLGRP */
+#ifdef MADV_ACCESS_LWP 
+  topology->set_area_membind = hwloc_solaris_set_area_membind;
+  topology->set_proc_membind = hwloc_solaris_set_proc_membind;
+  topology->set_thisproc_membind = hwloc_solaris_set_thisproc_membind;
+  topology->set_thisthread_membind = hwloc_solaris_set_thisthread_membind;
+  topology->get_proc_membind = hwloc_solaris_get_proc_membind;
+  topology->get_thisproc_membind = hwloc_solaris_get_thisproc_membind;
+  topology->get_thisthread_membind = hwloc_solaris_get_thisthread_membind;
+  topology->support.membind->firsttouch_membind = 1;
+  topology->support.membind->bind_membind = 1;
+  topology->support.membind->interleave_membind = 1;
+  topology->support.membind->nexttouch_membind = 1;
+#endif
 }
-
-/* TODO:
- * memory binding: lgrp_affinity_set
- * madvise(MADV_ACCESS_LWP / ACCESS_MANY)
- */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-synthetic.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-synthetic.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-synthetic.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -26,12 +28,11 @@
   int cache_depth = 0, group_depth = 0;
   int nb_machine_levels = 0, nb_node_levels = 0;
   int nb_pu_levels = 0;
-  int nb_pu = 1;
 
   assert(topology->backend_type == HWLOC_BACKEND_NONE);
 
   for (pos = description, count = 1; *pos; pos = next_pos) {
-#define HWLOC_OBJ_TYPE_UNKNOWN ((unsigned) -1)
+#define HWLOC_OBJ_TYPE_UNKNOWN ((hwloc_obj_type_t) -1)
     hwloc_obj_type_t type = HWLOC_OBJ_TYPE_UNKNOWN;
 
     while (*pos == ' ')
@@ -82,12 +83,6 @@
       return -1;
     }
 
-    nb_pu *= item;
-    if (nb_pu > HWLOC_NBMAXCPUS) {
-      fprintf(stderr, "To many PUs, max %d\n", HWLOC_NBMAXCPUS);
-      return -1;
-    }
-
     topology->backend_params.synthetic.arity[count-1] = (unsigned)item;
     topology->backend_params.synthetic.type[count] = type;
     topology->backend_params.synthetic.id[count] = 0;
@@ -207,7 +202,7 @@
 static unsigned
 hwloc__look_synthetic(struct hwloc_topology *topology,
     int level, unsigned first_cpu,
-    hwloc_cpuset_t parent_cpuset)
+    hwloc_bitmap_t parent_cpuset)
 {
   hwloc_obj_t obj;
   unsigned i;
@@ -238,23 +233,23 @@
   }
 
   obj = hwloc_alloc_setup_object(type, topology->backend_params.synthetic.id[level]++);
-  obj->cpuset = hwloc_cpuset_alloc();
+  obj->cpuset = hwloc_bitmap_alloc();
 
   if (!topology->backend_params.synthetic.arity[level]) {
-    hwloc_cpuset_set(obj->cpuset, first_cpu++);
+    hwloc_bitmap_set(obj->cpuset, first_cpu++);
   } else {
     for (i = 0; i < topology->backend_params.synthetic.arity[level]; i++)
       first_cpu = hwloc__look_synthetic(topology, level + 1, first_cpu, obj->cpuset);
   }
 
   if (type == HWLOC_OBJ_NODE) {
-    obj->nodeset = hwloc_cpuset_alloc();
-    hwloc_cpuset_set(obj->nodeset, obj->os_index);
+    obj->nodeset = hwloc_bitmap_alloc();
+    hwloc_bitmap_set(obj->nodeset, obj->os_index);
   }
 
   hwloc_insert_object_by_cpuset(topology, obj);
 
-  hwloc_cpuset_or(parent_cpuset, parent_cpuset, obj->cpuset);
+  hwloc_bitmap_or(parent_cpuset, parent_cpuset, obj->cpuset);
 
   /* post-hooks */
   switch (type) {
@@ -281,6 +276,7 @@
       break;
     case HWLOC_OBJ_CACHE:
       obj->attr->cache.depth = topology->backend_params.synthetic.depth[level];
+      obj->attr->cache.linesize = 64;
       if (obj->attr->cache.depth == 1)
 	/* 32Kb in L1 */
 	obj->attr->cache.size = 32*1024;
@@ -300,7 +296,7 @@
 void
 hwloc_look_synthetic(struct hwloc_topology *topology)
 {
-  hwloc_cpuset_t cpuset = hwloc_cpuset_alloc();
+  hwloc_bitmap_t cpuset = hwloc_bitmap_alloc();
   unsigned first_cpu = 0, i;
 
   topology->support.discovery->pu = 1;
@@ -311,6 +307,8 @@
   for (i = 0; i < topology->backend_params.synthetic.arity[0]; i++)
     first_cpu = hwloc__look_synthetic(topology, 1, first_cpu, cpuset);
 
-  hwloc_cpuset_free(cpuset);
+  hwloc_bitmap_free(cpuset);
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "Synthetic");
 }
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-windows.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -144,56 +146,121 @@
 /* TODO: SetThreadIdealProcessor */
 
 static int
-hwloc_win_set_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t thread, hwloc_const_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_win_set_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t thread, hwloc_const_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   /* TODO: groups SetThreadGroupAffinity */
   /* The resulting binding is always strict */
-  DWORD mask = hwloc_cpuset_to_ulong(hwloc_set);
+  DWORD mask = hwloc_bitmap_to_ulong(hwloc_set);
   if (!SetThreadAffinityMask(thread, mask))
     return -1;
   return 0;
 }
 
 static int
-hwloc_win_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_win_set_thisthread_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_win_set_thread_cpubind(topology, GetCurrentThread(), hwloc_set, policy);
+  return hwloc_win_set_thread_cpubind(topology, GetCurrentThread(), hwloc_set, flags);
 }
 
 static int
-hwloc_win_set_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t proc, hwloc_const_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_win_set_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t proc, hwloc_const_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   /* TODO: groups */
   /* The resulting binding is always strict */
-  DWORD mask = hwloc_cpuset_to_ulong(hwloc_set);
+  DWORD mask = hwloc_bitmap_to_ulong(hwloc_set);
   if (!SetProcessAffinityMask(proc, mask))
     return -1;
   return 0;
 }
 
 static int
-hwloc_win_get_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t proc, hwloc_cpuset_t hwloc_set, int policy __hwloc_attribute_unused)
+hwloc_win_get_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t proc, hwloc_bitmap_t hwloc_set, int flags __hwloc_attribute_unused)
 {
   DWORD proc_mask, sys_mask;
   /* TODO: groups */
   if (!GetProcessAffinityMask(proc, &proc_mask, &sys_mask))
     return -1;
-  hwloc_cpuset_from_ulong(hwloc_set, proc_mask);
+  hwloc_bitmap_from_ulong(hwloc_set, proc_mask);
   return 0;
 }
 
 static int
-hwloc_win_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_cpuset_t hwloc_set, int policy)
+hwloc_win_set_thisproc_cpubind(hwloc_topology_t topology, hwloc_const_bitmap_t hwloc_set, int flags)
 {
-  return hwloc_win_set_proc_cpubind(topology, GetCurrentProcess(), hwloc_set, policy);
+  return hwloc_win_set_proc_cpubind(topology, GetCurrentProcess(), hwloc_set, flags);
 }
 
 static int
-hwloc_win_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_cpuset_t hwloc_cpuset, int policy)
+hwloc_win_get_thisproc_cpubind(hwloc_topology_t topology, hwloc_bitmap_t hwloc_cpuset, int flags)
 {
-  return hwloc_win_get_proc_cpubind(topology, GetCurrentProcess(), hwloc_cpuset, policy);
+  return hwloc_win_get_proc_cpubind(topology, GetCurrentProcess(), hwloc_cpuset, flags);
 }
 
+static LPVOID WINAPI (*VirtualAllocExNumaProc)(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD flAllocationType, DWORD flProtect, DWORD nndPreferred);
+static BOOL WINAPI (*VirtualFreeExProc)(HANDLE hProcess, LPVOID lpAddress, SIZE_T dwSize, DWORD dwFreeType);
+
+static int hwloc_win_get_VirtualAllocExNumaProc(void) {
+  if (VirtualAllocExNumaProc == NULL) {
+    FARPROC alloc_fun, free_fun;
+    HMODULE kernel32;
+
+    kernel32 = LoadLibrary("kernel32.dll");
+    if (kernel32) {
+      alloc_fun = GetProcAddress(kernel32, "VirtualAllocExNuma");
+      free_fun = GetProcAddress(kernel32, "VirtualFreeEx");
+    }
+
+    if (!kernel32 || !alloc_fun || !free_fun) {
+      VirtualAllocExNumaProc = (FARPROC) -1;
+      errno = ENOSYS;
+      return -1;
+    }
+
+    VirtualAllocExNumaProc = alloc_fun;
+    VirtualFreeExProc = free_fun;
+  } else if ((FARPROC) VirtualAllocExNumaProc == (FARPROC)-1) {
+    errno = ENOSYS;
+    return -1;
+  }
+
+  return 0;
+}
+
+static void *
+hwloc_win_alloc(hwloc_topology_t topology __hwloc_attribute_unused, size_t len) {
+  return VirtualAlloc(NULL, len, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE);
+}
+
+static void *
+hwloc_win_alloc_membind(hwloc_topology_t topology __hwloc_attribute_unused, size_t len, hwloc_const_nodeset_t nodeset, hwloc_membind_policy_t policy, int flags) {
+  int node;
+
+  switch (policy) {
+    case HWLOC_MEMBIND_DEFAULT:
+    case HWLOC_MEMBIND_BIND:
+      break;
+    default:
+      errno = ENOSYS;
+      return hwloc_alloc_or_fail(topology, len, flags);
+  }
+
+  if (hwloc_bitmap_weight(nodeset) != 1) {
+    /* Not a single node, can't do this */
+    errno = EXDEV;
+    return hwloc_alloc_or_fail(topology, len, flags);
+  }
+
+  node = hwloc_bitmap_first(nodeset);
+  return VirtualAllocExNumaProc(GetCurrentProcess(), NULL, len, MEM_COMMIT|MEM_RESERVE, PAGE_EXECUTE_READWRITE, node);
+}
+
+static int
+hwloc_win_free_membind(hwloc_topology_t topology __hwloc_attribute_unused, void *addr, size_t len __hwloc_attribute_unused) {
+  if (!VirtualFreeExProc(GetCurrentProcess(), addr, 0, MEM_RELEASE))
+    return -1;
+  return 0;
+}
+
 void
 hwloc_look_windows(struct hwloc_topology *topology)
 {
@@ -261,16 +328,16 @@
 	}
 
 	obj = hwloc_alloc_setup_object(type, id);
-        obj->cpuset = hwloc_cpuset_alloc();
+        obj->cpuset = hwloc_bitmap_alloc();
 	hwloc_debug("%s#%u mask %lx\n", hwloc_obj_type_string(type), id, procInfo[i].ProcessorMask);
-	hwloc_cpuset_from_ulong(obj->cpuset, procInfo[i].ProcessorMask);
+	hwloc_bitmap_from_ulong(obj->cpuset, procInfo[i].ProcessorMask);
 
 	switch (type) {
 	  case HWLOC_OBJ_NODE:
 	    {
 	      ULONGLONG avail;
-	      obj->nodeset = hwloc_cpuset_alloc();
-	      hwloc_cpuset_set(obj->nodeset, id);
+	      obj->nodeset = hwloc_bitmap_alloc();
+	      hwloc_bitmap_set(obj->nodeset, id);
 	      if ((GetNumaAvailableMemoryNodeExProc && GetNumaAvailableMemoryNodeExProc(id, &avail))
 	       || (GetNumaAvailableMemoryNodeProc && GetNumaAvailableMemoryNodeProc(id, &avail)))
 		obj->memory.local_memory = avail;
@@ -284,6 +351,7 @@
 	    }
 	  case HWLOC_OBJ_CACHE:
 	    obj->attr->cache.size = procInfo[i].Cache.Size;
+	    obj->attr->cache.linesize = procInfo[i].Cache.LineSize;
 	    obj->attr->cache.depth = procInfo[i].Cache.Level;
 	    break;
 	  case HWLOC_OBJ_GROUP:
@@ -356,11 +424,11 @@
 	    for (id = 0; id < procInfo->Group.ActiveGroupCount; id++) {
               KAFFINITY mask;
 	      obj = hwloc_alloc_setup_object(HWLOC_OBJ_GROUP, id);
-	      obj->cpuset = hwloc_cpuset_alloc();
+	      obj->cpuset = hwloc_bitmap_alloc();
 	      mask = procInfo->Group.GroupInfo[id].ActiveProcessorMask;
 	      hwloc_debug("group %u %d cpus mask %lx\n", id,
                   procInfo->Group.GroupInfo[id].ActiveProcessorCount, mask);
-	      hwloc_cpuset_from_ith_ulong(obj->cpuset, id, mask);
+	      hwloc_bitmap_from_ith_ulong(obj->cpuset, id, mask);
 	      hwloc_insert_object_by_cpuset(topology, obj);
 	    }
 	    continue;
@@ -371,18 +439,18 @@
 	}
 
 	obj = hwloc_alloc_setup_object(type, id);
-        obj->cpuset = hwloc_cpuset_alloc();
+        obj->cpuset = hwloc_bitmap_alloc();
         for (i = 0; i < num; i++) {
           hwloc_debug("%s#%u %d: mask %d:%lx\n", hwloc_obj_type_string(type), id, i, GroupMask[i].Group, GroupMask[i].Mask);
-          hwloc_cpuset_from_ith_ulong(obj->cpuset, GroupMask[i].Group, GroupMask[i].Mask);
+          hwloc_bitmap_from_ith_ulong(obj->cpuset, GroupMask[i].Group, GroupMask[i].Mask);
         }
 
 	switch (type) {
 	  case HWLOC_OBJ_NODE:
 	    {
 	      ULONGLONG avail;
-	      obj->nodeset = hwloc_cpuset_alloc();
-	      hwloc_cpuset_set(obj->nodeset, id);
+	      obj->nodeset = hwloc_bitmap_alloc();
+	      hwloc_bitmap_set(obj->nodeset, id);
 	      if ((GetNumaAvailableMemoryNodeExProc && GetNumaAvailableMemoryNodeExProc(id, &avail))
 	       || (GetNumaAvailableMemoryNodeProc && GetNumaAvailableMemoryNodeProc(id, &avail)))
 	        obj->memory.local_memory = avail;
@@ -396,6 +464,7 @@
 	    }
 	  case HWLOC_OBJ_CACHE:
 	    obj->attr->cache.size = procInfo->Cache.CacheSize;
+	    obj->attr->cache.linesize = procInfo->Cache.LineSize;
 	    obj->attr->cache.depth = procInfo->Cache.Level;
 	    break;
 	  default:
@@ -409,6 +478,8 @@
 
   /* add PU objects */
   hwloc_setup_pu_level(topology, hwloc_fallback_nbprocessors(topology));
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "Windows");
 }
 
 void
@@ -420,6 +491,11 @@
   topology->set_thisproc_cpubind = hwloc_win_set_thisproc_cpubind;
   topology->get_thisproc_cpubind = hwloc_win_get_thisproc_cpubind;
   topology->set_thisthread_cpubind = hwloc_win_set_thisthread_cpubind;
+
+  if (!hwloc_win_get_VirtualAllocExNumaProc()) {
+    topology->alloc_membind = hwloc_win_alloc_membind;
+    topology->alloc = hwloc_win_alloc;
+    topology->free_membind = hwloc_win_free_membind;
+    topology->support.membind->bind_membind = 1;
+  }
 }
-
-/* TODO memory binding: VirtualAllocExNuma */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-x86.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-x86.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-x86.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2010 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2010 INRIA
+ * Copyright © 2010 Université Bordeaux 1
  * Copyright © 2010 Cisco Systems, Inc.  All rights reserved.
  *
  * See COPYING in top-level directory.
@@ -74,7 +75,7 @@
   if (level == 1)
     cache->ways = (cpuid >> 16) & 0xff;
   else {
-    static const unsigned ways_tab[] = { 0, 1, 2, 0, 4, 0, 8, 0, 16, 0, 32, 48, 64, 96, 128, -1 };
+    static const unsigned ways_tab[] = { 0, 1, 2, 0, 4, 0, 8, 0, 16, 0, 32, 48, 64, 96, 128, 0 };
     unsigned ways = (cpuid >> 12) & 0xf;
     cache->ways = ways_tab[ways];
   }
@@ -211,74 +212,74 @@
 /* Analyse information stored in infos, and build topology levels accordingly */
 static void summarize(hwloc_topology_t topology, struct procinfo *infos, unsigned nbprocs)
 {
-  hwloc_cpuset_t complete_cpuset = hwloc_cpuset_alloc();
+  hwloc_bitmap_t complete_cpuset = hwloc_bitmap_alloc();
   unsigned i, j;
 
   for (i = 0; i < nbprocs; i++)
     if (infos[i].present)
-      hwloc_cpuset_set(complete_cpuset, i);
+      hwloc_bitmap_set(complete_cpuset, i);
 
   /* Look for sockets */
   {
-    hwloc_cpuset_t sockets_cpuset = hwloc_cpuset_dup(complete_cpuset);
-    hwloc_cpuset_t socket_cpuset;
+    hwloc_bitmap_t sockets_cpuset = hwloc_bitmap_dup(complete_cpuset);
+    hwloc_bitmap_t socket_cpuset;
     hwloc_obj_t socket;
 
-    while ((i = hwloc_cpuset_first(sockets_cpuset)) != (unsigned) -1) {
+    while ((i = hwloc_bitmap_first(sockets_cpuset)) != (unsigned) -1) {
       unsigned socketid = infos[i].socketid;
 
-      socket_cpuset = hwloc_cpuset_alloc();
-      hwloc_cpuset_zero(socket_cpuset);
+      socket_cpuset = hwloc_bitmap_alloc();
+      hwloc_bitmap_zero(socket_cpuset);
       for (j = i; j < nbprocs; j++) {
         if (infos[j].socketid == socketid) {
-          hwloc_cpuset_set(socket_cpuset, j);
-          hwloc_cpuset_clr(sockets_cpuset, j);
+          hwloc_bitmap_set(socket_cpuset, j);
+          hwloc_bitmap_clr(sockets_cpuset, j);
         }
       }
       socket = hwloc_alloc_setup_object(HWLOC_OBJ_SOCKET, socketid);
       socket->cpuset = socket_cpuset;
-      hwloc_debug_1arg_cpuset("os socket %u has cpuset %s\n",
+      hwloc_debug_1arg_bitmap("os socket %u has cpuset %s\n",
           socketid, socket_cpuset);
       hwloc_insert_object_by_cpuset(topology, socket);
     }
-    hwloc_cpuset_free(sockets_cpuset);
+    hwloc_bitmap_free(sockets_cpuset);
   }
 
   /* Look for cores */
   {
-    hwloc_cpuset_t cores_cpuset = hwloc_cpuset_dup(complete_cpuset);
-    hwloc_cpuset_t core_cpuset;
+    hwloc_bitmap_t cores_cpuset = hwloc_bitmap_dup(complete_cpuset);
+    hwloc_bitmap_t core_cpuset;
     hwloc_obj_t core;
 
-    while ((i = hwloc_cpuset_first(cores_cpuset)) != (unsigned) -1) {
+    while ((i = hwloc_bitmap_first(cores_cpuset)) != (unsigned) -1) {
       unsigned socketid = infos[i].socketid;
       unsigned coreid = infos[i].coreid;
 
       if (coreid == (unsigned) -1) {
-        hwloc_cpuset_clr(cores_cpuset, i);
+        hwloc_bitmap_clr(cores_cpuset, i);
 	continue;
       }
 
-      core_cpuset = hwloc_cpuset_alloc();
-      hwloc_cpuset_zero(core_cpuset);
+      core_cpuset = hwloc_bitmap_alloc();
+      hwloc_bitmap_zero(core_cpuset);
       for (j = i; j < nbprocs; j++) {
 	if (infos[j].coreid == (unsigned) -1) {
-	  hwloc_cpuset_clr(cores_cpuset, j);
+	  hwloc_bitmap_clr(cores_cpuset, j);
 	  continue;
 	}
 
         if (infos[j].socketid == socketid && infos[j].coreid == coreid) {
-          hwloc_cpuset_set(core_cpuset, j);
-          hwloc_cpuset_clr(cores_cpuset, j);
+          hwloc_bitmap_set(core_cpuset, j);
+          hwloc_bitmap_clr(cores_cpuset, j);
         }
       }
       core = hwloc_alloc_setup_object(HWLOC_OBJ_CORE, coreid);
       core->cpuset = core_cpuset;
-      hwloc_debug_1arg_cpuset("os core %u has cpuset %s\n",
+      hwloc_debug_1arg_bitmap("os core %u has cpuset %s\n",
           coreid, core_cpuset);
       hwloc_insert_object_by_cpuset(topology, core);
     }
-    hwloc_cpuset_free(cores_cpuset);
+    hwloc_bitmap_free(cores_cpuset);
   }
 
   /* Look for caches */
@@ -292,11 +293,11 @@
   while (level > 0) {
     /* Look for caches at level level */
     {
-      hwloc_cpuset_t caches_cpuset = hwloc_cpuset_dup(complete_cpuset);
-      hwloc_cpuset_t cache_cpuset;
+      hwloc_bitmap_t caches_cpuset = hwloc_bitmap_dup(complete_cpuset);
+      hwloc_bitmap_t cache_cpuset;
       hwloc_obj_t cache;
 
-      while ((i = hwloc_cpuset_first(caches_cpuset)) != (unsigned) -1) {
+      while ((i = hwloc_bitmap_first(caches_cpuset)) != (unsigned) -1) {
         unsigned socketid = infos[i].socketid;
 
         for (l = 0; l < infos[i].numcaches; l++) {
@@ -305,15 +306,15 @@
         }
         if (l == infos[i].numcaches) {
           /* no cache Llevel in i, odd */
-          hwloc_cpuset_clr(caches_cpuset, i);
+          hwloc_bitmap_clr(caches_cpuset, i);
           continue;
         }
 
         {
           unsigned cacheid = infos[i].apicid / infos[i].cache[l].nbthreads_sharing;
 
-          cache_cpuset = hwloc_cpuset_alloc();
-          hwloc_cpuset_zero(cache_cpuset);
+          cache_cpuset = hwloc_bitmap_alloc();
+          hwloc_bitmap_zero(cache_cpuset);
           for (j = i; j < nbprocs; j++) {
             unsigned l2;
             for (l2 = 0; l2 < infos[j].numcaches; l2++) {
@@ -322,24 +323,25 @@
             }
             if (l2 == infos[j].numcaches) {
               /* no cache Llevel in j, odd */
-              hwloc_cpuset_clr(caches_cpuset, j);
+              hwloc_bitmap_clr(caches_cpuset, j);
               continue;
             }
             if (infos[j].socketid == socketid && infos[j].apicid / infos[j].cache[l2].nbthreads_sharing == cacheid) {
-              hwloc_cpuset_set(cache_cpuset, j);
-              hwloc_cpuset_clr(caches_cpuset, j);
+              hwloc_bitmap_set(cache_cpuset, j);
+              hwloc_bitmap_clr(caches_cpuset, j);
             }
           }
           cache = hwloc_alloc_setup_object(HWLOC_OBJ_CACHE, cacheid);
           cache->attr->cache.depth = level;
           cache->attr->cache.size = infos[i].cache[l].size;
+          cache->attr->cache.linesize = infos[i].cache[l].linesize;
           cache->cpuset = cache_cpuset;
-          hwloc_debug_2args_cpuset("os L%u cache %u has cpuset %s\n",
+          hwloc_debug_2args_bitmap("os L%u cache %u has cpuset %s\n",
               level, cacheid, cache_cpuset);
           hwloc_insert_object_by_cpuset(topology, cache);
         }
       }
-      hwloc_cpuset_free(caches_cpuset);
+      hwloc_bitmap_free(caches_cpuset);
     }
     level--;
   }
@@ -361,7 +363,7 @@
     /* This function must always be here, but it's ok if it's empty. */
 #if defined(HWLOC_HAVE_CPUID)
   unsigned eax, ebx, ecx = 0, edx;
-  hwloc_cpuset_t orig_cpuset;
+  hwloc_bitmap_t orig_cpuset;
   unsigned i;
   unsigned highest_cpuid;
   unsigned highest_ext_cpuid;
@@ -389,39 +391,41 @@
 
   hwloc_debug("highest extended cpuid %x\n", highest_ext_cpuid);
 
-  orig_cpuset = hwloc_cpuset_alloc();
+  orig_cpuset = hwloc_bitmap_alloc();
 
   if (topology->get_thisthread_cpubind && topology->set_thisthread_cpubind) {
     if (!topology->get_thisthread_cpubind(topology, orig_cpuset, HWLOC_CPUBIND_STRICT)) {
-      hwloc_cpuset_t cpuset = hwloc_cpuset_alloc();
+      hwloc_bitmap_t cpuset = hwloc_bitmap_alloc();
       for (i = 0; i < nbprocs; i++) {
-        hwloc_cpuset_cpu(cpuset, i);
+        hwloc_bitmap_only(cpuset, i);
         if (topology->set_thisthread_cpubind(topology, cpuset, HWLOC_CPUBIND_STRICT))
           continue;
         look_proc(&infos[i], highest_cpuid, highest_ext_cpuid, cpuid_type);
       }
-      hwloc_cpuset_free(cpuset);
+      hwloc_bitmap_free(cpuset);
       topology->set_thisthread_cpubind(topology, orig_cpuset, 0);
-      hwloc_cpuset_free(orig_cpuset);
+      hwloc_bitmap_free(orig_cpuset);
       summarize(topology, infos, nbprocs);
       return;
     }
   }
   if (topology->get_thisproc_cpubind && topology->set_thisproc_cpubind) {
     if (!topology->get_thisproc_cpubind(topology, orig_cpuset, HWLOC_CPUBIND_STRICT)) {
-      hwloc_cpuset_t cpuset = hwloc_cpuset_alloc();
+      hwloc_bitmap_t cpuset = hwloc_bitmap_alloc();
       for (i = 0; i < nbprocs; i++) {
-        hwloc_cpuset_cpu(cpuset, i);
+        hwloc_bitmap_only(cpuset, i);
         if (topology->set_thisproc_cpubind(topology, cpuset, HWLOC_CPUBIND_STRICT))
           continue;
         look_proc(&infos[i], highest_cpuid, highest_ext_cpuid, cpuid_type);
       }
-      hwloc_cpuset_free(cpuset);
+      hwloc_bitmap_free(cpuset);
       topology->set_thisproc_cpubind(topology, orig_cpuset, 0);
-      hwloc_cpuset_free(orig_cpuset);
+      hwloc_bitmap_free(orig_cpuset);
       summarize(topology, infos, nbprocs);
       return;
     }
   }
 #endif
+
+  hwloc_add_object_info(topology->levels[0][0], "Backend", "x86");
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-xml.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-xml.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology-xml.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,8 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
@@ -18,7 +20,7 @@
 #include <strings.h>
 
 int
-hwloc_backend_xml_init(struct hwloc_topology *topology, const char *xmlpath)
+hwloc_backend_xml_init(struct hwloc_topology *topology, const char *xmlpath, const char *xmlbuffer, int buflen)
 {
   xmlDoc *doc = NULL;
 
@@ -26,7 +28,10 @@
 
   LIBXML_TEST_VERSION;
 
-  doc = xmlReadFile(xmlpath, NULL, 0);
+  if (xmlpath)
+    doc = xmlReadFile(xmlpath, NULL, 0);
+  else if (xmlbuffer)
+    doc = xmlReadMemory(xmlbuffer, buflen, "", NULL, 0);
   if (!doc)
     return -1;
 
@@ -41,7 +46,6 @@
 {
   assert(topology->backend_type == HWLOC_BACKEND_XML);
   xmlFreeDoc((xmlDoc*)topology->backend_params.xml.doc);
-  xmlCleanupParser();
   topology->backend_type = HWLOC_BACKEND_NONE;
 }
 
@@ -49,29 +53,22 @@
  ********* XML import *********
  ******************************/
 
-static void
-hwloc__xml_import_topology_attr(struct hwloc_topology *topology __hwloc_attribute_unused,
-				const xmlChar *_name, const xmlChar *_value __hwloc_attribute_unused)
-{
-  const char *name = (const char *) _name;
+static void hwloc__xml_import_node(struct hwloc_topology *topology, struct hwloc_obj *parent, xmlNode *node, int depth);
 
-  fprintf(stderr, "ignoring unknown root attribute %s\n", name);
-}
-
-static void
-hwloc__xml_import_pagetype_attr(struct hwloc_topology *topology __hwloc_attribute_unused, struct hwloc_obj_memory_page_type_s *page_type,
-				const xmlChar *_name, const xmlChar *_value)
+static const xmlChar *
+hwloc__xml_import_attr_value(xmlAttr *attr)
 {
-  const char *name = (const char *) _name;
-  const char *value = (const char *) _value;
-
-  if (!strcmp(name, "size"))
-    page_type->size = strtoul(value, NULL, 10);
-  else if (!strcmp(name, "count"))
-    page_type->count = strtoul(value, NULL, 10);
-
-  else
-    fprintf(stderr, "ignoring unknown pagetype attribute %s\n", name);
+  xmlNode *subnode;
+  /* use the first valid attribute content */
+  for (subnode = attr->children; subnode; subnode = subnode->next) {
+    if (subnode->type == XML_TEXT_NODE) {
+      if (subnode->content && subnode->content[0] != '\0' && subnode->content[0] != '\n')
+	return subnode->content;
+    } else {
+      fprintf(stderr, "ignoring unexpected xml attr node type %u\n", subnode->type);
+    }
+  }
+  return NULL;
 }
 
 static void
@@ -91,26 +88,26 @@
   else if (!strcmp(name, "os_index"))
     obj->os_index = strtoul(value, NULL, 10);
   else if (!strcmp(name, "cpuset")) {
-    obj->cpuset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->cpuset, value);
+    obj->cpuset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->cpuset, value);
   } else if (!strcmp(name, "complete_cpuset")) {
-    obj->complete_cpuset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->complete_cpuset,value);
+    obj->complete_cpuset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->complete_cpuset,value);
   } else if (!strcmp(name, "online_cpuset")) {
-    obj->online_cpuset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->online_cpuset, value);
+    obj->online_cpuset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->online_cpuset, value);
   } else if (!strcmp(name, "allowed_cpuset")) {
-    obj->allowed_cpuset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->allowed_cpuset, value);
+    obj->allowed_cpuset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->allowed_cpuset, value);
   } else if (!strcmp(name, "nodeset")) {
-    obj->nodeset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->nodeset, value);
+    obj->nodeset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->nodeset, value);
   } else if (!strcmp(name, "complete_nodeset")) {
-    obj->complete_nodeset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->complete_nodeset, value);
+    obj->complete_nodeset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->complete_nodeset, value);
   } else if (!strcmp(name, "allowed_nodeset")) {
-    obj->allowed_nodeset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(obj->allowed_nodeset, value);
+    obj->allowed_nodeset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(obj->allowed_nodeset, value);
   } else if (!strcmp(name, "name"))
     obj->name = strdup(value);
 
@@ -122,6 +119,14 @@
       fprintf(stderr, "ignoring cache_size attribute for non-cache object type\n");
   }
 
+  else if (!strcmp(name, "cache_linesize")) {
+    unsigned long lvalue = strtoul(value, NULL, 10);
+    if (obj->type == HWLOC_OBJ_CACHE)
+      obj->attr->cache.linesize = lvalue;
+    else
+      fprintf(stderr, "ignoring cache_linesize attribute for non-cache object type\n");
+  }
+
   else if (!strcmp(name, "local_memory"))
     obj->memory.local_memory = strtoull(value, NULL, 10);
 
@@ -140,30 +145,18 @@
     }
   }
 
+
+
+  /*************************
+   * deprecated (from 1.0)
+   */
   else if (!strcmp(name, "dmi_board_vendor")) {
-    switch (obj->type) {
-      case HWLOC_OBJ_MACHINE:
-	obj->attr->machine.dmi_board_vendor = strdup(value);
-	break;
-      default:
-	fprintf(stderr, "ignoring dmi_board_vendor attribute for object type without DMI board\n");
-	break;
-    }
+    hwloc_add_object_info(obj, "DMIBoardVendor", strdup(value));
   }
-
   else if (!strcmp(name, "dmi_board_name")) {
-    switch (obj->type) {
-      case HWLOC_OBJ_MACHINE:
-	obj->attr->machine.dmi_board_name = strdup(value);
-	break;
-      default:
-	fprintf(stderr, "ignoring dmi_board_name attribute for object type without DMI board\n");
-	break;
-    }
+    hwloc_add_object_info(obj, "DMIBoardName", strdup(value));
   }
 
-
-
   /*************************
    * deprecated (from 0.9)
    */
@@ -227,43 +220,7 @@
     fprintf(stderr, "ignoring unknown object attribute %s\n", name);
 }
 
-static const xmlChar *
-hwloc__xml_import_attr_value(xmlAttr *attr)
-{
-  xmlNode *subnode;
-  /* use the first valid attribute content */
-  for (subnode = attr->children; subnode; subnode = subnode->next) {
-    if (subnode->type == XML_TEXT_NODE) {
-      if (subnode->content && subnode->content[0] != '\0' && subnode->content[0] != '\n')
-	return subnode->content;
-    } else {
-      fprintf(stderr, "ignoring unexpected xml attr node type %u\n", subnode->type);
-    }
-  }
-  return NULL;
-}
-
 static void
-hwloc__xml_import_pagetype_node(struct hwloc_topology *topology, struct hwloc_obj_memory_page_type_s *pagetype, xmlNode *node)
-{
-  xmlAttr *attr = NULL;
-
-  for (attr = node->properties; attr; attr = attr->next) {
-    if (attr->type == XML_ATTRIBUTE_NODE) {
-      const xmlChar *value = hwloc__xml_import_attr_value(attr);
-      if (value)
-	hwloc__xml_import_pagetype_attr(topology, pagetype, attr->name, value);
-      else
-	fprintf(stderr, "ignoring unexpected xml pagetype attr name `%s' with no value\n", (const char*) attr->name);
-    } else {
-      fprintf(stderr, "ignoring unexpected xml pagetype attr type %u\n", attr->type);
-    }
-  }
-}
-
-static void hwloc__xml_import_node(struct hwloc_topology *topology, struct hwloc_obj *parent, xmlNode *node, int depth);
-
-static void
 hwloc__xml_import_object_node(struct hwloc_topology *topology, struct hwloc_obj *parent, struct hwloc_obj *obj, xmlNode *node, int depth)
 {
   xmlAttr *attr = NULL;
@@ -297,8 +254,6 @@
       const xmlChar *value = hwloc__xml_import_attr_value(attr);
       if (value)
 	hwloc__xml_import_object_attr(topology, obj, attr->name, value);
-      else
-	fprintf(stderr, "ignoring unexpected xml object attr name `%s' with no value\n", (const char*) attr->name);
     } else {
       fprintf(stderr, "ignoring unexpected xml object attr type %u\n", attr->type);
     }
@@ -314,8 +269,69 @@
     hwloc__xml_import_node(topology, obj, node->children, depth+1);
 }
 
+static void
+hwloc__xml_import_pagetype_node(struct hwloc_topology *topology __hwloc_attribute_unused, struct hwloc_obj *obj, xmlNode *node)
+{
+  uint64_t size = 0, count = 0;
+  xmlAttr *attr = NULL;
 
+  for (attr = node->properties; attr; attr = attr->next) {
+    if (attr->type == XML_ATTRIBUTE_NODE) {
+      const xmlChar *value = hwloc__xml_import_attr_value(attr);
+      if (value) {
+	if (!strcmp((char *) attr->name, "size"))
+	  size = strtoul((char *) value, NULL, 10);
+	else if (!strcmp((char *) attr->name, "count"))
+	  count = strtoul((char *) value, NULL, 10);
+	else
+	  fprintf(stderr, "ignoring unknown pagetype attribute %s\n", (char *) attr->name);
+      }
+    } else {
+      fprintf(stderr, "ignoring unexpected xml pagetype attr type %u\n", attr->type);
+    }
+  }
+
+  if (size) {
+    int idx = obj->memory.page_types_len;
+    obj->memory.page_types = realloc(obj->memory.page_types, (idx+1)*sizeof(*obj->memory.page_types));
+    obj->memory.page_types_len = idx+1;
+    obj->memory.page_types[idx].size = size;
+    obj->memory.page_types[idx].count = count;
+  } else
+    fprintf(stderr, "ignoring pagetype attribute without size\n");
+}
+
 static void
+hwloc__xml_import_info_node(struct hwloc_topology *topology __hwloc_attribute_unused, struct hwloc_obj *obj, xmlNode *node)
+{
+  char *infoname = NULL;
+  char *infovalue = NULL;
+  xmlAttr *attr = NULL;
+
+  for (attr = node->properties; attr; attr = attr->next) {
+    if (attr->type == XML_ATTRIBUTE_NODE) {
+      const xmlChar *value = hwloc__xml_import_attr_value(attr);
+      if (value) {
+	if (!strcmp((char *) attr->name, "name"))
+	  infoname = (char *) value;
+	else if (!strcmp((char *) attr->name, "value"))
+	  infovalue = (char *) value;
+	else
+	  fprintf(stderr, "ignoring unknown info attribute %s\n", (char *) attr->name);
+      }
+    } else {
+      fprintf(stderr, "ignoring unexpected xml info attr type %u\n", attr->type);
+    }
+  }
+
+  if (infoname)
+    /* empty strings are ignored by libxml */
+    hwloc_add_object_info(obj, infoname, infovalue ? infovalue : "");
+  else
+    fprintf(stderr, "ignoring info attribute without name\n");
+}
+
+static void
 hwloc__xml_import_node(struct hwloc_topology *topology, struct hwloc_obj *parent, xmlNode *node, int depth)
 {
   for (; node; node = node->next) {
@@ -330,11 +346,11 @@
 	hwloc__xml_import_object_node(topology, parent, obj, node, depth);
 
       } else if (!strcmp((const char*) node->name, "page_type")) {
-	int idx = parent->memory.page_types_len;
-	parent->memory.page_types = realloc(parent->memory.page_types, (idx+1)*sizeof(*parent->memory.page_types));
-	hwloc__xml_import_pagetype_node(topology, &parent->memory.page_types[idx], node);
-	parent->memory.page_types_len = idx+1;
+	hwloc__xml_import_pagetype_node(topology, parent, node);
 
+      } else if (!strcmp((const char*) node->name, "info")) {
+	hwloc__xml_import_info_node(topology, parent, node);
+
       } else {
 	/* unknown class */
 	fprintf(stderr, "ignoring unexpected node class `%s'\n", (const char*) node->name);
@@ -365,10 +381,9 @@
   for (attr = node->properties; attr; attr = attr->next) {
     if (attr->type == XML_ATTRIBUTE_NODE) {
       const xmlChar *value = hwloc__xml_import_attr_value(attr);
-      if (value)
-	hwloc__xml_import_topology_attr(topology, attr->name, value);
-      else
-	fprintf(stderr, "ignoring unexpected xml root attr name `%s' with no value\n", (const char*) attr->name);
+      if (value) {
+	fprintf(stderr, "ignoring unknown root attribute %s\n", (char *) attr->name);
+      }
     } else {
       fprintf(stderr, "ignoring unexpected xml root attr type %u\n", attr->type);
     }
@@ -400,7 +415,8 @@
   if (root_node->next)
     fprintf(stderr, "ignoring non-first root nodes\n");
 
-  /* TODO: abort if we got an invalid topology or so */
+  /* keep the "Backend" information intact */
+  /* we could add "BackendSource=XML" to notify that XML was used between the actual backend and here */
 }
 
 /******************************
@@ -426,37 +442,37 @@
     xmlNewProp(node, BAD_CAST "os_index", BAD_CAST tmp);
   }
   if (obj->cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->cpuset);
     xmlNewProp(node, BAD_CAST "cpuset", BAD_CAST cpuset);
     free(cpuset);
   }
   if (obj->complete_cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->complete_cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->complete_cpuset);
     xmlNewProp(node, BAD_CAST "complete_cpuset", BAD_CAST cpuset);
     free(cpuset);
   }
   if (obj->online_cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->online_cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->online_cpuset);
     xmlNewProp(node, BAD_CAST "online_cpuset", BAD_CAST cpuset);
     free(cpuset);
   }
   if (obj->allowed_cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->allowed_cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->allowed_cpuset);
     xmlNewProp(node, BAD_CAST "allowed_cpuset", BAD_CAST cpuset);
     free(cpuset);
   }
-  if (obj->nodeset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->nodeset);
+  if (obj->nodeset && !hwloc_bitmap_isfull(obj->nodeset)) {
+    hwloc_bitmap_asprintf(&cpuset, obj->nodeset);
     xmlNewProp(node, BAD_CAST "nodeset", BAD_CAST cpuset);
     free(cpuset);
   }
-  if (obj->complete_nodeset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->complete_nodeset);
+  if (obj->complete_nodeset && !hwloc_bitmap_isfull(obj->complete_nodeset)) {
+    hwloc_bitmap_asprintf(&cpuset, obj->complete_nodeset);
     xmlNewProp(node, BAD_CAST "complete_nodeset", BAD_CAST cpuset);
     free(cpuset);
   }
-  if (obj->allowed_nodeset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->allowed_nodeset);
+  if (obj->allowed_nodeset && !hwloc_bitmap_isfull(obj->allowed_nodeset)) {
+    hwloc_bitmap_asprintf(&cpuset, obj->allowed_nodeset);
     xmlNewProp(node, BAD_CAST "allowed_nodeset", BAD_CAST cpuset);
     free(cpuset);
   }
@@ -470,13 +486,9 @@
     xmlNewProp(node, BAD_CAST "cache_size", BAD_CAST tmp);
     sprintf(tmp, "%u", obj->attr->cache.depth);
     xmlNewProp(node, BAD_CAST "depth", BAD_CAST tmp);
+    sprintf(tmp, "%u", (unsigned) obj->attr->cache.linesize);
+    xmlNewProp(node, BAD_CAST "cache_linesize", BAD_CAST tmp);
     break;
-  case HWLOC_OBJ_MACHINE:
-    if (obj->attr->machine.dmi_board_vendor)
-      xmlNewProp(node, BAD_CAST "dmi_board_vendor", BAD_CAST obj->attr->machine.dmi_board_vendor);
-    if (obj->attr->machine.dmi_board_name)
-      xmlNewProp(node, BAD_CAST "dmi_board_name", BAD_CAST obj->attr->machine.dmi_board_name);
-    break;
   case HWLOC_OBJ_GROUP:
     sprintf(tmp, "%u", obj->attr->group.depth);
     xmlNewProp(node, BAD_CAST "depth", BAD_CAST tmp);
@@ -497,6 +509,12 @@
     xmlNewProp(ptnode, BAD_CAST "count", BAD_CAST tmp);
   }
 
+  for(i=0; i<obj->infos_count; i++) {
+    ptnode = xmlNewChild(node, NULL, BAD_CAST "info", NULL);
+    xmlNewProp(ptnode, BAD_CAST "name", BAD_CAST obj->infos[i].name);
+    xmlNewProp(ptnode, BAD_CAST "value", BAD_CAST obj->infos[i].value);
+  }
+
   if (obj->arity) {
     unsigned x;
     for (x=0; x<obj->arity; x++)
@@ -509,7 +527,8 @@
 {
 }
 
-void hwloc_topology_export_xml(hwloc_topology_t topology, const char *filename)
+static xmlDocPtr
+hwloc__topology_prepare_export(hwloc_topology_t topology)
 {
   xmlDocPtr doc = NULL;       /* document pointer */
   xmlNodePtr root_node = NULL; /* root pointer */
@@ -529,14 +548,22 @@
 
   hwloc__xml_export_topology_info (topology, root_node);
 
-  /* Dumping document to stdio or file. */
+  return doc;
+}
+
+void hwloc_topology_export_xml(hwloc_topology_t topology, const char *filename)
+{
+  xmlDocPtr doc = hwloc__topology_prepare_export(topology);
   xmlSaveFormatFileEnc(filename, doc, "UTF-8", 1);
+  xmlFreeDoc(doc);
+}
 
-  /* Free the document. */
+void hwloc_topology_export_xmlbuffer(hwloc_topology_t topology, char **xmlbuffer, int *buflen)
+{
+  xmlDocPtr doc = hwloc__topology_prepare_export(topology);
+  xmlDocDumpFormatMemoryEnc(doc, (xmlChar **)xmlbuffer, buflen, "UTF-8", 1);
   xmlFreeDoc(doc);
-
-  /* Free the global variables that may have been allocated by the parser. */
-  xmlCleanupParser();
 }
 
+
 #endif /* HWLOC_HAVE_XML */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/topology.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -129,141 +131,81 @@
 }
 
 /*
- * Place objects in groups if they are in complete graphs with minimal distances.
+ * Place objects in groups if they are in a transitive graph of minimal distances.
  * Return how many groups were created, or 0 if some incomplete distance graphs were found.
  */
 static unsigned
-hwloc_setup_group_from_min_distance_clique(unsigned nbobjs,
-					  unsigned *_distances,
-					  unsigned *groupids)
+hwloc_setup_group_from_min_distance(unsigned nbobjs,
+				    unsigned *_distances,
+				    unsigned *groupids)
 {
   unsigned (*distances)[nbobjs][nbobjs] = (unsigned (*)[nbobjs][nbobjs])_distances;
-  unsigned groupid = 0;
+  unsigned min_distance = UINT_MAX;
+  unsigned groupid = 1;
   unsigned i,j,k;
 
   memset(groupids, 0, nbobjs*sizeof(*groupids));
 
-  /* try to find complete graphs */
-  for(i=0; i<nbobjs; i++) {
-    hwloc_cpuset_t closest_objs_set = hwloc_cpuset_alloc();
-    unsigned min_distance = UINT_MAX;
-    unsigned size = 1; /* current object i */
-
-    /* if already grouped, skip */
-    if (groupids[i]) {
-      hwloc_cpuset_free(closest_objs_set);
-      continue;
-    }
-
-    /* find closest nodes */
-    for(j=i+1; j<nbobjs; j++) {
-      if ((*distances)[i][j] < min_distance) {
-	/* reset the closest set and use new min_distance */
-	hwloc_cpuset_cpu(closest_objs_set, j);
+  /* find the minimal distance */
+  for(i=0; i<nbobjs; i++)
+    for(j=i+1; j<nbobjs; j++)
+      if ((*distances)[i][j] < min_distance)
 	min_distance = (*distances)[i][j];
-	size = 2; /* current objects i and j */
-      } else if ((*distances)[i][j] == min_distance) {
-	/* add object to current closest set */
-	hwloc_cpuset_set(closest_objs_set, j);
-	size++;
-      }
-    }
-    /* check that we actually have a complete graph between these closest objects */
-    for (j=i+1; j<nbobjs; j++)
-      for (k=j+1; k<nbobjs; k++)
-	if (hwloc_cpuset_isset(closest_objs_set, j) &&
-	    hwloc_cpuset_isset(closest_objs_set, k) &&
-	    (*distances)[j][k] != min_distance) {
-	  /* the minimal-distance graph is not complete. abort */
-	  hwloc_debug("%s", "found incomplete minimal-distance graph, aborting\n");
-	  hwloc_cpuset_free(closest_objs_set);
-	  return 0;
-	}
+  hwloc_debug("found minimal distance %u between objects\n", min_distance);
 
-    /* fill a new group */
-    groupid++;
-    groupids[i] = groupid;
-    for(j=i+1; j<nbobjs; j++)
-      if (hwloc_cpuset_isset(closest_objs_set, j))
-	groupids[j] = groupid;
-    hwloc_debug("found complete graph with %u objects with minimal distance %u\n",
-	       size, min_distance);
-    hwloc_cpuset_free(closest_objs_set);
-  }
+  if (min_distance == UINT_MAX)
+    return 0;
 
-  /* return the last id, since it's also the number of used group ids */
-  return groupid;
-}
-
-/*
- * Place objects in groups if they are in a transitive graph of minimal distances.
- * Return how many groups were created, or 0 if some incomplete distance graphs were found.
- */
-static unsigned
-hwloc_setup_group_from_min_distance_transitivity(unsigned nbobjs,
-						unsigned *_distances,
-						unsigned *groupids)
-{
-  unsigned (*distances)[nbobjs][nbobjs] = (unsigned (*)[nbobjs][nbobjs])_distances;
-  unsigned groupid = 0;
-  unsigned i,j,k;
-
-  memset(groupids, 0, nbobjs*sizeof(*groupids));
-
-  /* try to find complete graphs */
+  /* build groups of objects connected with this distance */
   for(i=0; i<nbobjs; i++) {
-    hwloc_cpuset_t closest_objs_set = hwloc_cpuset_alloc();
-    unsigned min_distance = UINT_MAX;
-    unsigned size = 1; /* current object i */
+    unsigned size;
+    int firstfound;
 
-    hwloc_cpuset_zero(closest_objs_set);
-
     /* if already grouped, skip */
     if (groupids[i])
       continue;
 
-    /* find closest nodes */
-    for(j=i+1; j<nbobjs; j++) {
-      if ((*distances)[i][j] < min_distance) {
-	/* reset the closest set and use new min_distance */
-	hwloc_cpuset_cpu(closest_objs_set, j);
-	min_distance = (*distances)[i][j];
-	size = 2; /* current objects i and j */
-      } else if ((*distances)[i][j] == min_distance) {
-	/* add object to current closest set */
-	hwloc_cpuset_set(closest_objs_set, j);
-	size++;
-      }
+    /* start a new group */
+    groupids[i] = groupid;
+    size = 1;
+    firstfound = i;
+
+    while (firstfound != -1) {
+      /* we added new objects to the group, the first one was firstfound.
+       * rescan all connections from these new objects (starting at first found) to any other objects,
+       * so as to find new objects minimally-connected by transivity.
+       */
+      int newfirstfound = -1;
+      for(j=firstfound; j<nbobjs; j++)
+	if (groupids[j] == groupid)
+	  for(k=0; k<nbobjs; k++)
+	    if (!groupids[k] && (*distances)[j][k] == min_distance) {
+	      groupids[k] = groupid;
+	      size++;
+	      if (newfirstfound == -1)
+		newfirstfound = k;
+	      if (i == j)
+		hwloc_debug("object %u is minimally connected to %u\n", k, i);
+	      else
+	        hwloc_debug("object %u is minimally connected to %u through %u\n", k, i, j);
+	    }
+      firstfound = newfirstfound;
     }
-    /* find close objs by transitivity */
-    while (1) {
-      unsigned found = 0;
-      for(j=i+1; j<nbobjs; j++)
-	for(k=j+1; k<nbobjs; k++)
-	  if ((*distances)[j][k] <= min_distance
-	      && hwloc_cpuset_isset(closest_objs_set, j)
-	      && !hwloc_cpuset_isset(closest_objs_set, k)) {
-	    hwloc_cpuset_set(closest_objs_set, k);
-	    size++;
-	    found = 1;
-	  }
-      if (!found)
-	break;
+
+    if (size == 1) {
+      /* cancel this group and start over */
+      groupids[i] = 0;
+      continue;
     }
 
-    /* fill a new group */
+    /* valid this group */
     groupid++;
-    groupids[i] = groupid;
-    for(j=i+1; j<nbobjs; j++)
-      if (hwloc_cpuset_isset(closest_objs_set, j))
-	groupids[j] = groupid;
     hwloc_debug("found transitive graph with %u objects with minimal distance %u\n",
 	       size, min_distance);
-    hwloc_cpuset_free(closest_objs_set);
   }
 
   /* return the last id, since it's also the number of used group ids */
-  return groupid;
+  return groupid-1;
 }
 
 /*
@@ -288,12 +230,9 @@
   if (nbobjs <= 2)
     return;
 
-  nbgroups = hwloc_setup_group_from_min_distance_clique(nbobjs, _distances, groupids);
-  if (!nbgroups) {
-    nbgroups = hwloc_setup_group_from_min_distance_transitivity(nbobjs, _distances, groupids);
-    if (!nbgroups)
-      return;
-  }
+  nbgroups = hwloc_setup_group_from_min_distance(nbobjs, _distances, groupids);
+  if (!nbgroups)
+    return;
 
   if (nbgroups == 1) {
     hwloc_debug("%s", "ignoring misc object with all objects\n");
@@ -312,15 +251,15 @@
           /* create the misc object */
           hwloc_obj_t misc_obj;
           misc_obj = hwloc_alloc_setup_object(HWLOC_OBJ_GROUP, -1);
-          misc_obj->cpuset = hwloc_cpuset_alloc();
-          hwloc_cpuset_zero(misc_obj->cpuset);
+          misc_obj->cpuset = hwloc_bitmap_alloc();
+          hwloc_bitmap_zero(misc_obj->cpuset);
           misc_obj->attr->group.depth = depth;
           for (j=0; j<nbobjs; j++)
               if (groupids[j] == i+1) {
-                  hwloc_cpuset_or(misc_obj->cpuset, misc_obj->cpuset, objs[j]->cpuset);
+                  hwloc_bitmap_or(misc_obj->cpuset, misc_obj->cpuset, objs[j]->cpuset);
                   groupsizes[i]++;
               }
-          hwloc_debug_1arg_cpuset("adding misc object with %u objects and cpuset %s\n",
+          hwloc_debug_1arg_bitmap("adding misc object with %u objects and cpuset %s\n",
                                   groupsizes[i], misc_obj->cpuset);
           hwloc_insert_object_by_cpuset(topology, misc_obj);
           groupobjs[i] = misc_obj;
@@ -352,11 +291,13 @@
  */
 void
 hwloc_setup_misc_level_from_distances(struct hwloc_topology *topology,
-				     unsigned nbobjs,
-				     struct hwloc_obj **objs,
-				     unsigned *_distances)
+				      unsigned nbobjs,
+				      struct hwloc_obj **objs,
+				      unsigned *_distances,
+				      unsigned *_distance_indexes)
 {
   unsigned (*distances)[nbobjs][nbobjs] = (unsigned (*)[nbobjs][nbobjs])_distances;
+  unsigned (*distance_indexes)[nbobjs] __hwloc_attribute_unused = (unsigned (*)[nbobjs])_distance_indexes;
   unsigned i,j;
 
   if (getenv("HWLOC_IGNORE_DISTANCES"))
@@ -366,11 +307,11 @@
   hwloc_debug("%s", "node distance matrix:\n");
   hwloc_debug("%s", "   ");
   for(j=0; j<nbobjs; j++)
-    hwloc_debug(" %3u", j);
+    hwloc_debug(" %3u", (*distance_indexes)[j]);
   hwloc_debug("%s", "\n");
 
   for(i=0; i<nbobjs; i++) {
-    hwloc_debug("%3u", i);
+    hwloc_debug("%3u", (*distance_indexes)[i]);
     for(j=0; j<nbobjs; j++)
       hwloc_debug(" %3u", (*distances)[i][j]);
     hwloc_debug("%s", "\n");
@@ -413,10 +354,10 @@
   for (cpu=0,oscpu=0; cpu<nb_pus; oscpu++)
     {
       obj = hwloc_alloc_setup_object(HWLOC_OBJ_PU, oscpu);
-      obj->cpuset = hwloc_cpuset_alloc();
-      hwloc_cpuset_cpu(obj->cpuset, oscpu);
+      obj->cpuset = hwloc_bitmap_alloc();
+      hwloc_bitmap_only(obj->cpuset, oscpu);
 
-      hwloc_debug_2args_cpuset("cpu %u (os %u) has cpuset %s\n",
+      hwloc_debug_2args_bitmap("cpu %u (os %u) has cpuset %s\n",
 		 cpu, oscpu, obj->cpuset);
       hwloc_insert_object_by_cpuset(topology, obj);
 
@@ -432,37 +373,37 @@
   hwloc_obj_snprintf(line, sizeof(line), topology, obj, "#", 1);
   hwloc_debug("%s", line);
   if (obj->cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->cpuset);
     hwloc_debug(" cpuset %s", cpuset);
     free(cpuset);
   }
   if (obj->complete_cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->complete_cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->complete_cpuset);
     hwloc_debug(" complete %s", cpuset);
     free(cpuset);
   }
   if (obj->online_cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->online_cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->online_cpuset);
     hwloc_debug(" online %s", cpuset);
     free(cpuset);
   }
   if (obj->allowed_cpuset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->allowed_cpuset);
+    hwloc_bitmap_asprintf(&cpuset, obj->allowed_cpuset);
     hwloc_debug(" allowed %s", cpuset);
     free(cpuset);
   }
   if (obj->nodeset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->nodeset);
+    hwloc_bitmap_asprintf(&cpuset, obj->nodeset);
     hwloc_debug(" nodeset %s", cpuset);
     free(cpuset);
   }
   if (obj->complete_nodeset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->complete_nodeset);
+    hwloc_bitmap_asprintf(&cpuset, obj->complete_nodeset);
     hwloc_debug(" completeN %s", cpuset);
     free(cpuset);
   }
   if (obj->allowed_nodeset) {
-    hwloc_cpuset_asprintf(&cpuset, obj->allowed_nodeset);
+    hwloc_bitmap_asprintf(&cpuset, obj->allowed_nodeset);
     hwloc_debug(" allowedN %s", cpuset);
     free(cpuset);
   }
@@ -482,29 +423,44 @@
 #endif
 }
 
+void
+hwloc_add_object_info(hwloc_obj_t obj, const char *name, const char *value)
+{
+#define OBJECT_INFO_ALLOC 8
+  /* nothing allocated initially, (re-)allocate by multiple of 8 */
+  unsigned alloccount = (obj->infos_count + 1 + (OBJECT_INFO_ALLOC-1)) & ~(OBJECT_INFO_ALLOC-1);
+  if (obj->infos_count != alloccount)
+    obj->infos = realloc(obj->infos, alloccount*sizeof(*obj->infos));
+  obj->infos[obj->infos_count].name = strdup(name);
+  obj->infos[obj->infos_count].value = strdup(value);
+  obj->infos_count++;
+}
+
 /* Free an object and all its content.  */
 void
-free_object(hwloc_obj_t obj)
+hwloc_free_object(hwloc_obj_t obj)
 {
+  unsigned i;
   switch (obj->type) {
-  case HWLOC_OBJ_MACHINE:
-    free(obj->attr->machine.dmi_board_vendor);
-    free(obj->attr->machine.dmi_board_name);
-    break;
   default:
     break;
   }
+  for(i=0; i<obj->infos_count; i++) {
+    free(obj->infos[i].name);
+    free(obj->infos[i].value);
+  }
+  free(obj->infos);
   free(obj->memory.page_types);
   free(obj->attr);
   free(obj->children);
   free(obj->name);
-  hwloc_cpuset_free(obj->cpuset);
-  hwloc_cpuset_free(obj->complete_cpuset);
-  hwloc_cpuset_free(obj->online_cpuset);
-  hwloc_cpuset_free(obj->allowed_cpuset);
-  hwloc_cpuset_free(obj->nodeset);
-  hwloc_cpuset_free(obj->complete_nodeset);
-  hwloc_cpuset_free(obj->allowed_nodeset);
+  hwloc_bitmap_free(obj->cpuset);
+  hwloc_bitmap_free(obj->complete_cpuset);
+  hwloc_bitmap_free(obj->online_cpuset);
+  hwloc_bitmap_free(obj->allowed_cpuset);
+  hwloc_bitmap_free(obj->nodeset);
+  hwloc_bitmap_free(obj->complete_nodeset);
+  hwloc_bitmap_free(obj->allowed_nodeset);
   free(obj);
 }
 
@@ -608,11 +564,11 @@
 static int
 hwloc_obj_cmp(hwloc_obj_t obj1, hwloc_obj_t obj2)
 {
-  if (!obj1->cpuset || hwloc_cpuset_iszero(obj1->cpuset)
-      || !obj2->cpuset || hwloc_cpuset_iszero(obj2->cpuset))
+  if (!obj1->cpuset || hwloc_bitmap_iszero(obj1->cpuset)
+      || !obj2->cpuset || hwloc_bitmap_iszero(obj2->cpuset))
     return HWLOC_OBJ_DIFFERENT;
 
-  if (hwloc_cpuset_isequal(obj1->cpuset, obj2->cpuset)) {
+  if (hwloc_bitmap_isequal(obj1->cpuset, obj2->cpuset)) {
 
     /* Same cpuset, subsort by type to have a consistent ordering.  */
 
@@ -645,13 +601,13 @@
 
     /* Different cpusets, sort by inclusion.  */
 
-    if (hwloc_cpuset_isincluded(obj1->cpuset, obj2->cpuset))
+    if (hwloc_bitmap_isincluded(obj1->cpuset, obj2->cpuset))
       return HWLOC_OBJ_INCLUDED;
 
-    if (hwloc_cpuset_isincluded(obj2->cpuset, obj1->cpuset))
+    if (hwloc_bitmap_isincluded(obj2->cpuset, obj1->cpuset))
       return HWLOC_OBJ_CONTAINS;
 
-    if (hwloc_cpuset_intersects(obj1->cpuset, obj2->cpuset))
+    if (hwloc_bitmap_intersects(obj1->cpuset, obj2->cpuset))
       return HWLOC_OBJ_INTERSECTS;
 
     return HWLOC_OBJ_DIFFERENT;
@@ -688,7 +644,7 @@
   int put;
 
   /* Make sure we haven't gone too deep.  */
-  if (!hwloc_cpuset_isincluded(obj->cpuset, cur->cpuset)) {
+  if (!hwloc_bitmap_isincluded(obj->cpuset, cur->cpuset)) {
     fprintf(stderr,"recursion has gone too deep?!\n");
     return;
   }
@@ -729,6 +685,8 @@
 	  case HWLOC_OBJ_CACHE:
 	    merge_sizes(obj, child, attr->cache.size);
 	    check_sizes(obj, child, attr->cache.size);
+	    merge_sizes(obj, child, attr->cache.linesize);
+	    check_sizes(obj, child, attr->cache.linesize);
 	    break;
 	  default:
 	    break;
@@ -789,7 +747,7 @@
 
       case HWLOC_OBJ_DIFFERENT:
 	/* Leave CHILD in CUR.  */
-	if (!put && hwloc_cpuset_compare_first(obj->cpuset, child->cpuset) < 0) {
+	if (!put && hwloc_bitmap_compare_first(obj->cpuset, child->cpuset) < 0) {
 	  /* Sort children by cpuset: put OBJ before CHILD in CUR's children.  */
 	  *cur_children = obj;
 	  cur_children = &obj->next_sibling;
@@ -830,9 +788,9 @@
 {
   /* Start at the top.  */
   /* Add the cpuset to the top */
-  hwloc_cpuset_or(topology->levels[0][0]->complete_cpuset, topology->levels[0][0]->complete_cpuset, obj->cpuset);
+  hwloc_bitmap_or(topology->levels[0][0]->complete_cpuset, topology->levels[0][0]->complete_cpuset, obj->cpuset);
   if (obj->nodeset)
-    hwloc_cpuset_or(topology->levels[0][0]->complete_nodeset, topology->levels[0][0]->complete_nodeset, obj->nodeset);
+    hwloc_bitmap_or(topology->levels[0][0]->complete_nodeset, topology->levels[0][0]->complete_nodeset, obj->nodeset);
   hwloc__insert_object_by_cpuset(topology, topology->levels[0][0], obj);
 }
 
@@ -864,10 +822,10 @@
 hwloc_connect(hwloc_obj_t parent);
 /* Adds a misc object _after_ detection, and thus has to reconnect all the pointers */
 hwloc_obj_t
-hwloc_topology_insert_misc_object_by_cpuset(struct hwloc_topology *topology, hwloc_const_cpuset_t cpuset, const char *name)
+hwloc_topology_insert_misc_object_by_cpuset(struct hwloc_topology *topology, hwloc_const_bitmap_t cpuset, const char *name)
 {
   hwloc_obj_t obj = hwloc_alloc_setup_object(HWLOC_OBJ_MISC, -1);
-  obj->cpuset = hwloc_cpuset_dup(cpuset);
+  obj->cpuset = hwloc_bitmap_dup(cpuset);
   if (name)
     obj->name = strdup(name);
 
@@ -883,7 +841,7 @@
 {
   hwloc_obj_t obj = hwloc_alloc_setup_object(HWLOC_OBJ_MISC, -1);
   if (parent->cpuset)
-    obj->cpuset = hwloc_cpuset_dup(parent->cpuset);
+    obj->cpuset = hwloc_bitmap_dup(parent->cpuset);
   if (name)
     obj->name = strdup(name);
 
@@ -946,13 +904,13 @@
   if (sys) {
     /* We are already given a pointer to a system object */
     if (obj->type == HWLOC_OBJ_PU)
-      hwloc_cpuset_or(sys->cpuset, sys->cpuset, obj->cpuset);
+      hwloc_bitmap_or(sys->cpuset, sys->cpuset, obj->cpuset);
   } else {
     if (obj->cpuset) {
       /* This object is the root of a machine */
       sys = obj;
       /* Assume no PU for now */
-      hwloc_cpuset_zero(obj->cpuset);
+      hwloc_bitmap_zero(obj->cpuset);
     }
   }
 
@@ -970,69 +928,69 @@
   if (obj->cpuset) {
     if (sys) {
       /* We are already given a pointer to an system object, update it and update ourselves */
-      hwloc_cpuset_t mask = hwloc_cpuset_alloc();
+      hwloc_bitmap_t mask = hwloc_bitmap_alloc();
 
       /* Apply the topology cpuset */
-      hwloc_cpuset_and(obj->cpuset, obj->cpuset, sys->cpuset);
+      hwloc_bitmap_and(obj->cpuset, obj->cpuset, sys->cpuset);
 
       /* Update complete cpuset down */
       if (obj->complete_cpuset) {
-	hwloc_cpuset_and(obj->complete_cpuset, obj->complete_cpuset, sys->complete_cpuset);
+	hwloc_bitmap_and(obj->complete_cpuset, obj->complete_cpuset, sys->complete_cpuset);
       } else {
-	obj->complete_cpuset = hwloc_cpuset_dup(sys->complete_cpuset);
-	hwloc_cpuset_and(obj->complete_cpuset, obj->complete_cpuset, obj->cpuset);
+	obj->complete_cpuset = hwloc_bitmap_dup(sys->complete_cpuset);
+	hwloc_bitmap_and(obj->complete_cpuset, obj->complete_cpuset, obj->cpuset);
       }
 
       /* Update online cpusets */
       if (obj->online_cpuset) {
 	/* Update ours */
-	hwloc_cpuset_and(obj->online_cpuset, obj->online_cpuset, sys->online_cpuset);
+	hwloc_bitmap_and(obj->online_cpuset, obj->online_cpuset, sys->online_cpuset);
 
 	/* Update the given cpuset, but only what we know */
-	hwloc_cpuset_copy(mask, obj->cpuset);
-	hwloc_cpuset_not(mask, mask);
-	hwloc_cpuset_or(mask, mask, obj->online_cpuset);
-	hwloc_cpuset_and(sys->online_cpuset, sys->online_cpuset, mask);
+	hwloc_bitmap_copy(mask, obj->cpuset);
+	hwloc_bitmap_not(mask, mask);
+	hwloc_bitmap_or(mask, mask, obj->online_cpuset);
+	hwloc_bitmap_and(sys->online_cpuset, sys->online_cpuset, mask);
       } else {
 	/* Just take it as such */
-	obj->online_cpuset = hwloc_cpuset_dup(sys->online_cpuset);
-	hwloc_cpuset_and(obj->online_cpuset, obj->online_cpuset, obj->cpuset);
+	obj->online_cpuset = hwloc_bitmap_dup(sys->online_cpuset);
+	hwloc_bitmap_and(obj->online_cpuset, obj->online_cpuset, obj->cpuset);
       }
 
       /* Update allowed cpusets */
       if (obj->allowed_cpuset) {
 	/* Update ours */
-	hwloc_cpuset_and(obj->allowed_cpuset, obj->allowed_cpuset, sys->allowed_cpuset);
+	hwloc_bitmap_and(obj->allowed_cpuset, obj->allowed_cpuset, sys->allowed_cpuset);
 
 	/* Update the given cpuset, but only what we know */
-	hwloc_cpuset_copy(mask, obj->cpuset);
-	hwloc_cpuset_not(mask, mask);
-	hwloc_cpuset_or(mask, mask, obj->allowed_cpuset);
-	hwloc_cpuset_and(sys->allowed_cpuset, sys->allowed_cpuset, mask);
+	hwloc_bitmap_copy(mask, obj->cpuset);
+	hwloc_bitmap_not(mask, mask);
+	hwloc_bitmap_or(mask, mask, obj->allowed_cpuset);
+	hwloc_bitmap_and(sys->allowed_cpuset, sys->allowed_cpuset, mask);
       } else {
 	/* Just take it as such */
-	obj->allowed_cpuset = hwloc_cpuset_dup(sys->allowed_cpuset);
-	hwloc_cpuset_and(obj->allowed_cpuset, obj->allowed_cpuset, obj->cpuset);
+	obj->allowed_cpuset = hwloc_bitmap_dup(sys->allowed_cpuset);
+	hwloc_bitmap_and(obj->allowed_cpuset, obj->allowed_cpuset, obj->cpuset);
       }
 
-      hwloc_cpuset_free(mask);
+      hwloc_bitmap_free(mask);
     } else {
       /* This object is the root of a machine */
       sys = obj;
       /* Apply complete cpuset to cpuset, online_cpuset and allowed_cpuset, it
        * will automatically be applied below */
       if (obj->complete_cpuset)
-        hwloc_cpuset_and(obj->cpuset, obj->cpuset, obj->complete_cpuset);
+        hwloc_bitmap_and(obj->cpuset, obj->cpuset, obj->complete_cpuset);
       else
-        obj->complete_cpuset = hwloc_cpuset_dup(obj->cpuset);
+        obj->complete_cpuset = hwloc_bitmap_dup(obj->cpuset);
       if (obj->online_cpuset)
-        hwloc_cpuset_and(obj->online_cpuset, obj->online_cpuset, obj->complete_cpuset);
+        hwloc_bitmap_and(obj->online_cpuset, obj->online_cpuset, obj->complete_cpuset);
       else
-        obj->online_cpuset = hwloc_cpuset_dup(obj->complete_cpuset);
+        obj->online_cpuset = hwloc_bitmap_dup(obj->complete_cpuset);
       if (obj->allowed_cpuset)
-        hwloc_cpuset_and(obj->allowed_cpuset, obj->allowed_cpuset, obj->complete_cpuset);
+        hwloc_bitmap_and(obj->allowed_cpuset, obj->allowed_cpuset, obj->complete_cpuset);
       else
-        obj->allowed_cpuset = hwloc_cpuset_dup(obj->complete_cpuset);
+        obj->allowed_cpuset = hwloc_bitmap_dup(obj->complete_cpuset);
     }
   }
 
@@ -1040,40 +998,73 @@
     propagate_unused_cpuset(child, sys);
 }
 
+/* Force full nodeset for non-NUMA machines */
+static void
+add_default_object_sets(hwloc_obj_t obj, int parent_has_sets)
+{
+  hwloc_obj_t child, *temp;
+
+  if (parent_has_sets || obj->cpuset) {
+    /* if the parent has non-NULL sets, or if the object has non-NULL cpusets,
+     * it must have non-NULL nodesets
+     */
+    assert(obj->cpuset);
+    assert(obj->online_cpuset);
+    assert(obj->complete_cpuset);
+    assert(obj->allowed_cpuset);
+    if (!obj->nodeset)
+      obj->nodeset = hwloc_bitmap_alloc_full();
+    if (!obj->complete_nodeset)
+      obj->complete_nodeset = hwloc_bitmap_alloc_full();
+    if (!obj->allowed_nodeset)
+      obj->allowed_nodeset = hwloc_bitmap_alloc_full();
+  } else {
+    /* parent has no sets and object has NULL cpusets,
+     * it must have NULL nodesets
+     */
+    assert(!obj->nodeset);
+    assert(!obj->complete_nodeset);
+    assert(!obj->allowed_nodeset);
+  }
+
+  for_each_child_safe(child, obj, temp)
+    add_default_object_sets(child, obj->cpuset != NULL);
+}
+
 /* Propagate nodesets up and down */
 static void
 propagate_nodeset(hwloc_obj_t obj, hwloc_obj_t sys)
 {
   hwloc_obj_t child, *temp;
-  hwloc_cpuset_t parent_nodeset = NULL;
+  hwloc_bitmap_t parent_nodeset = NULL;
   int parent_weight = 0;
 
   if (!sys && obj->nodeset) {
     sys = obj;
     if (!obj->complete_nodeset)
-      obj->complete_nodeset = hwloc_cpuset_dup(obj->nodeset);
+      obj->complete_nodeset = hwloc_bitmap_dup(obj->nodeset);
     if (!obj->allowed_nodeset)
-      obj->allowed_nodeset = hwloc_cpuset_dup(obj->complete_nodeset);
+      obj->allowed_nodeset = hwloc_bitmap_dup(obj->complete_nodeset);
   }
 
   if (sys) {
     if (obj->nodeset) {
       /* Some existing nodeset coming from above, to possibly propagate down */
       parent_nodeset = obj->nodeset;
-      parent_weight = hwloc_cpuset_weight(parent_nodeset);
+      parent_weight = hwloc_bitmap_weight(parent_nodeset);
     } else
-      obj->nodeset = hwloc_cpuset_alloc();
+      obj->nodeset = hwloc_bitmap_alloc();
   }
 
   for_each_child_safe(child, obj, temp) {
     /* Propagate singleton nodesets down */
     if (parent_weight == 1) {
       if (!child->nodeset)
-        child->nodeset = hwloc_cpuset_dup(obj->nodeset);
-      else if (!hwloc_cpuset_isequal(child->nodeset, parent_nodeset)) {
-        hwloc_debug_cpuset("Oops, parent nodeset %s", parent_nodeset);
-        hwloc_debug_cpuset(" is different from child nodeset %s, ignoring the child one\n", child->nodeset);
-        hwloc_cpuset_copy(child->nodeset, parent_nodeset);
+        child->nodeset = hwloc_bitmap_dup(obj->nodeset);
+      else if (!hwloc_bitmap_isequal(child->nodeset, parent_nodeset)) {
+        hwloc_debug_bitmap("Oops, parent nodeset %s", parent_nodeset);
+        hwloc_debug_bitmap(" is different from child nodeset %s, ignoring the child one\n", child->nodeset);
+        hwloc_bitmap_copy(child->nodeset, parent_nodeset);
       }
     }
 
@@ -1082,7 +1073,7 @@
 
     /* Propagate children nodesets up */
     if (sys && child->nodeset)
-      hwloc_cpuset_or(obj->nodeset, obj->nodeset, child->nodeset);
+      hwloc_bitmap_or(obj->nodeset, obj->nodeset, child->nodeset);
   }
 }
 
@@ -1090,25 +1081,25 @@
 static void
 propagate_nodesets(hwloc_obj_t obj)
 {
-  hwloc_cpuset_t mask = hwloc_cpuset_alloc();
+  hwloc_bitmap_t mask = hwloc_bitmap_alloc();
   hwloc_obj_t child, *temp;
 
   for_each_child_safe(child, obj, temp) {
     if (obj->nodeset) {
       /* Update complete nodesets down */
       if (child->complete_nodeset) {
-        hwloc_cpuset_and(child->complete_nodeset, child->complete_nodeset, obj->complete_nodeset);
+        hwloc_bitmap_and(child->complete_nodeset, child->complete_nodeset, obj->complete_nodeset);
       } else if (child->nodeset) {
-        child->complete_nodeset = hwloc_cpuset_dup(obj->complete_nodeset);
-        hwloc_cpuset_and(child->complete_nodeset, child->complete_nodeset, child->nodeset);
+        child->complete_nodeset = hwloc_bitmap_dup(obj->complete_nodeset);
+        hwloc_bitmap_and(child->complete_nodeset, child->complete_nodeset, child->nodeset);
       } /* else the child doesn't have nodeset information, we can not provide a complete nodeset */
 
       /* Update allowed nodesets down */
       if (child->allowed_nodeset) {
-        hwloc_cpuset_and(child->allowed_nodeset, child->allowed_nodeset, obj->allowed_nodeset);
+        hwloc_bitmap_and(child->allowed_nodeset, child->allowed_nodeset, obj->allowed_nodeset);
       } else if (child->nodeset) {
-        child->allowed_nodeset = hwloc_cpuset_dup(obj->allowed_nodeset);
-        hwloc_cpuset_and(child->allowed_nodeset, child->allowed_nodeset, child->nodeset);
+        child->allowed_nodeset = hwloc_bitmap_dup(obj->allowed_nodeset);
+        hwloc_bitmap_and(child->allowed_nodeset, child->allowed_nodeset, child->nodeset);
       }
     }
 
@@ -1117,25 +1108,25 @@
     if (obj->nodeset) {
       /* Update allowed nodesets up */
       if (child->nodeset && child->allowed_nodeset) {
-        hwloc_cpuset_copy(mask, child->nodeset);
-        hwloc_cpuset_not(mask, mask);
-        hwloc_cpuset_or(mask, mask, child->allowed_nodeset);
-        hwloc_cpuset_and(obj->allowed_nodeset, obj->allowed_nodeset, mask);
+        hwloc_bitmap_copy(mask, child->nodeset);
+        hwloc_bitmap_not(mask, mask);
+        hwloc_bitmap_or(mask, mask, child->allowed_nodeset);
+        hwloc_bitmap_and(obj->allowed_nodeset, obj->allowed_nodeset, mask);
       }
     }
   }
-  hwloc_cpuset_free(mask);
+  hwloc_bitmap_free(mask);
 
   if (obj->nodeset) {
     /* Apply complete nodeset to nodeset and allowed_nodeset */
     if (obj->complete_nodeset)
-      hwloc_cpuset_and(obj->nodeset, obj->nodeset, obj->complete_nodeset);
+      hwloc_bitmap_and(obj->nodeset, obj->nodeset, obj->complete_nodeset);
     else
-      obj->complete_nodeset = hwloc_cpuset_dup(obj->nodeset);
+      obj->complete_nodeset = hwloc_bitmap_dup(obj->nodeset);
     if (obj->allowed_nodeset)
-      hwloc_cpuset_and(obj->allowed_nodeset, obj->allowed_nodeset, obj->complete_nodeset);
+      hwloc_bitmap_and(obj->allowed_nodeset, obj->allowed_nodeset, obj->complete_nodeset);
     else
-      obj->allowed_nodeset = hwloc_cpuset_dup(obj->complete_nodeset);
+      obj->allowed_nodeset = hwloc_bitmap_dup(obj->complete_nodeset);
   }
 }
 
@@ -1147,7 +1138,7 @@
 
   if (sys) {
     if (obj->type == HWLOC_OBJ_NODE && obj->os_index != (unsigned) -1 &&
-        !hwloc_cpuset_isset(sys->allowed_nodeset, obj->os_index)) {
+        !hwloc_bitmap_isset(sys->allowed_nodeset, obj->os_index)) {
       hwloc_debug("Dropping memory from disallowed node %u\n", obj->os_index);
       obj->memory.local_memory = 0;
       obj->memory.total_memory = 0;
@@ -1170,8 +1161,8 @@
   hwloc_obj_t child, *temp;
 
   if (obj->cpuset) {
-    hwloc_cpuset_and(obj->cpuset, obj->cpuset, obj->online_cpuset);
-    hwloc_cpuset_and(obj->cpuset, obj->cpuset, obj->allowed_cpuset);
+    hwloc_bitmap_and(obj->cpuset, obj->cpuset, obj->online_cpuset);
+    hwloc_bitmap_and(obj->cpuset, obj->cpuset, obj->allowed_cpuset);
   }
 
   for_each_child_safe(child, obj, temp)
@@ -1192,7 +1183,7 @@
   } else
     *pparent = parent->next_sibling;
   /* Remove ignored object */
-  free_object(parent);
+  hwloc_free_object(parent);
 }
 
 /* Remove all ignored objects.  */
@@ -1220,7 +1211,7 @@
     do_free_object(pchild);
 
   *pobj = obj->next_sibling;
-  free_object(obj);
+  hwloc_free_object(obj);
 }
 
 /* Remove all children whose cpuset is empty, except NUMA nodes
@@ -1235,7 +1226,7 @@
 
   if (obj->type != HWLOC_OBJ_NODE
       && obj->cpuset
-      && hwloc_cpuset_iszero(obj->cpuset)) {
+      && hwloc_bitmap_iszero(obj->cpuset)) {
     /* Remove empty children */
     hwloc_debug("%s", "\nRemoving empty object ");
     print_object(topology, 0, obj);
@@ -1267,13 +1258,13 @@
     print_object(topology, 0, parent);
     *pparent = child;
     child->next_sibling = parent->next_sibling;
-    free_object(parent);
+    hwloc_free_object(parent);
   } else if (topology->ignored_types[child->type] == HWLOC_IGNORE_TYPE_KEEP_STRUCTURE) {
     /* Child can be ignored in favor of the parent.  */
     hwloc_debug("%s", "\nIgnoring child ");
     print_object(topology, 0, child);
     parent->first_child = child->first_child;
-    free_object(child);
+    hwloc_free_object(child);
   }
 }
 
@@ -1333,65 +1324,117 @@
  * Empty binding hooks always returning success
  */
 
-static int dontset_thisthread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t set __hwloc_attribute_unused, int policy __hwloc_attribute_unused)
+static int dontset_return_complete_cpuset(hwloc_topology_t topology, hwloc_cpuset_t set)
 {
+  hwloc_const_cpuset_t cpuset = hwloc_topology_get_complete_cpuset(topology);
+  if (cpuset) {
+    hwloc_bitmap_copy(set, hwloc_topology_get_complete_cpuset(topology));
+    return 0;
+  } else
+    return -1;
+}
+
+static int dontset_thisthread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
   return 0;
 }
-static int dontget_thisthread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t set, int policy __hwloc_attribute_unused)
+static int dontget_thisthread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_bitmap_t set, int flags __hwloc_attribute_unused)
 {
-  hwloc_cpuset_copy(set, hwloc_topology_get_complete_cpuset(topology));
+  return dontset_return_complete_cpuset(topology, set);
+}
+static int dontset_thisproc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
   return 0;
 }
-static int dontset_thisproc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_cpuset_t set __hwloc_attribute_unused, int policy __hwloc_attribute_unused)
+static int dontget_thisproc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_bitmap_t set, int flags __hwloc_attribute_unused)
 {
+  return dontset_return_complete_cpuset(topology, set);
+}
+static int dontset_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t pid __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
   return 0;
 }
-static int dontget_thisproc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_cpuset_t set, int policy __hwloc_attribute_unused)
+static int dontget_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t pid __hwloc_attribute_unused, hwloc_bitmap_t cpuset, int flags __hwloc_attribute_unused)
 {
-  hwloc_const_cpuset_t cpuset = hwloc_topology_get_complete_cpuset(topology);
-  if (cpuset) {
-    hwloc_cpuset_copy(set,cpuset);
+  return dontset_return_complete_cpuset(topology, cpuset);
+}
+#ifdef hwloc_thread_t
+static int dontset_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
+  return 0;
+}
+static int dontget_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid __hwloc_attribute_unused, hwloc_bitmap_t cpuset, int flags __hwloc_attribute_unused)
+{
+  return dontset_return_complete_cpuset(topology, cpuset);
+}
+#endif
+
+static int dontset_return_complete_nodeset(hwloc_topology_t topology, hwloc_nodeset_t set, hwloc_membind_policy_t *policy)
+{
+  hwloc_const_nodeset_t nodeset = hwloc_topology_get_complete_nodeset(topology);
+  if (nodeset) {
+    hwloc_bitmap_copy(set, hwloc_topology_get_complete_nodeset(topology));
+    *policy = HWLOC_MEMBIND_DEFAULT;
     return 0;
   } else
     return -1;
 }
-static int dontset_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t pid __hwloc_attribute_unused, hwloc_const_cpuset_t set __hwloc_attribute_unused, int policy __hwloc_attribute_unused)
+
+static int dontset_thisproc_membind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, hwloc_membind_policy_t policy __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
 {
   return 0;
 }
-static int dontget_proc_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t pid __hwloc_attribute_unused, hwloc_cpuset_t cpuset, int policy __hwloc_attribute_unused)
+static int dontget_thisproc_membind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_bitmap_t set, hwloc_membind_policy_t * policy, int flags __hwloc_attribute_unused)
 {
-  hwloc_cpuset_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
+  return dontset_return_complete_nodeset(topology, set, policy);
+}
+
+static int dontset_thisthread_membind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, hwloc_membind_policy_t policy __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
   return 0;
 }
-#ifdef hwloc_thread_t
-static int dontset_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid __hwloc_attribute_unused, hwloc_const_cpuset_t set __hwloc_attribute_unused, int policy __hwloc_attribute_unused)
+static int dontget_thisthread_membind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_bitmap_t set, hwloc_membind_policy_t * policy, int flags __hwloc_attribute_unused)
 {
+  return dontset_return_complete_nodeset(topology, set, policy);
+}
+
+static int dontset_proc_membind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t pid __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, hwloc_membind_policy_t policy __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
   return 0;
 }
-static int dontget_thread_cpubind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_thread_t tid __hwloc_attribute_unused, hwloc_cpuset_t cpuset, int policy __hwloc_attribute_unused)
+static int dontget_proc_membind(hwloc_topology_t topology __hwloc_attribute_unused, hwloc_pid_t pid __hwloc_attribute_unused, hwloc_bitmap_t set, hwloc_membind_policy_t * policy, int flags __hwloc_attribute_unused)
 {
-  hwloc_cpuset_copy(cpuset, hwloc_topology_get_complete_cpuset(topology));
+  return dontset_return_complete_nodeset(topology, set, policy);
+}
+
+static int dontset_area_membind(hwloc_topology_t topology __hwloc_attribute_unused, const void *addr __hwloc_attribute_unused, size_t size __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, hwloc_membind_policy_t policy __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
   return 0;
 }
-#endif
+static int dontget_area_membind(hwloc_topology_t topology __hwloc_attribute_unused, const void *addr __hwloc_attribute_unused, size_t size __hwloc_attribute_unused, hwloc_bitmap_t set, hwloc_membind_policy_t * policy, int flags __hwloc_attribute_unused)
+{
+  return dontset_return_complete_nodeset(topology, set, policy);
+}
 
+static void * dontalloc_membind(hwloc_topology_t topology __hwloc_attribute_unused, size_t size __hwloc_attribute_unused, hwloc_const_bitmap_t set __hwloc_attribute_unused, hwloc_membind_policy_t policy __hwloc_attribute_unused, int flags __hwloc_attribute_unused)
+{
+  return malloc(size);
+}
+static int dontfree_membind(hwloc_topology_t topology __hwloc_attribute_unused, void *addr __hwloc_attribute_unused, size_t size __hwloc_attribute_unused)
+{
+  free(addr);
+  return 0;
+}
+
 static void alloc_cpusets(hwloc_obj_t obj)
 {
-  obj->cpuset = hwloc_cpuset_alloc();
-  obj->complete_cpuset = hwloc_cpuset_alloc();
-  obj->online_cpuset = hwloc_cpuset_alloc();
-  obj->allowed_cpuset = hwloc_cpuset_alloc();
-  obj->nodeset = hwloc_cpuset_alloc();
-  obj->complete_nodeset = hwloc_cpuset_alloc();
-  obj->allowed_nodeset = hwloc_cpuset_alloc();
-  hwloc_cpuset_fill(obj->cpuset);
-  hwloc_cpuset_zero(obj->complete_cpuset);
-  hwloc_cpuset_fill(obj->online_cpuset);
-  hwloc_cpuset_fill(obj->allowed_cpuset);
-  hwloc_cpuset_zero(obj->nodeset);
-  hwloc_cpuset_zero(obj->complete_nodeset);
-  hwloc_cpuset_fill(obj->allowed_nodeset);
+  obj->cpuset = hwloc_bitmap_alloc_full();
+  obj->complete_cpuset = hwloc_bitmap_alloc();
+  obj->online_cpuset = hwloc_bitmap_alloc_full();
+  obj->allowed_cpuset = hwloc_bitmap_alloc_full();
+  obj->nodeset = hwloc_bitmap_alloc();
+  obj->complete_nodeset = hwloc_bitmap_alloc();
+  obj->allowed_nodeset = hwloc_bitmap_alloc_full();
 }
 
 /* Main discovery loop */
@@ -1507,8 +1550,19 @@
 #    ifndef HAVE_OS_SUPPORT
     hwloc_setup_pu_level(topology, hwloc_fallback_nbprocessors(topology));
 #    endif /* Unsupported OS */
+
+
+#    ifndef HWLOC_LINUX_SYS
+    if (topology->is_thissystem) {
+      /* gather uname info, except for Linux, which does it internally depending on load options */
+      hwloc_add_uname_info(topology);
+    }
+#    endif
   }
 
+  /*
+   * Now that backends have detected objects, sort them and establish pointers.
+   */
   print_objects(topology, 0, topology->levels[0][0]);
 
   /* First tweak a bit to clean the topology.  */
@@ -1518,13 +1572,13 @@
   hwloc_debug("%s", "\nPropagate offline and disallowed cpus down and up\n");
   propagate_unused_cpuset(topology->levels[0][0], NULL);
 
-  if (topology->levels[0][0]->complete_nodeset && hwloc_cpuset_iszero(topology->levels[0][0]->complete_nodeset)) {
+  if (topology->levels[0][0]->complete_nodeset && hwloc_bitmap_iszero(topology->levels[0][0]->complete_nodeset)) {
     /* No nodeset, drop all of them */
-    hwloc_cpuset_free(topology->levels[0][0]->nodeset);
+    hwloc_bitmap_free(topology->levels[0][0]->nodeset);
     topology->levels[0][0]->nodeset = NULL;
-    hwloc_cpuset_free(topology->levels[0][0]->complete_nodeset);
+    hwloc_bitmap_free(topology->levels[0][0]->complete_nodeset);
     topology->levels[0][0]->complete_nodeset = NULL;
-    hwloc_cpuset_free(topology->levels[0][0]->allowed_nodeset);
+    hwloc_bitmap_free(topology->levels[0][0]->allowed_nodeset);
     topology->levels[0][0]->allowed_nodeset = NULL;
   }
   hwloc_debug("%s", "\nPropagate nodesets\n");
@@ -1551,6 +1605,11 @@
   hwloc_debug("%s", "\nRemoving empty objects except numa nodes and PCI devices\n");
   remove_empty(topology, &topology->levels[0][0]);
 
+  if (!topology->levels[0][0]) {
+    fprintf(stderr, "Topology became empty, aborting!\n");
+    abort();
+  }
+
   print_objects(topology, 0, topology->levels[0][0]);
 
   hwloc_debug("%s", "\nRemoving objects whose type has HWLOC_IGNORE_TYPE_KEEP_STRUCTURE and have only one child or are the only child\n");
@@ -1558,6 +1617,9 @@
 
   print_objects(topology, 0, topology->levels[0][0]);
 
+  hwloc_debug("%s", "\nAdd default object sets\n");
+  add_default_object_sets(topology->levels[0][0], 0);
+
   hwloc_debug("%s", "\nOk, finished tweaking, now connect\n");
 
   /* Now connect handy pointers.  */
@@ -1681,6 +1743,12 @@
   hwloc_debug("%s", "\nPropagate total memory up\n");
   propagate_total_memory(topology->levels[0][0]);
 
+  /*
+   * Now set binding hooks.
+   * If the represented system is actually not this system, use dummy binding
+   * hooks.
+   */
+
   if (topology->flags & HWLOC_TOPOLOGY_FLAG_IS_THISSYSTEM)
     topology->is_thissystem = 1;
 
@@ -1727,6 +1795,16 @@
     topology->set_thread_cpubind = dontset_thread_cpubind;
     topology->get_thread_cpubind = dontget_thread_cpubind;
 #endif
+    topology->set_thisproc_membind = dontset_thisproc_membind;
+    topology->get_thisproc_membind = dontget_thisproc_membind;
+    topology->set_thisthread_membind = dontset_thisthread_membind;
+    topology->get_thisthread_membind = dontget_thisthread_membind;
+    topology->set_proc_membind = dontset_proc_membind;
+    topology->get_proc_membind = dontget_proc_membind;
+    topology->set_area_membind = dontset_area_membind;
+    topology->get_area_membind = dontget_area_membind;
+    topology->alloc_membind = dontalloc_membind;
+    topology->free_membind = dontfree_membind;
   }
 
   /* if not is_thissystem, set_cpubind is fake
@@ -1734,17 +1812,26 @@
    * so don't report that set/get_cpubind as supported
    */
   if (topology->is_thissystem) {
-#define DO(kind) \
+#define DO(which,kind) \
     if (topology->kind) \
-      topology->support.cpubind->kind = 1;
-    DO(set_thisproc_cpubind);
-    DO(get_thisproc_cpubind);
-    DO(set_proc_cpubind);
-    DO(get_proc_cpubind);
-    DO(set_thisthread_cpubind);
-    DO(get_thisthread_cpubind);
-    DO(set_thread_cpubind);
-    DO(get_thread_cpubind);
+      topology->support.which##bind->kind = 1;
+    DO(cpu,set_thisproc_cpubind);
+    DO(cpu,get_thisproc_cpubind);
+    DO(cpu,set_proc_cpubind);
+    DO(cpu,get_proc_cpubind);
+    DO(cpu,set_thisthread_cpubind);
+    DO(cpu,get_thisthread_cpubind);
+    DO(cpu,set_thread_cpubind);
+    DO(cpu,get_thread_cpubind);
+    DO(mem,set_thisproc_membind);
+    DO(mem,get_thisproc_membind);
+    DO(mem,set_thisthread_membind);
+    DO(mem,get_thisthread_membind);
+    DO(mem,set_proc_membind);
+    DO(mem,get_proc_membind);
+    DO(mem,set_area_membind);
+    DO(mem,get_area_membind);
+    DO(mem,alloc_membind);
   }
 
   return 0;
@@ -1770,8 +1857,19 @@
   topology->set_thread_cpubind = NULL;
   topology->get_thread_cpubind = NULL;
 #endif
+  topology->set_thisproc_membind = NULL;
+  topology->get_thisproc_membind = NULL;
+  topology->set_thisthread_membind = NULL;
+  topology->get_thisthread_membind = NULL;
+  topology->set_proc_membind = NULL;
+  topology->get_proc_membind = NULL;
+  topology->set_area_membind = NULL;
+  topology->get_area_membind = NULL;
+  topology->alloc_membind = NULL;
+  topology->free_membind = NULL;
   memset(topology->support.discovery, 0, sizeof(*topology->support.discovery));
   memset(topology->support.cpubind, 0, sizeof(*topology->support.cpubind));
+  memset(topology->support.membind, 0, sizeof(*topology->support.membind));
 
   /* No objects by default but System on top by default */
   memset(topology->level_nbobjects, 0, sizeof(topology->level_nbobjects));
@@ -1811,6 +1909,7 @@
 
   topology->support.discovery = malloc(sizeof(*topology->support.discovery));
   topology->support.cpubind = malloc(sizeof(*topology->support.cpubind));
+  topology->support.membind = malloc(sizeof(*topology->support.membind));
 
   /* Only ignore useless cruft by default */
   for(i=0; i< HWLOC_OBJ_TYPE_MAX; i++)
@@ -1892,7 +1991,7 @@
   /* cleanup existing backend */
   hwloc_backend_exit(topology);
 
-  return hwloc_backend_xml_init(topology, xmlpath);
+  return hwloc_backend_xml_init(topology, xmlpath, NULL, 0);
 #else /* HWLOC_HAVE_XML */
   errno = ENOSYS;
   return -1;
@@ -1900,6 +1999,21 @@
 }
 
 int
+hwloc_topology_set_xmlbuffer(struct hwloc_topology *topology __hwloc_attribute_unused,
+                             const char *xmlbuffer __hwloc_attribute_unused, int size)
+{
+#ifdef HWLOC_HAVE_XML
+  /* cleanup existing backend */
+  hwloc_backend_exit(topology);
+
+  return hwloc_backend_xml_init(topology, NULL, xmlbuffer, size);
+#else /* HWLOC_HAVE_XML */
+  errno = ENOSYS;
+  return -1;
+#endif /* !HWLOC_HAVE_XML */
+}
+
+int
 hwloc_topology_set_flags (struct hwloc_topology *topology, unsigned long flags)
 {
   topology->flags = flags;
@@ -1958,7 +2072,7 @@
   unsigned i;
   for(i=0; i<root->arity; i++)
     hwloc_topology_clear_tree (topology, root->children[i]);
-  free_object (root);
+  hwloc_free_object (root);
 }
 
 static void
@@ -1977,6 +2091,7 @@
   hwloc_backend_exit(topology);
   free(topology->support.discovery);
   free(topology->support.cpubind);
+  free(topology->support.membind);
   free(topology);
 }
 
@@ -2007,7 +2122,7 @@
     char *xmlpath_env = getenv("HWLOC_FORCE_XMLFILE");
     if (xmlpath_env) {
       hwloc_backend_exit(topology);
-      hwloc_backend_xml_init(topology, xmlpath_env);
+      hwloc_backend_xml_init(topology, xmlpath_env, NULL, 0);
     }
   }
 #endif
@@ -2024,7 +2139,7 @@
   if (topology->backend_type == HWLOC_BACKEND_NONE) {
     char *xmlpath_env = getenv("HWLOC_XMLFILE");
     if (xmlpath_env)
-      hwloc_backend_xml_init(topology, xmlpath_env);
+      hwloc_backend_xml_init(topology, xmlpath_env, NULL, 0);
   }
 #endif
 
@@ -2076,7 +2191,7 @@
 static void
 hwloc__check_children(struct hwloc_obj *parent)
 {
-  hwloc_cpuset_t remaining_parent_set;
+  hwloc_bitmap_t remaining_parent_set;
   unsigned j;
 
   if (!parent->arity) {
@@ -2102,27 +2217,27 @@
   assert(parent->last_child->next_sibling == NULL);
 
   if (parent->cpuset) {
-    remaining_parent_set = hwloc_cpuset_dup(parent->cpuset);
+    remaining_parent_set = hwloc_bitmap_dup(parent->cpuset);
     for(j=0; j<parent->arity; j++) {
       if (!parent->children[j]->cpuset)
 	continue;
       /* check that child cpuset is included in the parent */
-      assert(hwloc_cpuset_isincluded(parent->children[j]->cpuset, remaining_parent_set));
+      assert(hwloc_bitmap_isincluded(parent->children[j]->cpuset, remaining_parent_set));
 #if !defined(NDEBUG)
       /* check that children are correctly ordered (see below), empty ones may be anywhere */
-      if (!hwloc_cpuset_iszero(parent->children[j]->cpuset)) {
-        int firstchild = hwloc_cpuset_first(parent->children[j]->cpuset);
-        int firstparent = hwloc_cpuset_first(remaining_parent_set);
+      if (!hwloc_bitmap_iszero(parent->children[j]->cpuset)) {
+        int firstchild = hwloc_bitmap_first(parent->children[j]->cpuset);
+        int firstparent = hwloc_bitmap_first(remaining_parent_set);
         assert(firstchild == firstparent);
       }
 #endif
       /* clear previously used parent cpuset bits so that we actually checked above
        * that children cpusets do not intersect and are ordered properly
        */
-      hwloc_cpuset_andnot(remaining_parent_set, remaining_parent_set, parent->children[j]->cpuset);
+      hwloc_bitmap_andnot(remaining_parent_set, remaining_parent_set, parent->children[j]->cpuset);
     }
-    assert(hwloc_cpuset_iszero(remaining_parent_set));
-    hwloc_cpuset_free(remaining_parent_set);
+    assert(hwloc_bitmap_iszero(remaining_parent_set));
+    hwloc_bitmap_free(remaining_parent_set);
   }
 
   /* checks for all children */
@@ -2183,17 +2298,17 @@
       }
       if (obj->complete_cpuset) {
         if (obj->cpuset)
-          assert(hwloc_cpuset_isincluded(obj->cpuset, obj->complete_cpuset));
+          assert(hwloc_bitmap_isincluded(obj->cpuset, obj->complete_cpuset));
         if (obj->online_cpuset)
-          assert(hwloc_cpuset_isincluded(obj->online_cpuset, obj->complete_cpuset));
+          assert(hwloc_bitmap_isincluded(obj->online_cpuset, obj->complete_cpuset));
         if (obj->allowed_cpuset)
-          assert(hwloc_cpuset_isincluded(obj->allowed_cpuset, obj->complete_cpuset));
+          assert(hwloc_bitmap_isincluded(obj->allowed_cpuset, obj->complete_cpuset));
       }
       if (obj->complete_nodeset) {
         if (obj->nodeset)
-          assert(hwloc_cpuset_isincluded(obj->nodeset, obj->complete_nodeset));
+          assert(hwloc_bitmap_isincluded(obj->nodeset, obj->complete_nodeset));
         if (obj->allowed_nodeset)
-          assert(hwloc_cpuset_isincluded(obj->allowed_nodeset, obj->complete_nodeset));
+          assert(hwloc_bitmap_isincluded(obj->allowed_nodeset, obj->complete_nodeset));
       }
       /* check children */
       hwloc__check_children(obj);

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/traversal.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/traversal.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/src/traversal.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -57,15 +59,15 @@
       nextparent = parent->parent;
       if (!nextparent)
 	goto out;
-      if (!hwloc_cpuset_isequal(parent->cpuset, nextparent->cpuset))
+      if (!hwloc_bitmap_isequal(parent->cpuset, nextparent->cpuset))
 	break;
       parent = nextparent;
     }
 
     /* traverse src's objects and find those that are in nextparent and were not in parent */
     for(i=0; i<src_nbobjects; i++) {
-      if (hwloc_cpuset_isincluded(src_objs[i]->cpuset, nextparent->cpuset)
-	  && !hwloc_cpuset_isincluded(src_objs[i]->cpuset, parent->cpuset)) {
+      if (hwloc_bitmap_isincluded(src_objs[i]->cpuset, nextparent->cpuset)
+	  && !hwloc_bitmap_isincluded(src_objs[i]->cpuset, parent->cpuset)) {
 	objs[stored++] = src_objs[i];
 	if (stored == max)
 	  goto out;
@@ -79,7 +81,7 @@
 }
 
 static int
-hwloc__get_largest_objs_inside_cpuset (struct hwloc_obj *current, hwloc_const_cpuset_t set,
+hwloc__get_largest_objs_inside_cpuset (struct hwloc_obj *current, hwloc_const_bitmap_t set,
 				       struct hwloc_obj ***res, int *max)
 {
   int gotten = 0;
@@ -89,7 +91,7 @@
   if (*max <= 0)
     return 0;
 
-  if (hwloc_cpuset_isequal(current->cpuset, set)) {
+  if (hwloc_bitmap_isequal(current->cpuset, set)) {
     **res = current;
     (*res)++;
     (*max)--;
@@ -97,19 +99,19 @@
   }
 
   for (i=0; i<current->arity; i++) {
-    hwloc_cpuset_t subset = hwloc_cpuset_dup(set);
+    hwloc_bitmap_t subset = hwloc_bitmap_dup(set);
     int ret;
 
     /* split out the cpuset part corresponding to this child and see if there's anything to do */
-    hwloc_cpuset_and(subset, subset, current->children[i]->cpuset);
-    if (hwloc_cpuset_iszero(subset)) {
-      hwloc_cpuset_free(subset);
+    hwloc_bitmap_and(subset, subset, current->children[i]->cpuset);
+    if (hwloc_bitmap_iszero(subset)) {
+      hwloc_bitmap_free(subset);
       continue;
     }
 
     ret = hwloc__get_largest_objs_inside_cpuset (current->children[i], subset, res, max);
     gotten += ret;
-    hwloc_cpuset_free(subset);
+    hwloc_bitmap_free(subset);
 
     /* if no more room to store remaining objects, return what we got so far */
     if (!*max)
@@ -120,12 +122,12 @@
 }
 
 int
-hwloc_get_largest_objs_inside_cpuset (struct hwloc_topology *topology, hwloc_const_cpuset_t set,
+hwloc_get_largest_objs_inside_cpuset (struct hwloc_topology *topology, hwloc_const_bitmap_t set,
 				      struct hwloc_obj **objs, int max)
 {
   struct hwloc_obj *current = topology->levels[0][0];
 
-  if (!hwloc_cpuset_isincluded(set, current->cpuset))
+  if (!hwloc_bitmap_isincluded(set, current->cpuset))
     return -1;
 
   if (max <= 0)
@@ -201,50 +203,78 @@
 {
   char memory[64] = "";
   char specific[64] = "";
-  const char *specificseparator;
+  char infos[256] = "";
+  const char *prefix = "";
 
   if (verbose) {
     if (obj->memory.local_memory)
-      hwloc_snprintf(memory, sizeof(memory), "local=%lu%s%stotal=%lu%s",
+      hwloc_snprintf(memory, sizeof(memory), "%slocal=%lu%s%stotal=%lu%s",
+		     prefix,
 		     (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
 		     hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose),
 		     separator,
 		     (unsigned long) hwloc_memory_size_printf_value(obj->memory.local_memory, verbose),
 		     hwloc_memory_size_printf_unit(obj->memory.local_memory, verbose));
     else if (obj->memory.total_memory)
-      hwloc_snprintf(memory, sizeof(memory), "total=%lu%s",
+      hwloc_snprintf(memory, sizeof(memory), "%stotal=%lu%s",
+		     prefix,
 		     (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
 		     hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose));
   } else {
     if (obj->memory.total_memory)
-      hwloc_snprintf(memory, sizeof(memory), "%lu%s",
+      hwloc_snprintf(memory, sizeof(memory), "%s%lu%s",
+		     prefix,
 		     (unsigned long) hwloc_memory_size_printf_value(obj->memory.total_memory, verbose),
 		     hwloc_memory_size_printf_unit(obj->memory.total_memory, verbose));
   }
+  if (*memory)
+    prefix = separator;
 
   switch (obj->type) {
-  case HWLOC_OBJ_MACHINE:
+  case HWLOC_OBJ_CACHE:
     if (verbose)
-      hwloc_snprintf(specific, sizeof(specific), "%s%s%s",
-		     obj->attr->machine.dmi_board_vendor ? obj->attr->machine.dmi_board_vendor : "",
-		     obj->attr->machine.dmi_board_vendor && obj->attr->machine.dmi_board_name ? separator : "",
-		     obj->attr->machine.dmi_board_name ? obj->attr->machine.dmi_board_name : "");
+      hwloc_snprintf(specific, sizeof(specific), "%s%lu%s%sline=%u",
+		     prefix,
+		     (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
+		     hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose),
+		     separator, obj->attr->cache.linesize);
+    else
+      hwloc_snprintf(specific, sizeof(specific), "%s%lu%s",
+		     prefix,
+		     (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
+		     hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose));
     break;
-  case HWLOC_OBJ_CACHE:
-    hwloc_snprintf(specific, sizeof(specific), "%lu%s",
-		   (unsigned long) hwloc_memory_size_printf_value(obj->attr->cache.size, verbose),
-		   hwloc_memory_size_printf_unit(obj->attr->cache.size, verbose));
-    break;
   default:
     break;
   }
+  if (*specific)
+    prefix = separator;
 
-  /* does the type-specific attribute string need separator prefix ? */
-  specificseparator = *memory && *specific ? separator : "";
+  if (verbose) {
+    char *tmpinfos = infos;
+    int tmplen = sizeof(infos);
+    int res;
+    unsigned i;
+    for(i=0; i<obj->infos_count; i++) {
+      if (strchr(obj->infos[i].value, ' '))
+	res = hwloc_snprintf(tmpinfos, tmplen, "%s%s=\"%s\"",
+			     prefix,
+			     obj->infos[i].name, obj->infos[i].value);
+      else
+	res = hwloc_snprintf(tmpinfos, tmplen, "%s%s=%s",
+			     prefix,
+			     obj->infos[i].name, obj->infos[i].value);
+      if (res >= tmplen)
+        res = tmplen;
+      tmplen -= res;
+      tmpinfos += res;
+    }
+  }
+  if (*infos)
+    prefix = separator;
 
   return hwloc_snprintf(string, size, "%s%s%s",
-			memory,
-			specificseparator, specific);
+			memory, specific, infos);
 }
 
 
@@ -273,15 +303,15 @@
 
 int hwloc_obj_cpuset_snprintf(char *str, size_t size, size_t nobj, struct hwloc_obj * const *objs)
 {
-  hwloc_cpuset_t set = hwloc_cpuset_alloc();
+  hwloc_bitmap_t set = hwloc_bitmap_alloc();
   int res;
   unsigned i;
 
-  hwloc_cpuset_zero(set);
+  hwloc_bitmap_zero(set);
   for(i=0; i<nobj; i++)
-    hwloc_cpuset_or(set, set, objs[i]->cpuset);
+    hwloc_bitmap_or(set, set, objs[i]->cpuset);
 
-  res = hwloc_cpuset_snprintf(str, size, set);
-  hwloc_cpuset_free(set);
+  res = hwloc_bitmap_snprintf(str, size, set);
+  hwloc_bitmap_free(set);
   return res;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,16 +1,22 @@
-# Copyright 2009 INRIA, Université Bordeaux 1
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CFLAGS = $(HWLOC_CFLAGS)
 AM_CPPFLAGS = $(HWLOC_CPPFLAGS)
 AM_LDFLAGS = $(HWLOC_LDFLAGS)
 
-SUBDIRS = linux ports xml
+SUBDIRS = ports xml
+DIST_SUBDIRS = ports xml linux
 
+if HWLOC_HAVE_LINUX
+SUBDIRS += linux
+endif HWLOC_HAVE_LINUX
+
 LDADD =
 
 if HWLOC_BUILD_TESTS
-check_PROGRAMS = hwloc_cpuset_string \
+check_PROGRAMS = hwloc_bitmap_string \
 	hwloc_get_closest_objs \
 	hwloc_get_obj_covering_cpuset \
 	hwloc_get_cache_covering_cpuset \
@@ -19,8 +25,8 @@
 	hwloc_get_obj_inside_cpuset \
 	hwloc_get_shared_cache_covering_obj \
 	hwloc_get_obj_below_array_by_type \
-	hwloc_cpuset_first_last_weight \
-	hwloc_cpuset_singlify \
+	hwloc_bitmap_first_last_weight \
+	hwloc_bitmap_singlify \
 	hwloc_type_depth \
 	hwloc_bind \
 	hwloc_object_userdata \
@@ -40,6 +46,22 @@
 check_PROGRAMS += openfabrics-verbs
 endif HWLOC_HAVE_LIBIBVERBS
 
+if HWLOC_HAVE_MYRIEXPRESS
+check_PROGRAMS += myriexpress
+endif HWLOC_HAVE_MYRIEXPRESS
+
+if HWLOC_HAVE_CUDA
+check_PROGRAMS += cuda
+endif HWLOC_HAVE_CUDA
+
+if HWLOC_HAVE_CUDART
+check_PROGRAMS += cudart
+endif HWLOC_HAVE_CUDART
+
+if HWLOC_HAVE_XML
+check_PROGRAMS += xmlbuffer
+endif HWLOC_HAVE_XML
+
 TESTS = $(check_PROGRAMS)
 
 # The library has a different name depending on whether we are
@@ -54,6 +76,10 @@
 
 linux_libnuma_LDFLAGS = -lnuma
 openfabrics_verbs_LDFLAGS = -libverbs
+myriexpress_LDFLAGS = -lmyriexpress
+cuda_LDFLAGS = -lcuda
+cudart_LDFLAGS = -lcuda -lcudart
+xmlbuffer = -lxml2
 if !HWLOC_HAVE_WINDOWS
 hwloc_bind_LDFLAGS = -lpthread
 endif !HWLOC_HAVE_WINDOWS

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cuda.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cuda.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cuda.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,64 @@
+/*
+ * Copyright © 2010 INRIA
+ * See COPYING in top-level directory.
+ */
+
+#include <stdio.h>
+#include <assert.h>
+#include <cuda.h>
+#include <private/config.h>
+#include <hwloc.h>
+#include <hwloc/cuda.h>
+
+/* check the CUDA Driver API helpers */
+
+int main(void)
+{
+  hwloc_topology_t topology;
+  CUresult cres;
+  CUdevice device;
+  int count, i;
+  int err;
+
+  cres = cuInit(0);
+  if (cres != CUDA_SUCCESS) {
+    printf("cuInit failed %d\n", cres);
+    return 0;
+  }
+
+  cres = cuDeviceGetCount(&count);
+  if (cres != CUDA_SUCCESS) {
+    printf("cuDeviceGetCount failed %d\n", cres);
+    return 0;
+  }
+  printf("cuDeviceGetCount found %d devices\n", count);
+
+  hwloc_topology_init(&topology);
+  hwloc_topology_load(topology);
+
+  for(i=0; i<count; i++) {
+    hwloc_bitmap_t set;
+
+    cres = cuDeviceGet(&device, i);
+    if (cres != CUDA_SUCCESS) {
+      printf("failed to get device %d\n", i);
+      continue;
+    }
+
+    set = hwloc_bitmap_alloc();
+    err = hwloc_cuda_get_device_cpuset(topology, device, set);
+    if (err < 0) {
+      printf("failed to get cpuset for device %d\n", i);
+    } else {
+      char *cpuset_string = NULL;
+      hwloc_bitmap_asprintf(&cpuset_string, set);
+      printf("got cpuset %s for device %d\n", cpuset_string, i);
+      free(cpuset_string);
+    }
+    hwloc_bitmap_free(set);
+  }
+
+  hwloc_topology_destroy(topology);
+
+  return 0;
+}

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cudart.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cudart.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/cudart.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2010 INRIA
+ * See COPYING in top-level directory.
+ */
+
+#include <stdio.h>
+#include <assert.h>
+#include <cuda_runtime_api.h>
+#include <private/config.h>
+#include <hwloc.h>
+#include <hwloc/cudart.h>
+
+/* check the CUDA Runtime API helpers */
+
+int main(void)
+{
+  hwloc_topology_t topology;
+  cudaError_t cerr;
+  int count, i;
+  int err;
+
+  cerr = cudaGetDeviceCount(&count);
+  if (cerr) {
+    printf("cudaGetDeviceCount failed %d\n", cerr);
+    return -1;
+  }
+  printf("cudaGetDeviceCount found %d devices\n", count);
+
+  hwloc_topology_init(&topology);
+  hwloc_topology_load(topology);
+
+  for(i=0; i<count; i++) {
+    hwloc_bitmap_t set;
+
+    set = hwloc_bitmap_alloc();
+    err = hwloc_cudart_get_device_cpuset(topology, i, set);
+    if (err < 0) {
+      printf("failed to get cpuset for device %d\n", i);
+    } else {
+      char *cpuset_string = NULL;
+      hwloc_bitmap_asprintf(&cpuset_string, set);
+      printf("got cpuset %s for device %d\n", cpuset_string, i);
+      free(cpuset_string);
+    }
+    hwloc_bitmap_free(set);
+  }
+
+  hwloc_topology_destroy(topology);
+
+  return 0;
+}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/do_test.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/do_test.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/do_test.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -9,12 +9,12 @@
 {
     mytest_hwloc_topology_t topology;
     unsigned depth;
-    hwloc_cpuset_t cpu_set;
+    hwloc_bitmap_t cpu_set;
 
     /* Just call a bunch of functions to see if we can link and run */
 
-    printf("*** Test 1: cpuset alloc\n");
-    cpu_set = mytest_hwloc_cpuset_alloc();
+    printf("*** Test 1: bitmap alloc\n");
+    cpu_set = mytest_hwloc_bitmap_alloc();
     if (NULL == cpu_set) return 1;
     printf("*** Test 2: topology init\n");
     if (0 != mytest_hwloc_topology_init(&topology)) return 1;
@@ -26,8 +26,8 @@
     printf("    Max depth: %u\n", depth);
     printf("*** Test 5: topology destroy\n");
     mytest_hwloc_topology_destroy(topology);
-    printf("*** Test 6: cpuset free\n");
-    mytest_hwloc_cpuset_free(cpu_set);
+    printf("*** Test 6: bitmap free\n");
+    mytest_hwloc_bitmap_free(cpu_set);
 
     return 0;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/main.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/main.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/main.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/run-embedded-tests.sh
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/run-embedded-tests.sh	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/embedded/run-embedded-tests.sh	2010-11-24 09:21:55 UTC (rev 7494)
@@ -41,6 +41,8 @@
 
 #---------------------------------------------------------------------
 
+# $1 = announcement banner
+# $2 = path to configure script
 do_build() {
     print Running $1 configure...
     try $2/configure 2>&1 | tee config.out

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/glibc-sched.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/glibc-sched.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/glibc-sched.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -17,7 +19,7 @@
 {
   hwloc_topology_t topology;
   unsigned depth;
-  hwloc_cpuset_t hwlocset;
+  hwloc_bitmap_t hwlocset;
   cpu_set_t schedset;
   hwloc_obj_t obj;
   int err;
@@ -26,7 +28,7 @@
   hwloc_topology_load(topology);
   depth = hwloc_topology_get_depth(topology);
 
-  hwlocset = hwloc_cpuset_dup(hwloc_topology_get_complete_cpuset(topology));
+  hwlocset = hwloc_bitmap_dup(hwloc_topology_get_complete_cpuset(topology));
   hwloc_cpuset_to_glibc_sched_affinity(topology, hwlocset, &schedset, sizeof(schedset));
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
   err = sched_setaffinity(0, sizeof(schedset));
@@ -34,7 +36,7 @@
   err = sched_setaffinity(0, sizeof(schedset), &schedset);
 #endif
   assert(!err);
-  hwloc_cpuset_free(hwlocset);
+  hwloc_bitmap_free(hwlocset);
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
   err = sched_getaffinity(0, sizeof(schedset));
@@ -42,19 +44,19 @@
   err = sched_getaffinity(0, sizeof(schedset), &schedset);
 #endif
   assert(!err);
-  hwlocset = hwloc_cpuset_alloc();
+  hwlocset = hwloc_bitmap_alloc();
   hwloc_cpuset_from_glibc_sched_affinity(topology, hwlocset, &schedset, sizeof(schedset));
-  assert(hwloc_cpuset_isincluded(hwlocset, hwloc_topology_get_complete_cpuset(topology)));
-  hwloc_cpuset_andnot(hwlocset, hwlocset, hwloc_topology_get_online_cpuset(topology));
-  hwloc_cpuset_andnot(hwlocset, hwlocset, hwloc_topology_get_allowed_cpuset(topology));
-  assert(hwloc_cpuset_iszero(hwlocset));
-  hwloc_cpuset_free(hwlocset);
+  assert(hwloc_bitmap_isincluded(hwlocset, hwloc_topology_get_complete_cpuset(topology)));
+  hwloc_bitmap_andnot(hwlocset, hwlocset, hwloc_topology_get_online_cpuset(topology));
+  hwloc_bitmap_andnot(hwlocset, hwlocset, hwloc_topology_get_allowed_cpuset(topology));
+  assert(hwloc_bitmap_iszero(hwlocset));
+  hwloc_bitmap_free(hwlocset);
 
   obj = hwloc_get_obj_by_depth(topology, depth-1, hwloc_get_nbobjs_by_depth(topology, depth-1) - 1);
   assert(obj);
   assert(obj->type == HWLOC_OBJ_PU);
 
-  hwlocset = hwloc_cpuset_dup(obj->cpuset);
+  hwlocset = hwloc_bitmap_dup(obj->cpuset);
   hwloc_cpuset_to_glibc_sched_affinity(topology, hwlocset, &schedset, sizeof(schedset));
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
   err = sched_setaffinity(0, sizeof(schedset));
@@ -62,7 +64,7 @@
   err = sched_setaffinity(0, sizeof(schedset), &schedset);
 #endif
   assert(!err);
-  hwloc_cpuset_free(hwlocset);
+  hwloc_bitmap_free(hwlocset);
 
 #ifdef HWLOC_HAVE_OLD_SCHED_SETAFFINITY
   err = sched_getaffinity(0, sizeof(schedset));
@@ -70,10 +72,10 @@
   err = sched_getaffinity(0, sizeof(schedset), &schedset);
 #endif
   assert(!err);
-  hwlocset = hwloc_cpuset_alloc();
+  hwlocset = hwloc_bitmap_alloc();
   hwloc_cpuset_from_glibc_sched_affinity(topology, hwlocset, &schedset, sizeof(schedset));
-  assert(hwloc_cpuset_isequal(hwlocset, obj->cpuset));
-  hwloc_cpuset_free(hwlocset);
+  assert(hwloc_bitmap_isequal(hwlocset, obj->cpuset));
+  hwloc_bitmap_free(hwlocset);
 
   hwloc_topology_destroy(topology);
   return 0;

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bind.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bind.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -24,24 +26,24 @@
     printf("%-40s: OK%s\n", msg, supported ? "" : " (unexpected)");
 }
 
-static void result_get(const char *msg, hwloc_const_cpuset_t expected, hwloc_const_cpuset_t result, int err, int supported)
+static void result_get(const char *msg, hwloc_const_bitmap_t expected, hwloc_const_bitmap_t result, int err, int supported)
 {
   const char *errmsg = strerror(errno);
   if (err)
     printf("%-40s: FAILED (%d, %s)%s\n", msg, errno, errmsg, supported ? "" : " (expected)");
-  else if (hwloc_cpuset_isequal(expected, result))
+  else if (!expected || hwloc_bitmap_isequal(expected, result))
     printf("%-40s: OK%s\n", msg, supported ? "" : " (unexpected)");
   else {
     char *expected_s, *result_s;
-    hwloc_cpuset_asprintf(&expected_s, expected);
-    hwloc_cpuset_asprintf(&result_s, result);
+    hwloc_bitmap_asprintf(&expected_s, expected);
+    hwloc_bitmap_asprintf(&result_s, result);
     printf("%-40s: expected %s, got %s\n", msg, expected_s, result_s);
   }
 }
 
-static void test(hwloc_const_cpuset_t cpuset, int flags)
+static void test(hwloc_const_bitmap_t cpuset, int flags)
 {
-  hwloc_cpuset_t new_cpuset = hwloc_cpuset_alloc();
+  hwloc_bitmap_t new_cpuset = hwloc_bitmap_alloc();
   result_set("Bind this singlethreaded process", hwloc_set_cpubind(topology, cpuset, flags), support->cpubind->set_thisproc_cpubind || support->cpubind->set_thisthread_cpubind);
   result_get("Get  this singlethreaded process", cpuset, new_cpuset, hwloc_get_cpubind(topology, new_cpuset, flags), support->cpubind->get_thisproc_cpubind || support->cpubind->get_thisthread_cpubind);
   result_set("Bind this thread", hwloc_set_cpubind(topology, cpuset, flags | HWLOC_CPUBIND_THREAD), support->cpubind->set_thisthread_cpubind);
@@ -65,12 +67,72 @@
 #endif
 #endif /* !HWLOC_WIN_SYS */
   printf("\n");
-  hwloc_cpuset_free(new_cpuset);
+  hwloc_bitmap_free(new_cpuset);
 }
 
+static void testmem(hwloc_const_bitmap_t nodeset, hwloc_membind_policy_t policy, int flags, int expected)
+{
+  hwloc_bitmap_t new_nodeset = hwloc_bitmap_alloc();
+  hwloc_membind_policy_t newpolicy;
+  void *area;
+  size_t area_size = 1024;
+  result_set("Bind this singlethreaded process memory", hwloc_set_membind(topology, nodeset, policy, flags), (support->membind->set_thisproc_membind || support->membind->set_thisthread_membind) && expected);
+  result_get("Get  this singlethreaded process memory", nodeset, new_nodeset, hwloc_get_membind(topology, new_nodeset, &newpolicy, flags), (support->membind->get_thisproc_membind || support->membind->get_thisthread_membind) && expected);
+  result_set("Bind this thread memory", hwloc_set_membind(topology, nodeset, policy, flags | HWLOC_MEMBIND_THREAD), support->membind->set_thisproc_membind && expected);
+  result_get("Get  this thread memory", nodeset, new_nodeset, hwloc_get_membind(topology, new_nodeset, &newpolicy, flags | HWLOC_MEMBIND_THREAD), support->membind->get_thisproc_membind && expected);
+  result_set("Bind this whole process memory", hwloc_set_membind(topology, nodeset, policy, flags | HWLOC_MEMBIND_PROCESS), support->membind->set_thisproc_membind && expected);
+  result_get("Get  this whole process memory", nodeset, new_nodeset, hwloc_get_membind(topology, new_nodeset, &newpolicy, flags | HWLOC_MEMBIND_PROCESS), support->membind->get_thisproc_membind && expected);
+#ifdef HWLOC_WIN_SYS
+  result_set("Bind process memory", hwloc_set_proc_membind(topology, GetCurrentProcess(), nodeset, policy, flags), support->membind->set_proc_membind && expected);
+  result_get("Get  process memory", nodeset, new_nodeset, hwloc_get_proc_membind(topology, GetCurrentProcess(), new_nodeset, &newpolicy, flags), support->membind->get_proc_membind && expected);
+#else /* !HWLOC_WIN_SYS */
+  result_set("Bind process memory", hwloc_set_proc_membind(topology, getpid(), nodeset, policy, flags), support->membind->set_proc_membind && expected);
+  result_get("Get  process memory", nodeset, new_nodeset, hwloc_get_proc_membind(topology, getpid(), new_nodeset, &newpolicy, flags), support->membind->get_proc_membind && expected);
+#endif /* !HWLOC_WIN_SYS */
+  result_set("Bind area", hwloc_set_area_membind(topology, &new_nodeset, sizeof(new_nodeset), nodeset, policy, flags), support->membind->set_area_membind && expected);
+  result_get("Get  area", nodeset, new_nodeset, hwloc_get_area_membind(topology, &new_nodeset, sizeof(new_nodeset), new_nodeset, &newpolicy, flags), support->membind->get_area_membind && expected);
+  if (!(flags & HWLOC_MEMBIND_MIGRATE)) {
+    result_set("Alloc bound area", (area = hwloc_alloc_membind(topology, area_size, nodeset, policy, flags)) == NULL, (support->membind->alloc_membind && expected) || !(flags & HWLOC_MEMBIND_STRICT));
+    if (area) {
+      memset(area, 0, area_size);
+      result_get("Get   bound area", nodeset, new_nodeset, hwloc_get_area_membind(topology, area, area_size, new_nodeset, &newpolicy, flags), support->membind->get_area_membind && expected);
+      result_get("Free  bound area", NULL, NULL, hwloc_free_membind(topology, area, area_size), support->membind->alloc_membind && expected);
+    }
+  }
+  printf("\n");
+  hwloc_bitmap_free(new_nodeset);
+}
+
+static void testmem2(hwloc_const_bitmap_t set, int flags)
+{
+  printf("  default\n");
+  testmem(set, HWLOC_MEMBIND_DEFAULT, flags, 1);
+  printf("  firsttouch\n");
+  testmem(set, HWLOC_MEMBIND_FIRSTTOUCH, flags, support->membind->firsttouch_membind);
+  printf("  bound\n");
+  testmem(set, HWLOC_MEMBIND_BIND, flags, support->membind->bind_membind);
+  printf("  interleave\n");
+  testmem(set, HWLOC_MEMBIND_INTERLEAVE, flags, support->membind->interleave_membind);
+  printf("  replicate\n");
+  testmem(set, HWLOC_MEMBIND_REPLICATE, flags, support->membind->replicate_membind);
+  printf("  nexttouch\n");
+  testmem(set, HWLOC_MEMBIND_NEXTTOUCH, flags, support->membind->nexttouch_membind);
+}
+
+static void testmem3(hwloc_const_bitmap_t set)
+{
+  testmem2(set, 0);
+  printf("now strict\n\n");
+  testmem2(set, HWLOC_MEMBIND_STRICT);
+  printf("now migrate\n\n");
+  testmem2(set, HWLOC_MEMBIND_MIGRATE);
+  printf("now strictly migrate\n\n");
+  testmem2(set, HWLOC_MEMBIND_STRICT | HWLOC_MEMBIND_MIGRATE);
+}
+
 int main(void)
 {
-  hwloc_cpuset_t set;
+  hwloc_bitmap_t set;
   hwloc_obj_t obj;
   char *str = NULL;
 
@@ -80,45 +142,72 @@
   support = hwloc_topology_get_support(topology);
 
   obj = hwloc_get_root_obj(topology);
-  set = hwloc_cpuset_dup(obj->cpuset);
+  set = hwloc_bitmap_dup(obj->cpuset);
 
-  while (hwloc_cpuset_isequal(obj->cpuset, set)) {
+  while (hwloc_bitmap_isequal(obj->cpuset, set)) {
     if (!obj->arity)
       break;
     obj = obj->children[0];
   }
 
-  hwloc_cpuset_asprintf(&str, set);
+  hwloc_bitmap_asprintf(&str, set);
   printf("system set is %s\n", str);
   free(str);
 
   test(set, 0);
-
   printf("now strict\n");
   test(set, HWLOC_CPUBIND_STRICT);
 
-  hwloc_cpuset_free(set);
-  set = hwloc_cpuset_dup(obj->cpuset);
-  hwloc_cpuset_asprintf(&str, set);
+  hwloc_bitmap_free(set);
+  set = hwloc_bitmap_dup(obj->cpuset);
+  hwloc_bitmap_asprintf(&str, set);
   printf("obj set is %s\n", str);
   free(str);
 
   test(set, 0);
-
   printf("now strict\n");
   test(set, HWLOC_CPUBIND_STRICT);
 
-  hwloc_cpuset_singlify(set);
-  hwloc_cpuset_asprintf(&str, set);
+  hwloc_bitmap_singlify(set);
+  hwloc_bitmap_asprintf(&str, set);
   printf("singlified to %s\n", str);
   free(str);
 
   test(set, 0);
-
   printf("now strict\n");
   test(set, HWLOC_CPUBIND_STRICT);
+  hwloc_bitmap_free(set);
 
-  hwloc_cpuset_free(set);
+  printf("\n\nmemory tests\n\n");
+  printf("complete node set\n");
+  set = hwloc_bitmap_dup(hwloc_get_root_obj(topology)->cpuset);
+  hwloc_bitmap_asprintf(&str, set);
+  printf("i.e. cpuset %s\n", str);
+  free(str);
+  testmem3(set);
+  hwloc_bitmap_free(set);
+
+  obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, 0);
+  if (obj) {
+    set = hwloc_bitmap_dup(obj->cpuset);
+    hwloc_bitmap_asprintf(&str, set);
+    printf("cpuset set is %s\n", str);
+    free(str);
+
+    testmem3(set);
+
+    obj = hwloc_get_obj_by_type(topology, HWLOC_OBJ_NODE, 1);
+    if (obj) {
+      hwloc_bitmap_or(set, set, obj->cpuset);
+      hwloc_bitmap_asprintf(&str, set);
+      printf("cpuset set is %s\n", str);
+      free(str);
+
+      testmem3(set);
+    }
+    hwloc_bitmap_free(set);
+  }
+
   hwloc_topology_destroy(topology);
   return 0;
 }

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_first_last_weight.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_first_last_weight.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_first_last_weight.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,82 @@
+/*
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
+ * See COPYING in top-level directory.
+ */
+
+#include <private/config.h>
+#include <hwloc.h>
+
+#include <assert.h>
+
+/* check hwloc_bitmap_first(), _last(), _next() and _weight() */
+
+int main(void)
+{
+  hwloc_bitmap_t set;
+  int i, cpu, expected_cpu = 0;
+
+  /* empty set */
+  set = hwloc_bitmap_alloc();
+  assert(hwloc_bitmap_first(set) == -1);
+  assert(hwloc_bitmap_last(set) == -1);
+  assert(hwloc_bitmap_next(set, 0) == -1);
+  assert(hwloc_bitmap_weight(set) == 0);
+
+  /* full set */
+  hwloc_bitmap_fill(set);
+  assert(hwloc_bitmap_first(set) == 0);
+  assert(hwloc_bitmap_last(set) == -1);
+  assert(hwloc_bitmap_next(set, 0) == 1);
+  assert(hwloc_bitmap_next(set, 1) == 2);
+  assert(hwloc_bitmap_next(set, 2) == 3);
+  assert(hwloc_bitmap_next(set, 30) == 31);
+  assert(hwloc_bitmap_next(set, 31) == 32);
+  assert(hwloc_bitmap_next(set, 32) == 33);
+  assert(hwloc_bitmap_next(set, 62) == 63);
+  assert(hwloc_bitmap_next(set, 63) == 64);
+  assert(hwloc_bitmap_next(set, 64) == 65);
+  assert(hwloc_bitmap_next(set, 12345) == 12346);
+  assert(hwloc_bitmap_weight(set) == -1);
+
+  /* custom sets */
+  hwloc_bitmap_zero(set);
+  hwloc_bitmap_set_range(set, 36, 59);
+  assert(hwloc_bitmap_first(set) == 36);
+  assert(hwloc_bitmap_last(set) == 59);
+  assert(hwloc_bitmap_next(set, 0) == 36);
+  assert(hwloc_bitmap_next(set, 36) == 37);
+  assert(hwloc_bitmap_next(set, 59) == -1);
+  assert(hwloc_bitmap_weight(set) == 24);
+  hwloc_bitmap_set_range(set, 136, 259);
+  assert(hwloc_bitmap_first(set) == 36);
+  assert(hwloc_bitmap_last(set) == 259);
+  assert(hwloc_bitmap_next(set, 59) == 136);
+  assert(hwloc_bitmap_next(set, 259) == -1);
+  assert(hwloc_bitmap_weight(set) == 148);
+  hwloc_bitmap_clr(set, 199);
+  assert(hwloc_bitmap_first(set) == 36);
+  assert(hwloc_bitmap_last(set) == 259);
+  assert(hwloc_bitmap_next(set, 198) == 200);
+  assert(hwloc_bitmap_next(set, 199) == 200);
+  assert(hwloc_bitmap_weight(set) == 147);
+
+  i = 0;
+  hwloc_bitmap_foreach_begin(cpu, set) {
+    if (0 <= i && i < 24)
+      expected_cpu = i + 36;
+    else if (24 <= i && i < 87)
+      expected_cpu = i + 112;
+    else if (87 <= i && i < 147)
+      expected_cpu = i + 113;
+
+    assert(expected_cpu == cpu);
+
+    i++;
+  } hwloc_bitmap_foreach_end();
+
+  hwloc_bitmap_free(set);
+
+  return 0;
+}

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_singlify.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_singlify.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_singlify.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,53 @@
+/*
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
+ * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * See COPYING in top-level directory.
+ */
+
+#include <private/config.h>
+#include <hwloc.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+/* check hwloc_bitmap_singlify() */
+
+int main(void)
+{
+  hwloc_bitmap_t orig, expected;
+
+  orig = hwloc_bitmap_alloc();
+  expected = hwloc_bitmap_alloc();
+
+  /* empty set gives empty set */
+  hwloc_bitmap_singlify(orig);
+  assert(hwloc_bitmap_iszero(orig));
+
+  /* full set gives first bit only */
+  hwloc_bitmap_fill(orig);
+  hwloc_bitmap_singlify(orig);
+  hwloc_bitmap_zero(expected);
+  hwloc_bitmap_set(expected, 0);
+  assert(hwloc_bitmap_isequal(orig, expected));
+  assert(!hwloc_bitmap_compare(orig, expected));
+
+  /* actual non-trivial set */
+  hwloc_bitmap_zero(orig);
+  hwloc_bitmap_set(orig, 45);
+  hwloc_bitmap_set(orig, 46);
+  hwloc_bitmap_set(orig, 517);
+  hwloc_bitmap_singlify(orig);
+  hwloc_bitmap_zero(expected);
+  hwloc_bitmap_set(expected, 45);
+  assert(hwloc_bitmap_isequal(orig, expected));
+  assert(!hwloc_bitmap_compare(orig, expected));
+
+  hwloc_bitmap_free(orig);
+  hwloc_bitmap_free(expected);
+
+  return 0;
+}

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_string.c (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_string.c)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_string.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_bitmap_string.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,154 @@
+/*
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
+ * See COPYING in top-level directory.
+ */
+
+#include <private/config.h>
+#include <hwloc.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+
+/* check hwloc_bitmap_asprintf(), hwloc_obj_cpuset_snprintf() and hwloc_bitmap_sscanf() */
+
+int main(void)
+{
+  hwloc_topology_t topology;
+  unsigned depth;
+  char *string = NULL;
+  int stringlen, len;
+  hwloc_obj_t obj;
+  hwloc_bitmap_t set, set2;
+
+  /* check an empty cpuset */
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_asprintf(&string, set);
+  set2 = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set2, string);
+  free(string);
+  assert(hwloc_bitmap_isequal(set, set2));
+  hwloc_bitmap_free(set);
+  hwloc_bitmap_free(set2);
+
+  /* check an infinite cpuset */
+  set = hwloc_bitmap_alloc_full();
+  hwloc_bitmap_clr(set, 173);
+  hwloc_bitmap_clr_range(set, 60, 70);
+  hwloc_bitmap_asprintf(&string, set);
+  set2 = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set2, string);
+  free(string);
+  assert(hwloc_bitmap_isequal(set, set2));
+  hwloc_bitmap_free(set);
+  hwloc_bitmap_free(set2);
+
+  hwloc_topology_init(&topology);
+  hwloc_topology_set_synthetic(topology, "6 5 4 3 2");
+  hwloc_topology_load(topology);
+  depth = hwloc_topology_get_depth(topology);
+
+  obj = hwloc_get_root_obj(topology);
+  stringlen = hwloc_bitmap_asprintf(&string, obj->cpuset);
+  printf("system cpuset is %s\n", string);
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set, string);
+  assert(hwloc_bitmap_isequal(set, obj->cpuset));
+  hwloc_bitmap_free(set);
+  printf("system cpuset converted back and forth, ok\n");
+
+  printf("truncating system cpuset to NULL buffer\n");
+  len = hwloc_obj_cpuset_snprintf(NULL, 0, 1, &obj);
+  assert(len == stringlen);
+
+  printf("truncating system cpuset to 0 char (no modification)\n");
+  memset(string, 'X', 1);
+  string[1] = 0;
+  len = hwloc_obj_cpuset_snprintf(string, 0, 1, &obj);
+  assert(len == stringlen);
+  assert(string[0] == 'X');
+
+  printf("truncating system cpuset to 1 char (empty string)\n");
+  memset(string, 'X', 2);
+  string[2] = 0;
+  len = hwloc_obj_cpuset_snprintf(string, 1, 1, &obj);
+  printf("got %s\n", string);
+  assert(len == stringlen);
+  assert(string[0] == 0);
+  assert(string[1] == 'X');
+
+  printf("truncating system cpuset to 10 chars (single 32bit subset except last char)\n");
+  memset(string, 'X', 11);
+  string[11] = 0;
+  len = hwloc_obj_cpuset_snprintf(string, 10, 1, &obj);
+  printf("got %s\n", string);
+  assert(len == stringlen);
+  assert(string[8] == 'f');
+  assert(string[9] == 0);
+  assert(string[10] == 'X');
+
+  printf("truncating system cpuset to 11 chars (single 32bit subset)\n");
+  memset(string, 'X', 12);
+  string[12] = 0;
+  len = hwloc_obj_cpuset_snprintf(string, 11, 1, &obj);
+  printf("got %s\n", string);
+  assert(len == stringlen);
+  assert(string[9] == 'f');
+  assert(string[10] == 0);
+  assert(string[11] == 'X');
+
+  printf("truncating system cpuset to 23 chars (two 32bit subsets with ending comma)\n");
+  memset(string, 'X', 24);
+  string[24] = 0;
+  len = hwloc_obj_cpuset_snprintf(string, 23, 1, &obj);
+  printf("got %s\n", string);
+  assert(len == stringlen);
+  assert(string[20] == 'f');
+  assert(string[21] == ',');
+  assert(string[22] == 0);
+  assert(string[23] == 'X');
+
+  printf("truncating system cpuset to 51 chars (truncate to four and a half 32bit subsets)\n");
+  memset(string, 'X', 52);
+  string[52] = 0;
+  len = hwloc_obj_cpuset_snprintf(string, 51, 1, &obj);
+  printf("got %s\n", string);
+  assert(len == stringlen);
+  assert(string[49] == 'f');
+  assert(string[50] == 0);
+  assert(string[51] == 'X');
+
+  obj = hwloc_get_obj_by_depth(topology, depth-1, 0);
+  hwloc_obj_cpuset_snprintf(string, stringlen+1, 1, &obj);
+  printf("first cpu cpuset is %s\n", string);
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set, string);
+  assert(hwloc_bitmap_isequal(set, obj->cpuset));
+  hwloc_bitmap_free(set);
+  printf("first cpu cpuset converted back and forth, ok\n");
+
+  obj = hwloc_get_obj_by_depth(topology, depth-1, hwloc_get_nbobjs_by_depth(topology, depth-1) - 1);
+  hwloc_obj_cpuset_snprintf(string, stringlen+1, 1, &obj);
+  printf("last cpu cpuset is %s\n", string);
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set, string);
+  assert(hwloc_bitmap_isequal(set, obj->cpuset));
+  hwloc_bitmap_free(set);
+  printf("last cpu cpuset converted back and forth, ok\n");
+
+//  hwloc_bitmap_sscanf(set, "1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4,8,10,20\n");
+//  char *s;
+//  hwloc_bitmap_asprintf(&s, &set);
+//  printf("%s\n", s);
+//  free(s);
+//  will be truncated after ",4," since it's too large
+
+  free(string);
+
+  hwloc_topology_destroy(topology);
+
+  return 0;
+}

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_first_last_weight.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_first_last_weight.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_first_last_weight.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,82 +0,0 @@
-/*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * See COPYING in top-level directory.
- */
-
-#include <private/config.h>
-#include <hwloc.h>
-
-#include <assert.h>
-
-/* check hwloc_cpuset_first(), _last(), _next() and _weight() */
-
-int main(void)
-{
-  hwloc_cpuset_t set;
-  int i, cpu, expected_cpu;
-
-  /* empty set */
-  set = hwloc_cpuset_alloc();
-  assert(hwloc_cpuset_first(set) == -1);
-  assert(hwloc_cpuset_last(set) == -1);
-  assert(hwloc_cpuset_next(set, 0) == -1);
-  assert(hwloc_cpuset_weight(set) == 0);
-
-  /* full set */
-  hwloc_cpuset_fill(set);
-  assert(hwloc_cpuset_first(set) == 0);
-  assert(hwloc_cpuset_last(set) == HWLOC_NBMAXCPUS-1);
-  assert(hwloc_cpuset_next(set, 0) == 1);
-  assert(hwloc_cpuset_next(set, 1) == 2);
-  assert(hwloc_cpuset_next(set, 2) == 3);
-  assert(hwloc_cpuset_next(set, 30) == 31);
-  assert(hwloc_cpuset_next(set, 31) == 32);
-  assert(hwloc_cpuset_next(set, 32) == 33);
-  assert(hwloc_cpuset_next(set, 62) == 63);
-  assert(hwloc_cpuset_next(set, 63) == 64);
-  assert(hwloc_cpuset_next(set, 64) == 65);
-  assert(hwloc_cpuset_next(set, HWLOC_NBMAXCPUS-3) == HWLOC_NBMAXCPUS-2);
-  assert(hwloc_cpuset_next(set, HWLOC_NBMAXCPUS-2) == HWLOC_NBMAXCPUS-1);
-  assert(hwloc_cpuset_next(set, HWLOC_NBMAXCPUS-1) == -1);
-  assert(hwloc_cpuset_weight(set) == HWLOC_NBMAXCPUS);
-
-  /* custom sets */
-  hwloc_cpuset_zero(set);
-  hwloc_cpuset_set_range(set, 36, 59);
-  assert(hwloc_cpuset_first(set) == 36);
-  assert(hwloc_cpuset_last(set) == 59);
-  assert(hwloc_cpuset_next(set, 0) == 36);
-  assert(hwloc_cpuset_next(set, 36) == 37);
-  assert(hwloc_cpuset_next(set, 59) == -1);
-  assert(hwloc_cpuset_weight(set) == 24);
-  hwloc_cpuset_set_range(set, 136, 259);
-  assert(hwloc_cpuset_first(set) == 36);
-  assert(hwloc_cpuset_last(set) == 259);
-  assert(hwloc_cpuset_next(set, 59) == 136);
-  assert(hwloc_cpuset_next(set, 259) == -1);
-  assert(hwloc_cpuset_weight(set) == 148);
-  hwloc_cpuset_clr(set, 199);
-  assert(hwloc_cpuset_first(set) == 36);
-  assert(hwloc_cpuset_last(set) == 259);
-  assert(hwloc_cpuset_next(set, 198) == 200);
-  assert(hwloc_cpuset_next(set, 199) == 200);
-  assert(hwloc_cpuset_weight(set) == 147);
-
-  i = 0;
-  hwloc_cpuset_foreach_begin(cpu, set) {
-    if (0 <= i && i < 24)
-      expected_cpu = i + 36;
-    else if (24 <= i && i < 87)
-      expected_cpu = i + 112;
-    else if (87 <= i && i < 147)
-      expected_cpu = i + 113;
-
-    assert(expected_cpu == cpu);
-
-    i++;
-  } hwloc_cpuset_foreach_end();
-
-  hwloc_cpuset_free(set);
-
-  return 0;
-}

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_singlify.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_singlify.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_singlify.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,49 +0,0 @@
-/*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
- * See COPYING in top-level directory.
- */
-
-#include <private/config.h>
-#include <hwloc.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-/* check hwloc_cpuset_singlify() */
-
-int main(void)
-{
-  hwloc_cpuset_t orig, expected;
-
-  orig = hwloc_cpuset_alloc();
-  expected = hwloc_cpuset_alloc();
-
-  /* empty set gives empty set */
-  hwloc_cpuset_singlify(orig);
-  assert(hwloc_cpuset_iszero(orig));
-
-  /* full set gives first bit only */
-  hwloc_cpuset_fill(orig);
-  hwloc_cpuset_singlify(orig);
-  hwloc_cpuset_zero(expected);
-  hwloc_cpuset_set(expected, 0);
-  assert(!hwloc_cpuset_compare(orig, expected));
-
-  /* actual non-trivial set */
-  hwloc_cpuset_zero(orig);
-  hwloc_cpuset_set(orig, 45);
-  hwloc_cpuset_set(orig, 46);
-  hwloc_cpuset_set(orig, 517);
-  hwloc_cpuset_singlify(orig);
-  hwloc_cpuset_zero(expected);
-  hwloc_cpuset_set(expected, 45);
-  assert(!hwloc_cpuset_compare(orig, expected));
-
-  hwloc_cpuset_free(orig);
-  hwloc_cpuset_free(expected);
-
-  return 0;
-}

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_string.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_string.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_cpuset_string.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,129 +0,0 @@
-/*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * See COPYING in top-level directory.
- */
-
-#include <private/config.h>
-#include <hwloc.h>
-
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-#include <assert.h>
-
-/* check hwloc_cpuset_asprintf(), hwloc_obj_cpuset_snprintf() and hwloc_cpuset_from_string() */
-
-int main(void)
-{
-  hwloc_topology_t topology;
-  unsigned depth;
-  char *string = NULL;
-  int stringlen, len;
-  hwloc_obj_t obj;
-  hwloc_cpuset_t set;
-
-  hwloc_topology_init(&topology);
-  hwloc_topology_set_synthetic(topology, "6 5 4 3 2");
-  hwloc_topology_load(topology);
-  depth = hwloc_topology_get_depth(topology);
-
-  obj = hwloc_get_root_obj(topology);
-  stringlen = hwloc_cpuset_asprintf(&string, obj->cpuset);
-  printf("system cpuset is %s\n", string);
-  set = hwloc_cpuset_alloc();
-  hwloc_cpuset_from_string(set, string);
-  assert(hwloc_cpuset_isequal(set, obj->cpuset));
-  hwloc_cpuset_free(set);
-  printf("system cpuset converted back and forth, ok\n");
-
-  printf("truncating system cpuset to NULL buffer\n");
-  len = hwloc_obj_cpuset_snprintf(NULL, 0, 1, &obj);
-  assert(len == stringlen);
-
-  printf("truncating system cpuset to 0 char (no modification)\n");
-  memset(string, 'X', 1);
-  string[1] = 0;
-  len = hwloc_obj_cpuset_snprintf(string, 0, 1, &obj);
-  assert(len == stringlen);
-  assert(string[0] == 'X');
-
-  printf("truncating system cpuset to 1 char (empty string)\n");
-  memset(string, 'X', 2);
-  string[2] = 0;
-  len = hwloc_obj_cpuset_snprintf(string, 1, 1, &obj);
-  printf("got %s\n", string);
-  assert(len == stringlen);
-  assert(string[0] == 0);
-  assert(string[1] == 'X');
-
-  printf("truncating system cpuset to 10 chars (single 32bit subset except last char)\n");
-  memset(string, 'X', 11);
-  string[11] = 0;
-  len = hwloc_obj_cpuset_snprintf(string, 10, 1, &obj);
-  printf("got %s\n", string);
-  assert(len == stringlen);
-  assert(string[8] == 'f');
-  assert(string[9] == 0);
-  assert(string[10] == 'X');
-
-  printf("truncating system cpuset to 11 chars (single 32bit subset)\n");
-  memset(string, 'X', 12);
-  string[12] = 0;
-  len = hwloc_obj_cpuset_snprintf(string, 11, 1, &obj);
-  printf("got %s\n", string);
-  assert(len == stringlen);
-  assert(string[9] == 'f');
-  assert(string[10] == 0);
-  assert(string[11] == 'X');
-
-  printf("truncating system cpuset to 23 chars (two 32bit subsets with ending comma)\n");
-  memset(string, 'X', 24);
-  string[24] = 0;
-  len = hwloc_obj_cpuset_snprintf(string, 23, 1, &obj);
-  printf("got %s\n", string);
-  assert(len == stringlen);
-  assert(string[20] == 'f');
-  assert(string[21] == ',');
-  assert(string[22] == 0);
-  assert(string[23] == 'X');
-
-  printf("truncating system cpuset to 51 chars (truncate to four and a half 32bit subsets)\n");
-  memset(string, 'X', 52);
-  string[52] = 0;
-  len = hwloc_obj_cpuset_snprintf(string, 51, 1, &obj);
-  printf("got %s\n", string);
-  assert(len == stringlen);
-  assert(string[49] == 'f');
-  assert(string[50] == 0);
-  assert(string[51] == 'X');
-
-  obj = hwloc_get_obj_by_depth(topology, depth-1, 0);
-  hwloc_obj_cpuset_snprintf(string, stringlen+1, 1, &obj);
-  printf("first cpu cpuset is %s\n", string);
-  set = hwloc_cpuset_alloc();
-  hwloc_cpuset_from_string(set, string);
-  assert(hwloc_cpuset_isequal(set, obj->cpuset));
-  hwloc_cpuset_free(set);
-  printf("first cpu cpuset converted back and forth, ok\n");
-
-  obj = hwloc_get_obj_by_depth(topology, depth-1, hwloc_get_nbobjs_by_depth(topology, depth-1) - 1);
-  hwloc_obj_cpuset_snprintf(string, stringlen+1, 1, &obj);
-  printf("last cpu cpuset is %s\n", string);
-  set = hwloc_cpuset_alloc();
-  hwloc_cpuset_from_string(set, string);
-  assert(hwloc_cpuset_isequal(set, obj->cpuset));
-  hwloc_cpuset_free(set);
-  printf("last cpu cpuset converted back and forth, ok\n");
-
-//  hwloc_cpuset_from_string(set, "1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2,4,8,10,20\n");
-//  char *s = hwloc_cpuset_printf_value(&set);
-//  printf("%s\n", s);
-//  free(s);
-//  will be truncated after ",4," since it's too large
-
-  free(string);
-
-  hwloc_topology_destroy(topology);
-
-  return 0;
-}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_cache_covering_cpuset.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_cache_covering_cpuset.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_cache_covering_cpuset.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -19,7 +21,7 @@
 {
   hwloc_topology_t topology;
   hwloc_obj_t obj, cache;
-  hwloc_cpuset_t set;
+  hwloc_bitmap_t set;
 
   hwloc_topology_init(&topology);
   hwloc_topology_set_synthetic(topology, SYNTHETIC_TOPOLOGY_DESCRIPTION);
@@ -27,57 +29,57 @@
 
   /* check the cache above a given cpu */
 #define CPUINDEX 180
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   obj = hwloc_get_obj_by_depth(topology, 5, CPUINDEX);
   assert(obj);
-  hwloc_cpuset_or(set, set, obj->cpuset);
+  hwloc_bitmap_or(set, set, obj->cpuset);
   cache = hwloc_get_cache_covering_cpuset(topology, set);
   assert(cache);
   assert(cache->type == HWLOC_OBJ_CACHE);
   assert(cache->logical_index == CPUINDEX/2/3);
   assert(hwloc_obj_is_in_subtree(topology, obj, cache));
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   /* check the cache above two nearby cpus */
 #define CPUINDEX1 180
 #define CPUINDEX2 183
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   obj = hwloc_get_obj_by_depth(topology, 5, CPUINDEX1);
   assert(obj);
-  hwloc_cpuset_or(set, set, obj->cpuset);
+  hwloc_bitmap_or(set, set, obj->cpuset);
   obj = hwloc_get_obj_by_depth(topology, 5, CPUINDEX2);
   assert(obj);
-  hwloc_cpuset_or(set, set, obj->cpuset);
+  hwloc_bitmap_or(set, set, obj->cpuset);
   cache = hwloc_get_cache_covering_cpuset(topology, set);
   assert(cache);
   assert(cache->type == HWLOC_OBJ_CACHE);
   assert(cache->logical_index == CPUINDEX1/2/3);
   assert(cache->logical_index == CPUINDEX2/2/3);
   assert(hwloc_obj_is_in_subtree(topology, obj, cache));
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   /* check no cache above two distant cpus */
 #undef CPUINDEX1
 #define CPUINDEX1 300
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   obj = hwloc_get_obj_by_depth(topology, 5, CPUINDEX1);
   assert(obj);
-  hwloc_cpuset_or(set, set, obj->cpuset);
+  hwloc_bitmap_or(set, set, obj->cpuset);
   obj = hwloc_get_obj_by_depth(topology, 5, CPUINDEX2);
   assert(obj);
-  hwloc_cpuset_or(set, set, obj->cpuset);
+  hwloc_bitmap_or(set, set, obj->cpuset);
   cache = hwloc_get_cache_covering_cpuset(topology, set);
   assert(!cache);
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   /* check no cache above higher level */
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   obj = hwloc_get_obj_by_depth(topology, 2, 0);
   assert(obj);
-  hwloc_cpuset_or(set, set, obj->cpuset);
+  hwloc_bitmap_or(set, set, obj->cpuset);
   cache = hwloc_get_cache_covering_cpuset(topology, set);
   assert(!cache);
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   hwloc_topology_destroy(topology);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_closest_objs.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_closest_objs.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_closest_objs.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_largest_objs_inside_cpuset.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_largest_objs_inside_cpuset.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_largest_objs_inside_cpuset.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -29,7 +31,7 @@
   unsigned depth;
   hwloc_obj_t objs[OBJ_MAX];
   hwloc_obj_t obj;
-  hwloc_cpuset_t set;
+  hwloc_bitmap_t set;
   int ret;
 
   hwloc_topology_init(&topology);
@@ -52,25 +54,25 @@
   assert(objs[0] == obj);
 
   /* try an empty one */
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   ret = hwloc_get_largest_objs_inside_cpuset(topology, set, objs, 1);
   assert(ret == 0);
   objs[0] = hwloc_get_first_largest_obj_inside_cpuset(topology, set);
   assert(objs[0] == NULL);
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   /* try an impossible one */
-  set = hwloc_cpuset_alloc();
-  hwloc_cpuset_from_string(set, GIVEN_TOOLARGE_CPUSET_STRING);
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set, GIVEN_TOOLARGE_CPUSET_STRING);
   ret = hwloc_get_largest_objs_inside_cpuset(topology, set, objs, 1);
   assert(ret == -1);
   objs[0] = hwloc_get_first_largest_obj_inside_cpuset(topology, set);
   assert(objs[0] == NULL);
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   /* try a harder one with 1 obj instead of 2 needed */
-  set = hwloc_cpuset_alloc();
-  hwloc_cpuset_from_string(set, GIVEN_LARGESPLIT_CPUSET_STRING);
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set, GIVEN_LARGESPLIT_CPUSET_STRING);
   ret = hwloc_get_largest_objs_inside_cpuset(topology, set, objs, 1);
   assert(ret == 1);
   assert(objs[0] == hwloc_get_obj_by_depth(topology, depth-1, 0));
@@ -82,19 +84,19 @@
   assert(objs[0] == hwloc_get_obj_by_depth(topology, depth-1, 0));
   assert(objs[1] == hwloc_get_obj_by_depth(topology, depth-1, hwloc_get_nbobjs_by_depth(topology, depth-1)-1));
   objs[0] = hwloc_get_first_largest_obj_inside_cpuset(topology, set);
-  hwloc_cpuset_andnot(set, set, objs[0]->cpuset);
+  hwloc_bitmap_andnot(set, set, objs[0]->cpuset);
   objs[1] = hwloc_get_first_largest_obj_inside_cpuset(topology, set);
-  hwloc_cpuset_andnot(set, set, objs[1]->cpuset);
+  hwloc_bitmap_andnot(set, set, objs[1]->cpuset);
   objs[2] = hwloc_get_first_largest_obj_inside_cpuset(topology, set);
   assert(objs[0] == hwloc_get_obj_by_depth(topology, depth-1, 0));
   assert(objs[1] == hwloc_get_obj_by_depth(topology, depth-1, hwloc_get_nbobjs_by_depth(topology, depth-1)-1));
   assert(objs[2] == NULL);
-  assert(hwloc_cpuset_iszero(set));
-  hwloc_cpuset_free(set);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
 
   /* try a very hard one */
-  set = hwloc_cpuset_alloc();
-  hwloc_cpuset_from_string(set, GIVEN_HARD_CPUSET_STRING);
+  set = hwloc_bitmap_alloc();
+  hwloc_bitmap_sscanf(set, GIVEN_HARD_CPUSET_STRING);
   ret = hwloc_get_largest_objs_inside_cpuset(topology, set, objs, OBJ_MAX);
   assert(objs[0] == hwloc_get_obj_by_depth(topology, 5, 29));
   assert(objs[1] == hwloc_get_obj_by_depth(topology, 3, 5));
@@ -103,7 +105,7 @@
   assert(objs[4] == hwloc_get_obj_by_depth(topology, 2, 2));
   assert(objs[5] == hwloc_get_obj_by_depth(topology, 4, 36));
   assert(objs[6] == hwloc_get_obj_by_depth(topology, 5, 74));
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   hwloc_topology_destroy(topology);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_next_obj_covering_cpuset.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_next_obj_covering_cpuset.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_next_obj_covering_cpuset.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -19,7 +21,7 @@
 main (void)
 {
   hwloc_topology_t topology;
-  hwloc_cpuset_t set;
+  hwloc_bitmap_t set;
   hwloc_obj_t obj;
   int depth;
   int err;
@@ -28,7 +30,7 @@
   if (err)
     return EXIT_FAILURE;
 
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
 
 
 
@@ -37,7 +39,7 @@
   if (err)
     return EXIT_FAILURE;
 
-  hwloc_cpuset_from_string(set, "00008f18");
+  hwloc_bitmap_sscanf(set, "00008f18");
 
   obj = hwloc_get_next_obj_covering_cpuset_by_type(topology, set, HWLOC_OBJ_NODE, NULL);
   assert(obj == hwloc_get_obj_by_depth(topology, 1, 1));
@@ -59,7 +61,7 @@
   if (err)
     return EXIT_FAILURE;
 
-  hwloc_cpuset_from_string(set, "0ff08000");
+  hwloc_bitmap_sscanf(set, "0ff08000");
 
   depth = hwloc_get_type_depth(topology, HWLOC_OBJ_SOCKET);
   assert(depth == 2);
@@ -72,7 +74,7 @@
 
 
 
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   hwloc_topology_destroy (topology);
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_below_array_by_type.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_below_array_by_type.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_below_array_by_type.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_covering_cpuset.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_covering_cpuset.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_covering_cpuset.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -25,40 +27,40 @@
   hwloc_topology_t topology;
   char *string = NULL;
   hwloc_obj_t obj;
-  hwloc_cpuset_t set;
+  hwloc_bitmap_t set;
 
   hwloc_topology_init(&topology);
   hwloc_topology_set_synthetic(topology, SYNTHETIC_TOPOLOGY_DESCRIPTION);
   hwloc_topology_load(topology);
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
 
-  hwloc_cpuset_from_string(set, GIVEN_CPUSET_STRING);
+  hwloc_bitmap_sscanf(set, GIVEN_CPUSET_STRING);
   obj = hwloc_get_obj_covering_cpuset(topology, set);
 
   assert(obj);
   fprintf(stderr, "found covering object type %s covering cpuset %s\n",
 	  hwloc_obj_type_string(obj->type), GIVEN_CPUSET_STRING);
-  assert(hwloc_cpuset_isincluded(set, obj->cpuset));
+  assert(hwloc_bitmap_isincluded(set, obj->cpuset));
 
-  hwloc_cpuset_asprintf(&string, obj->cpuset);
+  hwloc_bitmap_asprintf(&string, obj->cpuset);
   fprintf(stderr, "covering object of %s is %s, expected %s\n",
 	  GIVEN_CPUSET_STRING, string, EXPECTED_CPUSET_STRING);
   assert(!strcmp(EXPECTED_CPUSET_STRING, string));
   free(string);
 
-  hwloc_cpuset_from_string(set, GIVEN_LARGESPLIT_CPUSET_STRING);
+  hwloc_bitmap_sscanf(set, GIVEN_LARGESPLIT_CPUSET_STRING);
   obj = hwloc_get_obj_covering_cpuset(topology, set);
   assert(obj == hwloc_get_root_obj(topology));
   fprintf(stderr, "found system as covering object of first+last cpus cpuset %s\n",
 	  GIVEN_LARGESPLIT_CPUSET_STRING);
 
-  hwloc_cpuset_from_string(set, GIVEN_TOOLARGE_CPUSET_STRING);
+  hwloc_bitmap_sscanf(set, GIVEN_TOOLARGE_CPUSET_STRING);
   obj = hwloc_get_obj_covering_cpuset(topology, set);
   assert(!obj);
   fprintf(stderr, "found no covering object for too-large cpuset %s\n",
 	  GIVEN_TOOLARGE_CPUSET_STRING);
 
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
   hwloc_topology_destroy(topology);
 
   return EXIT_SUCCESS;

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_inside_cpuset.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_inside_cpuset.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_obj_inside_cpuset.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_shared_cache_covering_obj.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_shared_cache_covering_obj.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_get_shared_cache_covering_obj.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_insert_misc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_insert_misc.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_insert_misc.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -14,14 +16,14 @@
 int main(void)
 {
   hwloc_topology_t topology;
-  hwloc_cpuset_t cpuset;
+  hwloc_bitmap_t cpuset;
   hwloc_obj_t obj;
 
   hwloc_topology_init(&topology);
   hwloc_topology_load(topology);
   hwloc_topology_check(topology);
-  cpuset = hwloc_cpuset_alloc();
-  hwloc_cpuset_set(cpuset, 0);
+  cpuset = hwloc_bitmap_alloc();
+  hwloc_bitmap_set(cpuset, 0);
   obj = hwloc_topology_insert_misc_object_by_cpuset(topology, cpuset, "test");
   hwloc_topology_insert_misc_object_by_parent(topology, obj, "test2");
   hwloc_topology_check(topology);

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_is_thissystem.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_is_thissystem.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_is_thissystem.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -26,7 +28,7 @@
 int main(void)
 {
   hwloc_topology_t topology;
-  hwloc_cpuset_t cpuset;
+  hwloc_bitmap_t cpuset;
   int err;
 
   /* check the OS topology */
@@ -34,14 +36,14 @@
   hwloc_topology_load(topology);
   assert(hwloc_topology_is_thissystem(topology));
 
-  cpuset = hwloc_cpuset_dup(hwloc_topology_get_complete_cpuset(topology));
+  cpuset = hwloc_bitmap_dup(hwloc_topology_get_complete_cpuset(topology));
   result("Binding with OS backend", hwloc_set_cpubind(topology, cpuset, 0));
 
   hwloc_topology_destroy(topology);
 
   /* We're assume there is a real processor numbered 0 */
-  hwloc_cpuset_zero(cpuset);
-  hwloc_cpuset_set(cpuset, 0);
+  hwloc_bitmap_zero(cpuset);
+  hwloc_bitmap_set(cpuset, 0);
 
   /* check a synthetic topology */
   hwloc_topology_init(&topology);
@@ -66,7 +68,7 @@
 
   hwloc_topology_destroy(topology);
 
-  hwloc_cpuset_free(cpuset);
+  hwloc_bitmap_free(cpuset);
 
   return 0;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_object_userdata.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_object_userdata.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_object_userdata.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_synthetic.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_synthetic.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_synthetic.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_type_depth.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_type_depth.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/hwloc_type_depth.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,344 @@
+Machine (phys=0 total=1609512816KB Backend=Linux)
+  NUMANode #0 (phys=0 local=100057088KB total=100057088KB)
+    Socket #0 (phys=0)
+      Core #0 (phys=0)
+        PU #0 (phys=0)
+      Core #1 (phys=1)
+        PU #1 (phys=1)
+    Socket #1 (phys=1)
+      Core #2 (phys=0)
+        PU #2 (phys=2)
+      Core #3 (phys=1)
+        PU #3 (phys=3)
+    Socket #2 (phys=256)
+      Core #4 (phys=0)
+        PU #4 (phys=4)
+      Core #5 (phys=1)
+        PU #5 (phys=5)
+    Socket #3 (phys=257)
+      Core #6 (phys=0)
+        PU #6 (phys=6)
+      Core #7 (phys=1)
+        PU #7 (phys=7)
+  NUMANode #1 (phys=1 local=100073472KB total=100073472KB)
+    Socket #4 (phys=65536)
+      Core #8 (phys=0)
+        PU #8 (phys=8)
+      Core #9 (phys=1)
+        PU #9 (phys=9)
+    Socket #5 (phys=65537)
+      Core #10 (phys=0)
+        PU #10 (phys=10)
+      Core #11 (phys=1)
+        PU #11 (phys=11)
+    Socket #6 (phys=65792)
+      Core #12 (phys=0)
+        PU #12 (phys=12)
+      Core #13 (phys=1)
+        PU #13 (phys=13)
+    Socket #7 (phys=65793)
+      Core #14 (phys=0)
+        PU #14 (phys=14)
+      Core #15 (phys=1)
+        PU #15 (phys=15)
+  NUMANode #2 (phys=2 local=100597760KB total=100597760KB)
+    Socket #8 (phys=131072)
+      Core #16 (phys=0)
+        PU #16 (phys=16)
+      Core #17 (phys=1)
+        PU #17 (phys=17)
+    Socket #9 (phys=131073)
+      Core #18 (phys=0)
+        PU #18 (phys=18)
+      Core #19 (phys=1)
+        PU #19 (phys=19)
+    Socket #10 (phys=131328)
+      Core #20 (phys=0)
+        PU #20 (phys=20)
+      Core #21 (phys=1)
+        PU #21 (phys=21)
+    Socket #11 (phys=131329)
+      Core #22 (phys=0)
+        PU #22 (phys=22)
+      Core #23 (phys=1)
+        PU #23 (phys=23)
+  NUMANode #3 (phys=3 local=100597760KB total=100597760KB)
+    Socket #12 (phys=196608)
+      Core #24 (phys=0)
+        PU #24 (phys=24)
+      Core #25 (phys=1)
+        PU #25 (phys=25)
+    Socket #13 (phys=196609)
+      Core #26 (phys=0)
+        PU #26 (phys=26)
+      Core #27 (phys=1)
+        PU #27 (phys=27)
+    Socket #14 (phys=196864)
+      Core #28 (phys=0)
+        PU #28 (phys=28)
+      Core #29 (phys=1)
+        PU #29 (phys=29)
+    Socket #15 (phys=196865)
+      Core #30 (phys=0)
+        PU #30 (phys=30)
+      Core #31 (phys=1)
+        PU #31 (phys=31)
+  NUMANode #4 (phys=4 local=100597760KB total=100597760KB)
+    Socket #16 (phys=262144)
+      Core #32 (phys=0)
+        PU #32 (phys=32)
+      Core #33 (phys=1)
+        PU #33 (phys=33)
+    Socket #17 (phys=262145)
+      Core #34 (phys=0)
+        PU #34 (phys=34)
+      Core #35 (phys=1)
+        PU #35 (phys=35)
+    Socket #18 (phys=262400)
+      Core #36 (phys=0)
+        PU #36 (phys=36)
+      Core #37 (phys=1)
+        PU #37 (phys=37)
+    Socket #19 (phys=262401)
+      Core #38 (phys=0)
+        PU #38 (phys=38)
+      Core #39 (phys=1)
+        PU #39 (phys=39)
+  NUMANode #5 (phys=5 local=100597760KB total=100597760KB)
+    Socket #20 (phys=327680)
+      Core #40 (phys=0)
+        PU #40 (phys=40)
+      Core #41 (phys=1)
+        PU #41 (phys=41)
+    Socket #21 (phys=327681)
+      Core #42 (phys=0)
+        PU #42 (phys=42)
+      Core #43 (phys=1)
+        PU #43 (phys=43)
+    Socket #22 (phys=327936)
+      Core #44 (phys=0)
+        PU #44 (phys=44)
+      Core #45 (phys=1)
+        PU #45 (phys=45)
+    Socket #23 (phys=327937)
+      Core #46 (phys=0)
+        PU #46 (phys=46)
+      Core #47 (phys=1)
+        PU #47 (phys=47)
+  NUMANode #6 (phys=6 local=100597760KB total=100597760KB)
+    Socket #24 (phys=393216)
+      Core #48 (phys=0)
+        PU #48 (phys=48)
+      Core #49 (phys=1)
+        PU #49 (phys=49)
+    Socket #25 (phys=393217)
+      Core #50 (phys=0)
+        PU #50 (phys=50)
+      Core #51 (phys=1)
+        PU #51 (phys=51)
+    Socket #26 (phys=393472)
+      Core #52 (phys=0)
+        PU #52 (phys=52)
+      Core #53 (phys=1)
+        PU #53 (phys=53)
+    Socket #27 (phys=393473)
+      Core #54 (phys=0)
+        PU #54 (phys=54)
+      Core #55 (phys=1)
+        PU #55 (phys=55)
+  NUMANode #7 (phys=7 local=100597728KB total=100597728KB)
+    Socket #28 (phys=458752)
+      Core #56 (phys=0)
+        PU #56 (phys=56)
+      Core #57 (phys=1)
+        PU #57 (phys=57)
+    Socket #29 (phys=458753)
+      Core #58 (phys=0)
+        PU #58 (phys=58)
+      Core #59 (phys=1)
+        PU #59 (phys=59)
+    Socket #30 (phys=459008)
+      Core #60 (phys=0)
+        PU #60 (phys=60)
+      Core #61 (phys=1)
+        PU #61 (phys=61)
+    Socket #31 (phys=459009)
+      Core #62 (phys=0)
+        PU #62 (phys=62)
+      Core #63 (phys=1)
+        PU #63 (phys=63)
+  NUMANode #8 (phys=8 local=100597760KB total=100597760KB)
+    Socket #32 (phys=524288)
+      Core #64 (phys=0)
+        PU #64 (phys=64)
+      Core #65 (phys=1)
+        PU #65 (phys=65)
+    Socket #33 (phys=524289)
+      Core #66 (phys=0)
+        PU #66 (phys=66)
+      Core #67 (phys=1)
+        PU #67 (phys=67)
+    Socket #34 (phys=524544)
+      Core #68 (phys=0)
+        PU #68 (phys=68)
+      Core #69 (phys=1)
+        PU #69 (phys=69)
+    Socket #35 (phys=524545)
+      Core #70 (phys=0)
+        PU #70 (phys=70)
+      Core #71 (phys=1)
+        PU #71 (phys=71)
+  NUMANode #9 (phys=9 local=100597760KB total=100597760KB)
+    Socket #36 (phys=589824)
+      Core #72 (phys=0)
+        PU #72 (phys=72)
+      Core #73 (phys=1)
+        PU #73 (phys=73)
+    Socket #37 (phys=589825)
+      Core #74 (phys=0)
+        PU #74 (phys=74)
+      Core #75 (phys=1)
+        PU #75 (phys=75)
+    Socket #38 (phys=590080)
+      Core #76 (phys=0)
+        PU #76 (phys=76)
+      Core #77 (phys=1)
+        PU #77 (phys=77)
+    Socket #39 (phys=590081)
+      Core #78 (phys=0)
+        PU #78 (phys=78)
+      Core #79 (phys=1)
+        PU #79 (phys=79)
+  NUMANode #10 (phys=10 local=100597760KB total=100597760KB)
+    Socket #40 (phys=655360)
+      Core #80 (phys=0)
+        PU #80 (phys=80)
+      Core #81 (phys=1)
+        PU #81 (phys=81)
+    Socket #41 (phys=655361)
+      Core #82 (phys=0)
+        PU #82 (phys=82)
+      Core #83 (phys=1)
+        PU #83 (phys=83)
+    Socket #42 (phys=655616)
+      Core #84 (phys=0)
+        PU #84 (phys=84)
+      Core #85 (phys=1)
+        PU #85 (phys=85)
+    Socket #43 (phys=655617)
+      Core #86 (phys=0)
+        PU #86 (phys=86)
+      Core #87 (phys=1)
+        PU #87 (phys=87)
+  NUMANode #11 (phys=11 local=100597760KB total=100597760KB)
+    Socket #44 (phys=720896)
+      Core #88 (phys=0)
+        PU #88 (phys=88)
+      Core #89 (phys=1)
+        PU #89 (phys=89)
+    Socket #45 (phys=720897)
+      Core #90 (phys=0)
+        PU #90 (phys=90)
+      Core #91 (phys=1)
+        PU #91 (phys=91)
+    Socket #46 (phys=721152)
+      Core #92 (phys=0)
+        PU #92 (phys=92)
+      Core #93 (phys=1)
+        PU #93 (phys=93)
+    Socket #47 (phys=721153)
+      Core #94 (phys=0)
+        PU #94 (phys=94)
+      Core #95 (phys=1)
+        PU #95 (phys=95)
+  NUMANode #12 (phys=12 local=100597760KB total=100597760KB)
+    Socket #48 (phys=786432)
+      Core #96 (phys=0)
+        PU #96 (phys=96)
+      Core #97 (phys=1)
+        PU #97 (phys=97)
+    Socket #49 (phys=786433)
+      Core #98 (phys=0)
+        PU #98 (phys=98)
+      Core #99 (phys=1)
+        PU #99 (phys=99)
+    Socket #50 (phys=786688)
+      Core #100 (phys=0)
+        PU #100 (phys=100)
+      Core #101 (phys=1)
+        PU #101 (phys=101)
+    Socket #51 (phys=786689)
+      Core #102 (phys=0)
+        PU #102 (phys=102)
+      Core #103 (phys=1)
+        PU #103 (phys=103)
+  NUMANode #13 (phys=13 local=100597744KB total=100597744KB)
+    Socket #52 (phys=851968)
+      Core #104 (phys=0)
+        PU #104 (phys=104)
+      Core #105 (phys=1)
+        PU #105 (phys=105)
+    Socket #53 (phys=851969)
+      Core #106 (phys=0)
+        PU #106 (phys=106)
+      Core #107 (phys=1)
+        PU #107 (phys=107)
+    Socket #54 (phys=852224)
+      Core #108 (phys=0)
+        PU #108 (phys=108)
+      Core #109 (phys=1)
+        PU #109 (phys=109)
+    Socket #55 (phys=852225)
+      Core #110 (phys=0)
+        PU #110 (phys=110)
+      Core #111 (phys=1)
+        PU #111 (phys=111)
+  NUMANode #14 (phys=14 local=100597760KB total=100597760KB)
+    Socket #56 (phys=917504)
+      Core #112 (phys=0)
+        PU #112 (phys=112)
+      Core #113 (phys=1)
+        PU #113 (phys=113)
+    Socket #57 (phys=917505)
+      Core #114 (phys=0)
+        PU #114 (phys=114)
+      Core #115 (phys=1)
+        PU #115 (phys=115)
+    Socket #58 (phys=917760)
+      Core #116 (phys=0)
+        PU #116 (phys=116)
+      Core #117 (phys=1)
+        PU #117 (phys=117)
+    Socket #59 (phys=917761)
+      Core #118 (phys=0)
+        PU #118 (phys=118)
+      Core #119 (phys=1)
+        PU #119 (phys=119)
+  NUMANode #15 (phys=15 local=100591248KB total=100591248KB)
+    Socket #60 (phys=983040)
+      Core #120 (phys=0)
+        PU #120 (phys=120)
+      Core #121 (phys=1)
+        PU #121 (phys=121)
+    Socket #61 (phys=983041)
+      Core #122 (phys=0)
+        PU #122 (phys=122)
+      Core #123 (phys=1)
+        PU #123 (phys=123)
+    Socket #62 (phys=983296)
+      Core #124 (phys=0)
+        PU #124 (phys=124)
+      Core #125 (phys=1)
+        PU #125 (phys=125)
+    Socket #63 (phys=983297)
+      Core #126 (phys=0)
+        PU #126 (phys=126)
+      Core #127 (phys=1)
+        PU #127 (phys=127)
+  NUMANode #16 (phys=16 local=1020176KB total=1020176KB)
+depth 0:	1 Machine (type #1)
+ depth 1:	17 NUMANodes (type #2)
+  depth 2:	64 Sockets (type #3)
+   depth 3:	128 Cores (type #5)
+    depth 4:	128 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/128ia64-17n4s2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,158 @@
+BZh91AY&SY
+kþªïÿÿÿßüÿÿ÷=ï_€ÿïÿòÔ8   ÔǸ`šÞà ð         À  Ø    d”RT»e)(£
+`Ý0ÝÍœsp^h¾[[d…]½Æ{í_Qð      }$ / óâÛ ÎíàìÚØ6ÀÁÅÀÀ A*€8c|hôÈø        ù¹k/	¡;2-äŽqàžÇ»:d&Îìj 7€s  ª¤ <\çoƒë    ú¾÷`Áw Ñ!@d:E;°z èx]È   •±°ZÑ´Ö–Ô×>… €° `          Š~¦†=)T¦¨ÐЀÀ ha ÀL10š#L†ƒ1”*žÔ¿jª”TÿILê             ª~	ªDIMTÓ 
+2@€      @mMž©TÓF¢§’yI              ”Ri14Òaj=OHõ@f õ¨Ú™¦PÄ@I“ÔÚA A$ Jjê4zOH<  Ð
+        ?d¯Ù+˜¤ÅŸê+TŸ°V©5?X®œ&©51?\¬+›TªZŠÔÄ—"¿ÎPèWi\)1R\)8Rj“…‹…&§ñrRrRbŒLöÊæV)1I‰‰¨¯Ã]kS‘_è®IÉ8EpŸ†´'j`,ᜲû„¤üó$‰"H’$‰"H’$‰"H’$‰"H’$‰"HÉD‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$ID‘$IEŒf1ŒÉ2ª•wQ^EÛTªX‚«QQ1óH‹óë§èè9D»(Tùî·ü…þE®‹ÏÞ0óÙ#îgž%îg=ϐ!“³àö}Ñ÷7[æðW>Ì»<Ë¹ä‰\÷3ŸgÙÆÞæ{·vT«°í%6y–M{žsìb³Ùž}xq"JF;¸o7’H€Äϸpc®÷"6ï|À‘ŽXl=w:_B½hbF÷	hôpåÜ0ÃF‘†‘¼Ã*AnáÄ8páÔûï¢|ôzv°Ã¼Àz=$zHÞú=ì˜aÁäz1#7#ZM.æÆGy¡¸‚HDZ8ö
 =Ǎã^X¬L;ŽòB¸ìjJžÇÂ{óqÜrD®;Ë·Alu<w›Ž„qcØž;'ŽÇ¼ØÔ2¶†›bŠØm×±=6“²«–ë»·vîIné5µ÷nìªåºîíݨ’$’S®îÝÉMË[»žä“Ý»·vîÃ{nîÝÙUËuÝÛ»wNÙí·wníÝm¶îíÝ»­©;V·wnìªåºîíÝ»©Š«nîÝÛ»wníÜ÷[båVëÍÅË.뻤ÖÖªåºîíݨ’N»¹$’ÝÛ»wníÜ’ÝÛ»w[m¹UËuÝÛ»*¹nª:Éqn8ÇÓvIwníu½R[ql'Û»rK·vîÝÛ»[jI%ovîÜ’íÝ»·’WnÝÛ»tî¶ÍÛwnì’îÝÛ»wdLIÝ»·v’IÝ»µÖL’¶öîÝÛ’]»·vîÝÛ­ä»»»wníÝ»·và±d½;·:ÚJnÝÛ‹a>IníÝ»·v¶É×Tš[u×níݹ%ÚëzÛm©-»·vîÝØžíÉ··%»q3§j¦&nA]i3M4Ó6I-Í13M0¤ë¬ÓhÝ—M13M4ܤRéÓ´‘Û;TÙ-Í4ÄÍ4ÓLÙ-Í4ÓM0«4yܱæw^äÜmºg™u\IÊ©¦šbgj¦m²fšiŽÍ×nÛ†gaµÄù¶j-¶°›mÛv í†Ûd–ÛmHÛ
+³#»±7y¶Øm‰l6l˜-ïH÷ÕÜ9Ú=õ†×æØm¨¶Ø]Ø]pgm‰»vÃm²KaÝÐŽîfGwbn'm†Û6ØmÝøwm›lm³†&mÔ¡;\4IØ+´lÎÃk‰ól6Ô[l7a6Á¶&ìAÛ
+¶É-‡wB;¸m™݉¸¶lHÛa¶'m·›l7v´Wn†×æØm¨¾Û
+÷Ñ6Á¶&ïH÷ß}ûîõ/}÷ß}ԍ°Û2;»z{Ò}÷ßpÛ6Øm²´Wn†×æØm¨¶û;½ôO}ô3¶Ä݈;Ü6Û$¶ÛjFØm½#mé7¶Øm½#ß}ô{ì’ ‚_v6m´’jŠâ2è$ë‡p’m͆©"pÂe½‰Øa˜oǰÛcÝÝÂŽØm¨½ ÎÜ3;
+®'ͰÛQm°Ý„Ûh–Ø›±l6Û$¶ÛjFØm™݉»Í¶ÃlHÛa°­pt•׎îÔRòš>š¥Ï$FñÔE{´uB
+Lô=Ó£LÎFЕ^rTóì[±¥)löìM+wn†×cáØm¨¶ØnÂm´KlM؃¶mˆ;mµ#l6ÌŽîÄÝæÛa¶$m°Úސgn†×cáØm¨¶ØnÂm
 ´KlM؃¶m’[mµ#l6ÌŽîÄÝæÛa¶$m°Û·lºéº™­“®Õíy·w_}öÏu›ÚÛskdä­íÖm[ãswu~ûï_zûé”ÚÛm·ÝÖmfÕ¾w97YµJVÛÛ¬ÚͬÚ읩÷u›Yµ{^mÝÖmfÕív”M­ÖmfÖmx÷wu›Yµ›^=ÍÇÜäÝfÖm[ãswu›Yµ›RmæßwYµ›Yµ›Yµ›T¥²Vøönî¢Ìç^mÝÖmlœ•¯[›wu›Yµìe6÷u›^mÆÝÝfÖmfÖm[nmfÖmx÷wuoÎMÖmfÕíy·wT¸™mÒ	&w yàx€x at YTªZ…Êeƒ0ÆYi¥–i¦ÓM4²Í¥ši¦–šYfšZi¦šiY¦šYe¥ši¦–ši¥)Rši¦–ši¦šZi¦”¦¥)M4ÔÒ”ÓKM,³M6ši¦šm,ÓK,´ÓM4ÒÓK4ÓKM4³M-4¥4ÒÓM4ÓKM,ÓM-4ÒͲ•)áðùàöH ÌRI$—¯ØÑ‰ZíWnîî¶I%ºIu5hßUm¶Ù$m¦äi#Y$òÈ’LM´|Þ >;Á¯’I%ÏFŒJ×j»wwu²I-ÒK©«Fú«m¶É#m7#IÉ'–D’bm£æð;ÁŸž2o’I%ÏF’]ÝÝÝm¶Ù$–ô2]"Zu¶Ûm²HÛMÈÒFy儜²$’j¢(xIðƒÄ«šM¶Ão¤Ö#kkºw.ëm¶É$·¤—X«ÕÛm¶Û$´Ü$k)$¹èÒI$‚mŒÒ'À@'Â	Þ
+x¤’I.z4b]Ý;—u¶Ûd’[ÒK©«Fú«m¶É#m7#IÉ'–D’bm¢0ùā—‹À…âŠ	Ïä„w>¼’î©[R]o¸J
+‡V•µj2	)”v5$’Y’ù¥"šÛm¶Ú­Q»t1æÒém¶Ûm’Få¢X$m–ÖÖ¦I–Ãä|*“D’I‰¢E ‚x7qI$’\^‘(Ÿwwwu¶Ûd’WÐÇ›K¥¶Ûm¶I8ÚIÉ9dI$ÅDpŽ$W„’I"‡œ‘§ST”Ud½Òœä&>nXÛ•·`ÈQ ŽÄrIfÚo£Jg7wwu¶Ûe¶Þ®ÍTŽs¶Ûk’A#r8Ú$Ö{&˜ “L®GÂ…*‰=½½½—½òW2ír$„’HHÕQQ$e45Nnµw‹²îîFÛâÚŒiR±'wtIS;±ªêR7%ªÉ×¹séÖIÜû»’“£I­èŒÒkÚØÛ³šÝ:÷n§”Íé-·k;»ZßuîIÝk­êøNæ¤-Zí›#Š»+
 +Ö•r«pmÛ&âU´rîIA{§rI4ºÙ©-§mµw% mÄ”ëºÚM·wrJñëjJÛmUÔ”jØj¶Ù$ëÝÝÖ¾mñ<ºÛÝÝÝϥ͍Ûu¤Óžîîîm½¶ÛfÛÛ±ÛfÛÛm¶1iÒ%Ýowu²N¶Öè­çxÚß[hV¥-mFìjI&m÷uµ)Ù¾ÛZZv-½ÐHû­ëÒ>Øš7g—¯AsÛi¶Ûnîê$“ž]]¹ºzMÛ±Ól÷,µ›=Û”Í"¡ÛnæºÝ+†ÒµvE´y]¬KdõÛ«ìÒOt廆æž×ž[†æ“ÊíµH6í¹íN”ôW7פ[1 È ‚¨”«æ‘i¤›d¶™I4‰ŽI-ÆâJ4Ûm¶…m·$‘©’lQŠ­¥c­¤I)FÑ&ªŠÖÒ&¤«m‘ $ðkÅ$’IsÑ£îéÜ»­¶Û$’Þ’]MZ7Õ[m¶Ii¹HÏ‚I'–D’rm¢0ÃÉ$’¬—Í)ëm¶ÛjµFÕº•—%ÒÛm¶Û$Œ¹I$Œ¸Òç£I%›J<‰# C†¤’J²^iH§[m¶ÛUª6­Ô¬¹.–Ûm¶Ù$eÈI$k'–D’JQF ƒçx0¼RI$¸7šR)ÖÛm¶Õj«{rmr]-¶Ûm²Hː4’HÖO,‰$”¢$Œ$‘æ$‘x„‘)$’\Ém-‘¨É‹­ªÔ¤RÛm¶ÛUªI-²KÕwrUÌßUºñçÜbu´¬¶Ûm¶É$¶ÚÝ‘I‘§$‰ÛD¤¬ƒË4ÛM¢I$“-¦™iIà$ø|áæî)$’\Éy¥"m¶Ûm¶I%}y´º[m¶Ûd‘¹¤‘¬žYI&&Ú#€'Îð`¼CÅx¤’Is%攊u¶ÛmµZ£jÞ¥eÉt¶Ûm¶É#.@ÒI#±©$’Ì—Í)ÖÛm¶Ûd’W¡6—Km¶Ûl’7 q´’5“Ëã€îñÂóK½Ï~÷à;Û‹Þ—ˆâÿZ>	°Øv ä’BG=AØ@à`Ô’”i ñ8œDÔ‚7ƒ‡Kλ_ù²ß6ñy	.Úëyµ»M|Ûæß;kÈ"/‘¡Úq"q0jI$)JM"ÐÄâq8	©$‚¥ThÒRlx0x85!Û]¯:·io|ÛçZó'Ž‚:JM§'¤’I
+R‡H4BHC/<!Ù$rÃp’D¹"Ym<M¤N&
+HB0†”hbe6›6¼‚"ðy×[ã^tׯ¼^BB„¤Ð-$L¦Ó`š’8©U$
+t”›Ž
+’¥&i"e6߯ ˆ¼ó®×ƼҾ+Åäµv¼Öºš÷ׯ¾-^SÃq¼âƒa¤‰´Æ¡$¡)4ƒI)´øÖ¼À‹Âç]¯yÓ_ñy	
+“H4‘2›M‚jÄ©$jGII´ÒDÚcP’HP”šD¤Ù|j¼ƒ€<×kâ¼Ò¾+ÅäŽt˜s:C¦9næft4ëH›LjB Ò
+$¦Çhš DñÐ7v¾5çM|kÅäí®·›[´×½¾5ñVò‹Ào6äÚi"m0jI$(JM(ÐÄÊm6Úò‹Ào:ë|[Κø×‹ÈZíyÚݦ½õñ¯Š×D^yÅ&ÓIcƒRI!BRi’Siñ­yEà7v¾5æË|kÅäí®×[´×¾¾-ñZó'މ#¡¤Úi"m0jI$)J Ò@Êl6¡©$„‰$4›M
+†
+Au]^unÓ^úø×ÅkÈ"/:JK6é"m2bI$(JM Ô @™
+îPΩ’HH܍…¦Gc±É‚I
+ZH4‘"lv	ï'ށ½íÚù¯:ù×Î¼Þ ©Jªmr*­Ó­òÖš…l(#Oä’DĆÚ†ž4àÔ…
+:9Whlñ†ç ÅTÆ:ªŠ£eѪMÓSfÔULa@ÝÌ eJ©eR©ij%!€Ôa€Ì°Æ°ÅƒUTµ­M©Leb™KmŒ*˜f(c€*L†C
+QŒXÁU•…VL”2˜eˆ–X”ÆRÂ^wÝáÝá\‰Œ&01v/'ù>1î!ýNZvc	ŒFBBýiÕÐnÞÿ½£ßª»ü§›§Áçv`ãÀUmaUŸ×*²|´©_—û€                              ê­µ~ û"ûúÔ}¢¾Áö¯CÐáÃн5èX=C…ÃÐô9Âô=pô/C‡
+z‡¡Âáèz8û·†Ñµá¨öãZ×­ëÆ·½x×®ýz®^ÞÀ õ½sǏŠn!¹¹¹¹¹ÔNNNNNNNN u:FÛm¶ÛÖ›m¶Ûm¶ÛÖ›m¶Û·nÞµnݾm»víëVíÛm¶Ûm½jÝ»víü¾_*ôôôôôôôôõë¨!!!!!!!!!=wž»t$$$$'§!!!!!=uА‰	éÈHD„„õ×BBBBBzr!!!!=uАû:ª¯Á[ño¾ª¦Þд[ýê¹nUËr®[•rÜ«–å\·*å¹W-ʹnUËr®[”Ü[ƒqn
+Ÿ7àÜ[…ø@À ó=÷'Ï~TÎäÞ~ßi:êN·ÕN®Nº†ÍìÞÞ™³{zÞ¶oyÖÙ½¸ÍÆüὛ߫[ÜÞÍõ†öoi›ºÞÍóZÖµ­| :€vphØîÎ1ÙÛ³Ê 1}ošòñžÖ
+@   `yyîQ‹åfñSZ“Xëx,•ÍMßFõ,È ýåUñãùµUxª«çÙ   €@ @ @ @ ž~‡~÷9Î=à9ÎpóçÈP UT·º®º©ÎzõW}÷Ý «œç7×9Îsœë®ºê÷]g_Ì  «#ê]J­¢‡ÏTªYû¬°î q÷ t´¯ˆ'ú@d¡ö { Œ ~߇>ð¼ ÊŒŠÀ0 ÀjU0 ù·ßõþGëŒb¿oݼ\“÷]^.sŽ1üŒëw÷à÷|ÌåSÒ×§çÃ8+cŸÉ~ü]!’{7±3‡p*ü0ú·¬o~€ =	Ýâ=| uðà<yPNî]y‡o?/‡nùï‡À8 (Týéóû7òüþ¿u'õþaù¾Sð /§ÞAîþ'Ç<?9û¿Ô¿ßé}:}˜ /öŸïõñ?è}_ÇøØ?×ÅÛŸïàüé¡  {ÚÏÆÁÞù›&ï[××<è<bǽ«Õt‘Ð*û5Íîc×½c=jûÈduŽŠï]óÞ±Ú×f+®hüP <ó¾¼UIW7íç
 Îó¿~^
+°	#$’$&9×w^]V±Ÿ—½_\ß«óß¿TØ_dO¼8úóòx  >üî g=‚‡QaXÀXÎû£}gç½c­N³Š=;Šñ{}ΪQ½lžðï3{Þg©À¾øX±}µÈ‰SÍDEû^€«æ®»§·ÏÇãò½¬Ì Å{õŽúó;úÖû >»ÆàIæþ{S5#þ¯ã?Ÿgòé÷öŸÝ=ß®ëóû·p"~è  ûÖäÃZü¢";ôDDFtÔ½ZÖûZ•÷xOs¿‘»ýßÉýžŸÖþ¿ŸÏß¿×~Ϥ[üÌ~|À‡¾ÆâûG¡»0ñÏLë®k°w韶9ºçÖÎo=ꀼ‡=:·»|Þ·»ü‘øäÆ/_•ßã;wøéø«|ú'Ôïlù]÷å÷ø þQ?»~wíü;ÛeýOÛÞÚW~w¾üöùS¨ûË€>ObWë÷áß“¯ÅÈ5WÌO·ÍMÝG}ŸË£§×Üdò­T¨¶rã«Ñn»/U<©æ¯;е[6²ÒÁ>}ß=`B÷†údôü§á{†¶mïwi>ûñ}|_ËêãAõb}ü_
+÷æqçòÆ_:{¥úíø×ç÷~1ûêñ~ë_ÏÊébýë1UßÚü\/ß}¿hÐ]÷ŒëïÏžáú §÷꽝è~—{uZ½òý¸Rªj_y1Ï~?;缝|üù{çÞûúkï¿®~Gà WÛö/ïÀ  ÓÅÔË™~÷·É¬­î&4Ý:9µ=>ÍsjïçÇŸ¦qáæä€'” åüý߯ïô?¨©±^ïžöïžüÞÐÇÏ`ì~oúÏvµ­kZÖw½ó×~ÜóçÏŸ3ØÞÁçÏŸ>G¥y™ìåöï/iowy½ï{ËÂ""":+
+÷XGzôDDD""""×xÞ–©ñÒZíÞ÷v·®Õæ¿>"""?gíª‰ïe·Šs;Y¥­íù‰]ï²{é‹·¿Å}ß8—¯Ï˜¯Ð  {‰w»Ù$Ÿ~}ïŸ>/Ÿ;ÝÛç|^ÿ  ý   € ýÀ 8 >Bo¹R¥Ü9X–⪮ãIãºxïgãÕÄösÂÝïׄråá O„‚bŒ"!^2i	(Àg·^ÎÎ;¹ŠxðžØ£ºqàlÇ	d#¢RhH#,¢A”ŽçpÍÞ\²Þ] x€ñÜ*´qUÜ’œÀ~ØØ á{ }‚hXŠîÁ^>&y|¾lê€ÉåàˆTþ˜ª§žyß“À®ñÜ;Çpå—>ýsÅä:A =óÙïžÏ;ëÏpˆ j¢²ü <@z@~ÑUÍ; p—~E˜ˆÌÊÌWP	Uô•öJÅ&)11:xøøõööæ|}zõë×ݝ—¾X óçÈûï¾ÇG@ªª€ª«ª aè 
+Pðü?Ëü†÷ðk^<xññ5­xñãÇŸÖ¼k^<kÇ­kZñ­xñ¯Áð|ïw»Ýñ7Uñ@ `UTUQl=   h*€
+®sœn¨: tt u ¹ÎsœVÃÐ  ‚¨ ªç9É€€ ê sœëœâÐ  Ð M€sœç}÷7T €UPtUUE°ô   ª *¹Îqº è ` ªªƒ¢ªª-‡   
+PUÎs“   
+Ô 
+ç9×9Å  ë`UW– ï¾ûï¾ø`Ž€ 0¨ ¾sžyÎ €@UW– ï¾ûï¾ø`Ž€ 0¨ ¾sžyÎ  ë`UW– ï¾ûï¾ø`Ž€ 0¨ ¾sžyÎ  ë`UW– ï¾ûï¾ø` ` º€\ç:ç8´  =lªªòÀ÷ß}÷ß `  7P +œç\ç€ ­€UU^X¾ûï¾ûá€::  À
+  VùÎyç8€ ­€UU^X¾ûï¾ûá€€ ê sœëœâÐ  Ð M€sœç}÷7T0  ¨ Îs®s‹@ @ U6Îs÷Ý0€0  Ý@ ®ssœZ  ¶UUy`ûï¾ûï–ꃦ À u ¹ÎuÎqh  h 
+¦À9Îs¾û›ª€  Ý@ ®sœç°ô € ªlœç;ﹺ èÑÐ 
+Ô 
+ç9Îq[@  
+ «œçª€ À
+€l
+ç9Îq[@  
+ «œç& 0  ¨ Îs®s‹@ @ U6î÷D}}ôo{ Çwwwnffªªîîó33y¬ÌÀ tt
+ª¨
+ªº¢ Ð  ÐU kƼxñã^<ùóäÀ?ÿ­xñãÆûëœçùòï¾w×ϰ¢~÷ç}uçžûÌï›ë¯° £«ç7ºöÝ^Áå€ ށUUUWT@ÃÐ 뮺ç9κ뮺뮺ü¯Ð}€~ 
+´¢*ÜU¯ÏŸ>{ï¾ýsœç×]uÖ:®€0 UU at UUÕy€ ‚¨ ªç9ÅP<°€0ªªŠª¨ƒÈ4  4@W9Î7T €UPtUUDA   ª *¹ÎqT,ß~|ùáœà::UTU]Qh  UÎsœQëׯ@ÝPt 0 UUAÑUUy€ ‚¨ ÷hUþ…PUL‚ƒy/£©ÑWTÕfN)&}Ñ”×Qr]$æbpEa–Ãl”’I·˜zTÛjsà¼KyÂ$+i¤QYxò‰%p‰-Ê%Ÿ)̵ÄÃâ÷›#æ ‚ ¯3ǐÃÄà݁ÒQ°Ô'ž]Á“SĐ5JâI%ù;‰ lx’¡A‚–ö=ñu)”!´8‚	­­ë$“t8•RÙÒlÙ³fÍ[6lÙ³fÍ™0ÌÔÙ³VÍ™2imhŠD 1ši§F¶»]®×k¨ívºŽ×WQÚê¸4GZívºÝ®32dÔàt&F%”ÉYL‹ÄÂcF”ȱ2,ŒS#Äȱ1LŒ&F%‰’²™S"Äı2,L&E‰‰˜#(€ê (ª‰W©Ÿ¯&“xßï a ú
+ð-«àV ¯ekßÕ­é§L§v'LNܧf'“#ìʧ»ÈD
+ç:,¼c, D<‡¹ 1œ\órÐÌcžïç;®wh«¾ûΞéÖ9}p Ü@««¤UÑßxëmFF	&&ì*  	óÁáWÖ½ôŸ›Ö=sß‹üoÞŸfúm!üùîùùêRßG¿>Ùé÷yöH$‚ ’I$’H?ãßõŸì¿ÆIÿ´Ÿ·úÿk¤¦QM¶¹rþ‚î”Áª·ûGÐ÷Z©pÈ‡È§ÍÆSó¥õSh†™
+§QëknÃ$s-¾~ÿs3üx :ñîuwèˆï:»Î®ýDw«_è~w8üá‡éµ¦ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  f	Λm¶ói%:m¶ÛÌzÐ a­  fÐ a­   fÈÌÉ¡wj¨Ù^Ég(2mË“RBfš2+h ETLûܰ7ÛÓ>nJ$뙐9ëw
+­aUá…çž?œ~
+'§ßœ} uã׏ 6ìwc€  Ø-¨ÁŠ ª¢Vù3¾Iã&L™2dÉ’fL™2dÉ“&L™2dÉ“&L™2dÉ“&L™2dÉ“&L™2dÉ“&L™2dÉ3&L“2dÉ“&L™2dÉ“&L™2dÉ“&L“2dÉ“&L™2dÉ“&L™&dÉ’fL™2dÉ3&L™2dÉ“$Ì™â¶ÛæÁW@«€UÞnoy™Æfq™œfg™ÆfqÕ®Lf^u5¬ç™Îu5M@ª*Žëÿ‡õSõkíÙ2dÅ‹&L™>óo½{okuši¦”¦ši¦šRši¦–Y¦ši¦ši¦¿‹A‹JNŽ-……ü]D’ÁUØ8¬T.k	…4ý&,Y2dDƒm?Íl´¤‰$H‘"D‰JRšYfši¦šYf†2rÓî¸8[2ËﱕGvRéc*ŽXd~Š_¥c*»†PGv÷…e~¡ÁÔÙ«VÍ›5jÕ³fϾâòܝ·75Êq6jÕ³M4Ù³fÍ›6lÙ¦šlÙ³fÍ›6jÙ³f­›6jÙ³fÍ4Ù³g÷x>ÿÞs<“œç9N¾r¹_¦—¢ýK[6dÅ“M4ÓM)Ji¦–i¦“&LY2dÃ&L>ûL’ºž„¼Ö1#“'yhè}ó&,˜`ĉ’ž›-) Á‰H“M4¥4ÓM4ÒÍ4ÓKdÉ“²pÃÅxõš¶jÙ³f­[6lÕø_ÊöÜÜç)ÄÕ«fÍ›4ÓfÍ›6lÙ¦šl٦͚¶lÙ³VÍ[6lÙ³fÍ[6i³fÏïð{y3œå8Zi·ù}ÿZ÷œÏÖ8\N'‰Ââq8\N
+¥¥¥¥ð|Êeý÷F“#‘ÂXÚZZZZZZXXXZZZZZZZZZXZXXZXZXZZZXÚXÚZZZXÚXÚZZZZZXÚZZZZZZXZZZZñ”È~ù Òe2˜Gý_ñ¨ƒüO<À`7Ÿ÷?íÿ‹€ øÏÏñxÙM”ÙM”ÙM”ðêÈy»Øÿ‹þ  w^=¯¼{¯¼{Ð> ïO»Ò€óÏ<²—)³38ÌÎ33ŒÍ;@  €m1dÆ,˜Æ,˜Å“²cLF4˜Å“II‘‘‘‘EH H€H6ªˆ HD HEˆ2DRDRA")")")#¤Äi1‹&1dÄcIŒY1‹&1d³¨ªÔJ.ºmR©b¿‘Ú}áÞã‹üKŸãK¾µQTr4à2X	ó­	c¥ÐÀC–%d2V1 [B›»C®
 Îòo0܃]ë˜
+{
+
+ Àzè!†Æ딕]…õa“c—&¤†d£!
+Íg­ã¹–N,^çzZ;¡Ï˜´óXº¬kzò¯ÍVS¬—PÉ2—XÎûÆôò›9³»UG&ð&õÖkz;k…¬‡Z¡ªÑÆœ›\:5fɝ”{c†¬_±É%˜Èì¢Üв eräÈy‘à‚öwךxµ°@h¡˜.¬Ê¬ˆ© Œ‚ ÂÈ*¢ðÐèÒù®l at NAÜWt°ÚuÖTDu^hØÕlä {ˆ¨â 8‹»ÇFkxßx“³TC F&uAU³²“.Ç¡Ñ&ïQß0k ºr3ƒ¨¯‹ÃFa5ea0´ïÑ›ÒcYÃ2
+ïXpšpc9«2fªÌç]wÍ_Y˜àEäxiÚåØàÈjHB¡õO1MTÍ‚Þw2œ èÀûïDgØw·à#`gÕì]¾&h"Â/!­h‰“¤¬e5T9TK¾¬®²]Ö rèÁë'5Ñs}Q˜#Ôs ‘‹­í‡äâÑ2haŒÊ&ò"¶ó "¹˜ëTsª­ôoGKÛƒ¦\UFú¬k™ê¸tK¢)5Õ1Å ¾é
+|<â/ <óŒzõo\÷Ý<c Œ ǘŒ ‚çhƒÔ‰S»ß{©ç𩾦
+Qè/«^Âó£»ÕBsZ†z>c‡Ðá(€	÷Òø‘+ÎCӏ?Xªºœ²Lr·ŒK¹c¬nÌ€Å{Cç§/ÏlzBG ÙêÁ#
+U;×<3…,‚øƒ¸wfÎQ:‚Ax¦AÃÚÚÛrð\QI,-­¶Ù%”A:ò©·%a7"L*ƒc€æ!ß'KŸĤròd|ÀCê2i
+‹Qò A’³lÔƒÉt
+¨‘»ÀvG|Hâ9dH˜räH%<¬R*&ŽtšM « V#l4É(Ðä¡Ä€|CŠ›¬â›´â›¬â›¬â˜R»iÚWk¹¥šn´èÑ$4HŒP@
+
+7#ºäEªqMÖîRºÝÊW[¹Jëw"ÃnµÜÒ»]ÊPÒ»kÅJm,Úii¦Òͦ–šZii¥¦–šZiR•)´³i¥¦–šm4ÚYR–šm4Ú[ÏM7üÛþ×&•ž¤æº×~ý"©à Õwà‚I%€ ¿>åù|  düߟ=ùõ|?vöÑÄ·ð“Ô1Š#çÏ™|‰’;üzƒï½K÷ܦ»ëëïçÇîËÞƒtó睑¯Í÷‡åìð   dô÷ýwÏÏÏÓëõõëìîúzõëÑLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀß·Yííííííí^ÛöÞ÷¾³ÛÛÛÛÛÛÚ½³ S03 S1°&àõ¯/µãzÞµ«¾f·­y†ŒVCýQCùŸYûÕ@ßt˜ƒ÷Í?:/xù߃ǐ    îæªI$’O†¾Ìó­[0Ï÷ñ¥‹úCä¾Ãº;ïԏèçó&Ýã[Eûy1³a¼Eü«¶@Ñ£X5çãôø`9½uÖ4‹ù×&´jõp½þã¢Ï9¾`åÀ_ž±ÖºÒ-k­g¯”ŒöWÓ¿ÀaõÑöÝ@Ή™ì¯7ò¾yˆù¼ß¾ïxÍPëZ’@    îîÝÀ$šùÞ± /é“ñ3œý@ZÇkÏ[½ýÈß3“½uŸÅsíæz辑wÚ¨ª1óÄ
+6N$½œû3
+éЮj³øÚ-Ü94j³˜;·€¿;¼˜Ê/âó¯Œóà}) ü5—”|¬µïUóç׿׽üwyµ{ß>>+îñò    ÝÝ»€§Óçéãá[{o_‡ññãÞñöùˆH•Ï®s\λ°Z]¼Bá>¢ƒj´‹ðÕŸcëÆ‘gž×y¬¢ÎCfò‹¤¨žCï¾g¿
+º=Ï÷þÿß×ìÔwÿÝýþòÏùGô=úŠÿÏ{_-¨q§=}–ݵÅnö¾[PãNzû-»k›·{_*PâœÓ©f[\ýöm|º£Ñ^šõO½ë=žÍ¯—Tz+Ó^©÷½bç³ÙµòêEzkÕ>÷¬\ö{6¾]Qè¯Mz§Þõ‹žÏf×˪=é¯TûÞ±sÙìÚùuG¢½5êŸ{Ö.{=›_.¨ôW¦½SïzÅÏg³kåÕŠôת}ïX¹ìöm|º£Ñ^šõO½ë=žÍ¯—Tz+Ó^©÷½bæíÞ×Ê”8§4êY–×=žÍ¯—Tz+Ó^©÷½bç³ÙµòêEzkÕ>÷¬\ö{6¾]Qè¯Mz§Þõ‹žÏf×˪=é¯TûÞ±sÙìÚùuG¢½5êŸ{Ö.{=›_.¨ôV£¯²Û¬\xókåÕ+Ó^©÷½bç³ÙµòêEzkÕ>÷¬\ö{6¾]Qè¯Mz§Þõ‹žÏf×˪=é¯TûÞ±svïkåJSšu,ËkžÏf×˪=é¯TûÞ±sÙìÚùuG¢½5êŸ{Ö.{=›_.¨ôW¦½SïzÅÏg³kåÕŠôת}ïX¹ìöm|º£Ñ^šõO½ë=žÍ¯—Tz+Ó^©÷½bç³ÙµòêEzkÕ>÷¬\ö{6¾]Qè¯Mz§Þõ‹›·{_*PâœÓ©f[\Ý»ÚùR‡æK2ÚæíÞ×Ê”8§4êY–×7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±q[½¯–Ô8Óž¾ËnÚæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbâ·{_-¨q§=}–ݵÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÅnö¾^Qè尿Sïzü¹»õí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.nÝí|º¡Å9§RÇbæíÞ×˪Sšu,v.+wµ
 òòG}5êŸ{×åÍ߯kåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;»ÚùyG£¾šõO½ëòæï×µòê‡æK‹›·{_.¨qNiԱع»wµòê‡æK‹›·{_.¨qNiԱع»wµòê‡æK‹›·{_.¨qNiԱع»wµòê‡æK‹›·{_.¨qNiԱع»wµòê‡æK‹ŠÝí|¼£ÑßMz§ÞõùswëÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\VïkåÕ:æKymsvïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;7nö¾]PâœÓ©c±svïkåÕ)Í:–;»ÚùuC޹§RÞ[\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯—T8§4êXì\Ý»ÚùuCŠsN¥ŽÅÍÛ½¯ø2_ä¯ÿŸ“ü™?©ÿîOò¤“ûÓÿì:I$ŸÞ’M?½'ÿéù'äþô‘”_õßÝ$ŸÞ“ü¹þ\?¾“ìþÒwøŸáÿ‡þ¯äÿý9?€þQ[ ÿ)ÖZS0ÿ/çtGZÖ?—X“wš¯Óùò    ÝÝ»€ŽÆýGuõñõo£ëy$!rßwVèØ}GzÕýyŠûQ[ÊßñbyœåÝ~7ÃÏ[%~Þ	éüýþ•ôžþ?ÖÃʈ{‰ê’'1I^û Ÿj¬õeEq×ß×ÇËÏ¿{^Þʯ»Ç    îíÜ xï}¾|ÚÛ|ÖÖÒpª*ý€ Õš\™Ãøÿ¬Î÷CáÙ×9B³v(æÎkÑåâ*—Lód9çªU.ÞÓ—?'+íeÎPÌ(vn©Y‘Vd‘ËvˆÌDc*‡NžŽ-œŒÍ¡.ì…G^S”²å@yßé@
 šƒ’ß+„|ˇ4}n«ØìÅ0Áv~ˆ+ˆÇ—uççÞNþ»àéÀ    ÝÛ¸$’N뉸…‚¬n7Sý5ŸÌp°ü¦ˆo!Í\ûÌðùŸËE :î™9g»­ý±ÎüÕÌ“æh~ચÇ^…döŒQ=_7‚Èdº×áj00`×Wryæbò¾üÝùç|U|ûúÿwϏzª¾ÿ     wvî ><~,ü'Çâ~áo·‹È#çëCÏ耼ý^‹9/œ‡Ïð÷ûåüKß”}ø÷ÍîÙ{Ž&1«°$Á~wƒ¾|qç5ΠxGdê;àó»°ÆèÔ²Í~.äëPæ!˜¨µá«åÎüÀ      =þß~ÔmÅ«ÕQÔ
+€kÏl¸ã¯7ùó­|®p¼}c1÷–ÙXÒ¨ª:‘ÄZƒ”¼äÀ•K¥ÄÖwæ„àÙ|뮿¾UG_:—&þýó˜’      ÷ί¥TÉý/ïÿ¸oî=Áåý¤þþ3^ü†—åÖ=ê÷9£–<¾cf?,ïY—€ cíåmÕj}ÈBú,„(=ÑöÇ7å½Í÷©<5ܫӯ×$UÞåށmdE”^xŒAããêÙJ¼1Þo'a›}ƒÜÛd¶a¶Øm$ØA õ>0ÌH“A$–
+	>Ö@Øl\|.3dšW"N¡$	B˜jp™#áäÉ#LŸ’SƒÇâ–>Š£Éê	¨Zx˜-—ÒEøM$o<œHcÂY+›z^TmÒVËzCÁé$±¶åVÁ
+ϯY‡9³M›6l٦͚lÙÚR»kµÕÚêêi®Úí¸@#K@ #R”ÒãÄ›4Ù¦›4ÓfšlÚÜÊÒÓMZi†O8àʲ`,Õ4ªY¶iTÒ©¦Ù¦³M³M³Ke5”Û,Û4ªiTÓlÒ©e²–Í5LDH1 Åcö÷°·%uÔ˜ë]óí×Ô³&îË.뺰 9> Ý^»ç~uÝu˾æ}AŽÍo¬¤=ûý¸.¿š
+×ó¿=њǺŠÊ^·}èú‡Ÿo›~-}u¿I$’AA$y o‹êM‘ˆ©l4¿jÖ~ŸŽ½žaøÖ˜ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜':m¶ÛÌi¤”é¶Ûo1ë@ †´ ˜k@ †´  0X ˜v'îü¾äA¯¾ÝÄEÇÛyf­Öèܘý·öE_µ@‘A ²j±¨
+±MëëçÄû?OÞ@      𮞤ôùJ¬²Å?8ðÔà$ˆ|÷¡è†¾û,¼¦p:ÉPæóKô|ј“Sq½.¯}IŸyC¿LãÈ™óÎt•åøsœï6ó̲³t¸ÐLïÎ`qóÿ1÷ë>ÿmúí#ò»8’I$’I$’    =õç{ýo‡Ÿ§»ÊQ¯¤0a£.eAD37ƒòf6kl/aŠÐ—Î%ÔÜBÂPiÖæÎ)nÀâá§c’tÄÅq…ÈU0Šã¤±¢ÔL[}o˾| B9"ãȲez^­Ñ`fV>w_7®û;çÛ½ý¾¾=xëÈ      ­Û}?«U}½ñm|ùוÆ	]ZÔ[[ò@‚„ªZÚj¬Úåh0Cý8ƒÔS#‘¥YªCäó” %¿jò]wË̲¨æ#–%œ’H.‡¢ÇV‰¨^µöê¥ÃìóëÅïö¾_ß       }5ÚñëÍíã+¼xõkçx]nŽ“zr4æÖ•ŒªrÛi‡LjEREaë3`½ª®¹¼oÎcxË4e8pî‡CÁ¥Í‚²z>~¶OÙïïß\6ú}wÂI$’I$’I$€   ö½þ|{yó_>ý]ΗÖ]ùt&j‘+
+T at s 1 .½.‚ù¼#…€ ®HÔ^ðŽ`š¦Õs_ŦûÂ÷@ê*‚ 	ßÏ6kêÿllÔ®©è‡!ú}°Žè`n,“èx69¤2|;ûÝÉæ3:ï§¿{~~      ão_O‹z[ÚŬMõ÷·¹¼sÜhÐ×›éä™Ë¡§5–U|™p™5ÚUäÈRû‘ÌEPƯE¦‡á“KÔwnݎ͜ұT©ÍÞëγ™\ᣕO
+èd	6šZÑ"X÷ß:öñõú||½þÏnà    $’I$’I40;Î…¾R”lÞÖ°‡VawŽÊ?QBcZùЕŒ
+vk(— MëIç™ëfS­d™¤95Q3å¨ÈˆÃ…QÐtYÜ(~PÒdi2Qº)p‚…ù¬O1šëY÷úx¾¾ÞÞ>     I$’I;‰Ÿ,Ì1ìDJ&m–`±1ªA@¼5`‚‰˜	ˆ…Π&œ°<ï:ó‡?<…S°:†^ú¥Ûæûïyáë÷ùkŸƒùèöƒ^çŠgɺzÇžãÌÉŒæ8òË7‰žéTUzF¿¿¿7À] yçÏw¨_Áù9|Uýþ\:úüÌÔëáç.³¾
 °ª*E˜“¢¡yušÄÍ/•¢Ou”T^%ÅA	$ÙÌw|[ç\Ékw˜7ÜÞÊÑJ<L‰¶ÛI2ÚH#‡Pg-R	ÓL PD¤IaŠMJ[M’IæÕ&Æ
+¨‘×@Æò|^b‰äŽ$| J-£ä ‚,:‘ðø$£–½€†Ñò AtÖ8‚hˆì˜˜8¼¸`P  ¦U`R¨¹ÆÛot‹ÊÄ•²ýº÷øøÞ5Ü3v»”ݮᛵÜ3v»”Ýw)º®å7YÚnÝÊnÛ¹‹ ‡rw
+ "îî€7wuuÎuÌAĵwÝ®å+µÜ¥v»”®×r6k]Ên×r•Û¹MÛ}UAší¤?Bk<ó©1޹ϝ}¥™6¸g÷úûó¯{ïçß¿ýM·	ëRã»ß¾õ…¥ø2~Yá}Að»~ß›_sõµªíóíõóïãßçÇ<ßÁ   ìÒµŸ©mø~Æ´À Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  ÃZ  Ì5  Á9Óm¶ÞcM$§M¶ÛyZ  Ì5  ÃZ  Ì5¡ ‚À Ñ0|¾¾¨×Э%ôBV™YÃAC…D?qöæÏ±×'<ó[×CZ<ÌÜÌÀ*Áé`¢Ep_>ÚèúÝ}Š\?ÌÏð¶c|ÞȐ?µesïºÙý¾4%ñ¬—Ã’ò4BäRr6³nŠYC°Uük¹Ïº,.À¯Ë•w캿}ÖMä;žþ(×לÀßÕټׯt`Pá  2^vJË @‡±L¾¶8TCê s<ÕO©]~霂Àç0}ðåjHMbß`þp ‹TCTƒìÙ Æ)MÀ»¯­N|¬›Žc˜†¢†áž½Öû@C&JM@@Ÿcd!d¢…§²º ×ÞvFï¶w˜õÎV®
+t10ª‡óžýüï¬y﻾'TP*ÀöQÈÏ9^UåÉ:ç «G ½™Ó¬XÃÞuƒX÷¯5¢·X©ÜÜï<ýÝfáŸ<a‘èÑë	E‘6¸pCßsäë˜Çβu挂ùԝc}ÝÞÿø ’ÿ¯ÏŸ¿”
+Xé G8|ÂuȼÈRY#‡	 D!ó:ߟ
+÷€óΰ¯Ü¾þËý÷绲üCßU#·óÚ;í_¼VÐ2[A°‰Á‡zžÎ*ƒßGóõ³ïßÙ^õzžgç©úÿ~{א@úþ¸ÒAç›Æ–jóZÁƒ•ÅÉFrÞ
+ˆÔÊ`³: º8{*MùÖ=ÄðÀø)[ükÏ7}Áá óòϐy½ìðOCòz'w¿”Aa®çŒn÷ó)^wr}ü¾¦¹¯o9óÙïÌ`|Ù–êyNçÊì°A!’uýïoéÉJ¿}ú…óÁ_-*
+øRw›#›SÃo8ú®õYß-b‚>u‚G¤Œ$›kÄRl&Ý)rKªc(a6Sm¤l Â(„è$4 ¨	, vq ŽF¡Ã˰¼dSÞeä!Œ!ÇÅå~	¡á@Ã0ø€A‚"sDP|à‰aárL¢SÍ|q=âðŽKŸ\OI"J.Ü‹
+tQt'	#
+‡°¶Æ¯oõË—.¢•Y“‰³fÍ›5lÙ«fÍ›ZndÓVÍ›6jÖíuvºÝUÂDsœê¹ nî¸ ŒFÜk¸in×kµÖívºÝ®Í[6jnf`ÜÌÁ³VÍ­›4PÒ} söÉ@8pÀYx©9õõïÍõß.ì¿€ Z ÕKÄÅ㮼ïªëÎûªÌÉ ’GÏ¿xœ÷¼óϯëïê!WÃëüø}ë{áœ9Þ¿:@ï¼Ãù¾gùT÷½ô/·|õÞÑséëßçßè’I!ñî÷ú/=Æ%Ip¼K©&.|pª*€ sÖùñÞoÞö÷Ïÿf{LÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀx‰Ð bJt Ù­fffeÞkX3 S1°&àóãÃv`Øâ.¢x@ÊÞ3¤P?K~ÐóíßžbYó³}Í©‰uÛÀ^߯STö äú
+±¡ µ‚¬}9Øv4»ihÅ–8ë8Àç™"ý”ýÌg
+¢¨ÖV¯ídÆgí¤ 2>ÃÎTñ¶¬æ3 P+gÈù®g£ïÌu\À.GY¡£j dÊfÓç1ÜÓGv6ÙUÉm­ōüßBæ/]Y½ÅàØÖœ•P’63£ТûŽõr½årÁzÔÄO˜JÄ5€9Ušó2f¬tî#ì´âÐÈ•"R
+Óx³g»‚L9*©Ü: ÁÀéÅçH+ŸjúšóSÏ=Üí4¨‡½óºÓ¡D%¤D4Ç*@)ÎU@ÈwªË€D3ÏpCS‰`P´®°´ ]oÈèJ†CP ÔRNžYeTU*
+©HˆfÝÕIßw«+x<ÉíÓáÑP.‘@ž!˜(IƒÁ@ c™¾R:Ž‚…Ëj”‚³÷ˆ8\™Étˆ‡s E2~()ɘ)A¬‹õ ÷3nÍÇBkFê)ZI˜I¢•@Îkz¬àØ6îI’"ÒzV¨!ƒÕT¿«Ýò`¥Á¨à¥;Ù™7N!ƒ‘zˆètkB«õ”ê\ÐëS  u…Æ!/ }©s€È‚Öô:Ñ¥:ÎGJ¼î½„!õ×<¬™!¶kn(]˜°ƒ´ì¬dA·ó8Ø/Iƒ¿”U9'⃰×)\8>|˜0YÌuå=Gqdk7½¹ME·w¨™kAopDÑž_V&pD„M¿ʨïçöo=tü¿<ó »6‘¨¯9BCšYV‚ŠçfKʳ’„8Å;õÄärS¦J=835F—˜@Ô
+õï8ðmT¯4.|îK„³%<˜›”pÕ£ŒŽÂ üûýo“rñ÷Ó¯ô€…çŸW缇¿ÛïÓ—cSËŸÇ·øßwʶÿ¿\î#ï¯KÇ¿I¯OuîUëá*Œ]æºÍ\ÿTU €Þw2×°YP%8WÅ¡Å2G$ ˆ
+œRøœ§nSŠ‚I¤¹D­†ÛìÒë3¶Æl Y%4SšAÔ:P,ñÁ$§ˆ†“D‚lë›,‘Ü›h"JDpm Ý‚¬âV0øò‘y:2‡D‡È~b)¾ ’"¢ig„‰‡	¹"	k*N$@>Jp‘#áñÜí6ùy¯Ó1X ‚w[lÚØ¬ìÆcÍ¢€‰#J¢HÆ’¨Sv»¥7kºº×t¥
+n×p¦í§Ħê­×)$ F(„!¦”Ý®èfí8¥vœR»N)]iÉë8¦¥%H$¬ ãç
+–h,¼ÔÝvÞ~k;q1313R¡fÞ¤®¬5Ôbû雞çòÕ_Ç1†š]¯õ9ŽüôO~ÈÓûê#».¶~OÏ‹àôý„|B	Õ_‡â¢wÈH)$’P¡%
+P¡$©¨xð{Z` fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ a­  fÐ `œé¶Ûo1¦’S¦Ûm¼Ç­  fÐ a­  fЀ Á` a…7yXØÈ¹6T1H
+¨åA|ÝMu眛pÑß>t‰pOÒ —­d<ʧÏ(dZÒy€ U‰˜®f+9p…@ûû‰ÂÃ`Z“°ï®Œø Áò80°Œ\MɃ"|Ýüáß^w{Ð/O aô¿zËGUÏhçœóW’ì¦w݆µvw½€am„Ù²C»£²ŒŠ¯á{ÊÇñ"?“ß‚~ïçÜ}Ï'£Þ?¾¿› —ã€ÐÀî¯Èý€‚AIï˸_¯X
+Æq‚µÜôóµŒè7êÁî†hÀ(vyU'ž{Êט³Ìêêáéf.ï8Å^
+æq×î»ø‹1a:¬õùìɵËä¬'#e²'¤qÔL!³êgæîkúÕP-q?¦‘ý}¾ü]ÞcçÀ?#kð-ïo#ÊÚì=X
+ÂÆ¬)9
+eh À‚÷×~ïÎkÌ‚è4°¸ô«WºÇî×=́NéÇ),Ⱥƒzo¼(uò&§TJÝuz™émä
+ÈÂHYX->G#j@æ'ºë{Öºó¬¿bœG •œþTarœƒ’Ç]á‘säÒ\£åhQC=¬˜@@sžÌv;: p3$êÖXL–î728!ö†»ÕçëÞ¥äŽ "nY÷μÀâ3I¤î)9Kaʵ©dn
+ðÔë•‹ˆEg³½æ{qæn#ïÑùè»Ûïê©wñ
+ûñ¿»Øj? >¥Gð|Br¾V~c^ùWӐXBóö®ü¬Býó$¼|êæq=ßíy×5ÐŽì:ç@äÍbâüuD~
+Y%Ùé­³Ás
+Ta68OXǹ>`¤q¦…¦h%CÕ¶Û=#¶Q„‚l1
+#¢j&Qæ¶–HÃi‚A”TÚ£y at Q=i“d¼!'Â/5ƒC¼Æ‘2¤]Àø7­è(€ÃÂBM% ÊñÐÈ68Cˆ#\|y#aǏˆa> $ÎÞÖØÕÁu­éJÕ$’hÙ¬nñ«»²ÍïFÆ“	m£iim¥¥-„FÆÒ‹‘ˆ–6–¶— D‰`XZZXZÚZA‰`X`\	5€1©¥
+B䐐 °±´¦ÂÒÂÛK
+m,,,m‘ÛKKK{Uâ¾êYfši¥–i¦ši¦ši¦ši¥)JYfši¦šiešRšlÓi`ËcL
+?c…rõ«ß^uõu®u.É5*rï}[ô—YxÁAwƒ;	Ts[é¬Ýœßbï²o;jö–WkòÇJF¸ód­o9]æù÷ííãϏ—Òw¸@ 	ð¹$7*Ê—&ñux1ˆ Vu+õÏzïÁïæ{LÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀÌLÀß·Yíì ]ˆI)Ð fµ™™™—y­fffeÞf ¦`
+f §Ÿï^·ãÖ¼{Ù ›I’Îᑆ¾UI®¾y¿:äå#Èȸó "½cwæKn4SØ‘5H™£fCuEøSÞ:á/­)ažqü`1Êήh{}ot³hG-í†G”lùU'ìù¾jg ½ø`sуÇ„åaTUÞ>ûïó8gÀB>…,¹
+A¢@>ü :÷]›àvêÉՁÑ;ƒAW•÷º÷™š®`!½þ•xŸ'œÚ1u WtQó y}eº³uœ­ü¼òõÉ·Ñs–‡AÐ1Ñ«¬Mꁳ¿¯<9ô‹Ó!Îý£½>ΰb~Xú¼N‚ûûÖ‰ò¿ÏŸ;çñ¡üæQìÐáÖ·€'!†Š.ŒaûÀ rúœùß1ÖgY÷Z”öª*ŽÏwІûë›qªÅ~ìâÉ®‹0Cì¨*§ŽH¥Ô1,
+DE
+·Á.Ü.«?/Éž÷ºM7ÃXIáÕG)ž¼:/¯¿•>Ü¿kÎdÄêwõOÈoß}˜O.êη“	‡¿zÆ;ß_’„#BC†öY5’ë¬VÊ!ðVï ƒŽZL19RáÒdÏ]õÖ~{Âë8ñ2wŠ1x4…¸UG•bl«°o~Ï0Žåà€ã­ñÜ
+È:u„1«pcY=€† njŽ^§Z´¥­Úu§dFTs gÜó‰Éu»ö±å‚àpY:Ìò—HèîÆÔ©œY08RÍ£¯hu¡Ðšp†È‰P™2¹Ã9&(ÕуA‘ÒØsWÞ·Ÿ7„àì-yq±M=¤O·ïÝûïèî˜w1óŠô<€Ið^TÅøøýõšPå !‚€Ìru1|s7›÷!sQɹùï¹_±Gã8¾doWÆ>ýô2¨_²¶I0ôê{™M­ L„
+,]0L£J׉3„6^ä‘I¬’­–ÂId¤ÄÈ‚	q(…É%‘6Üày¶’!"”
+†Æ`‚5Xñ$¿Ì“8¡bGÃåî9<Y¡cÞqÄN´
+üÄS¼tT Ò	xšNƒ`D4{±äW’ ,1ï0G
+òÌ
+†ÆK‡Pû
+’J­¶™mj„SNÉ$Ü<Ìø˜xÀq#c`U¤m,
+´%É#­&öÓ´¦•ÛNÒ»NÓM7ZtXe$  ³MÉÈ€á©ÚnÓ´®³´®·sJë8ØêÎÒ»’$Hêˆ-G:ϾÔ4d(£«çQ­o»³3óV–R˜˜Ô©žé,åèT½n©æfgØa
+ÀZ#֏ï½ôz'ÞÀnÁø˜O[à?Íñn|û~сÁï¿)÷W§ªŸC³3qÈ…ÙÎÖò§»«qÔþ£ŒÀaíi€˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ †´ ˜k@ ƒ™m¶ÛÌoé–Ûm¼Ç­  fÐ a­  fÐ a­  f˜¯ª‡6;`1%§=|ùæsÖ<E¾cÙ`T֏+He5¡Æ:ûÐ:»ëi
+,¬Eiµùf®•ÁKuèjèî^3¡Æa“"KºÝõæ:èÙZïEPÍWdFQ'Î^|çg™>jÐ&CZï^Y(D¾­ƒÊ,Õ·Ž`æ ä9Ör,ˆå%À9[W˜u€Â8»äÂ0@ÜÄÄo›7º(aFއ®¥)`¸²j¤ïÞýçw¾Ž¶¶÷£¨8ì²¥:÷&³FŠ!!BCƒ:îIup`½ûf ˜ ¼õî@öiB	¸…(@1:ŠZ¤Sfî\©“;êê–0cQ:¯*Ô…^1$nUI×^×½wzÈ.Õ/Zô0#ŠÔ*X](yå-JJðÎæ@0‘3("J*›Å#º-ð Ô^EI|—æ«&ꇪdÈãS…‰aWuŠ’'½nûë¿Qpd@ˆÝ¥ë
+ù®²†›Ju•3dLác”¡Î äz˜&’‡A=÷ƒ‡Nš]_y°@ËCš˜;Æ\”™Êâ„‚cç…ç4f«68³™Ë€ãã5&€ùçG{æ·Í×z×Ï /2)y’*Š£Ø}B‚@ÉY4YK‚»ò°ã%ØÙ—Ÿ}òëA®±°àoZÞ‡WCG“Wö€Þi(ð ë3¯¶Þé#žjð¦j˜Ö3õŠ!ŸJ!
+ø8³Ó&X8Ù)yDɳ.]j5¶z=ÏÛï4QS ¼°QÂóB›¬£™%TV8òXÞ:ÏÍ®wœH&g5HJ݉
+ÌwòîõœIč—ÓløPr܆܎CFeHCæ7Ô_›ã?gñßãÏ7žoߌ‘á¯ð_>ÅBCuùŽô›!RÌÑÑŒ†E cX_›ÎwÊß*Mü»õ}ÑXÜ×W2`îcõ¾Ì„!}_Ý	?š;úpŒ<ûùoïÒ¾÷óÁ² Ãî9S&jµy®*Š£ûYÙ“s%÷ï7ç<ùX²&&f$“3|ˆˆˆ…κó0ªìqdFM4ûïΚƒ¿™cð1ðúò>ü–ŠH?MùÕ|Â,”Hç­:züè7b×ÄÝÓ×ßw£oÍôü( >Þ8¡ùm…(Èà!ØþxãëççM»ñæ~  Á      `€  ‚  0@   Á      `€  ‚  0@   Á      `ôÛm¶ñ¿´Ûm¶ñ    `€  ‚  0ýMCËU$û{óÞkäù£”Wn~÷ª.ÁU#l€›ï÷üþßÄGóúEåý¿|S¨÷®Þübük÷èý“'õß}¾
+ß(,ý•-Ãæ^¯oöŸ·êÏÅñþ‘€Ý_ìæÄýübGßÞ‡÷—0<ó|üà ?>Úçèü4EÝù_Ì_àï~;€óÏÛDÀ„|ߏÙIcóêÿ
+]¾z·ð¹ùÖ¾j½Åë ¿9’³ø:0BÝ–B?¸{ÏÆ§‘Í'ÚύJ¾Ä{N›×">û_ƒ<‰‰Ü
+́ðæôD¬LŸ=1Ᾱϝ|ùŸ5ÞÏÞõzªýGãóÍø¿w¾È>zý¤?/êDÿ¹  c¢ùÏ™ô÷£ µfüýhÖù×Âîþº•†Ïª©3“ÛÆ=ùŽïÍ‚çO›ùÕ÷7Cûk|˜NzW™ô
+;Çïu׊¢¨ç>ž,,™¾÷ÞùÎÿ6·dLLÌM.‘ÀížÌ
+í\oãXdj»ù¯1þI³ü_Ò€½øO}qÞ(L7†
+:ϾõÓ‘a£·W»Ö¹Íäw\»›9$DDççñãc~l                                                      m¶ÛmüÛm¶Û             ñ'Î{5ºÝù‹ÇéçZ=ô¬þ2ëY÷¬fî`÷ڝóWÑê>ñþ}÷o©ÿ_~q½ýx<óоûØrø ³ÏkyÍùZ祐Œ!V+YáçZχP|Îϵ(;
+iEö#ïµ>uvNÅûqpû™®çš™ÆÌžÃ}ïÔ[óï@zs¿ù½eڝc ÖJ
+ï®]­oÊÇ»ï¯h ËÙî}êkÛŒö·Îβ1Z‡}Öw~ÕõxƒuîD}öÎi\$¾ú>ßÑùÑ?Ž·ùHCõ"w~õùó˜üz08kSDÄÔku®÷ê¯l1œK8/‡i
+ïÝùû>óÏ/=w›òüúkùýŸß¤x<×xïYë޽׺ùåLy<‚Õ"ªoZóÍ(;x3á’„!|r\9ì£3™Ï{¼n~g§Pk•_Œžâ>úù
+F/ÄÏÆãóý•§ñ=üÑÆŸ5£²3îð| Ìÿž$‡ûõSõªÁ·¶ö´µoÚtðê©L;ûžÞÕ%×vqÿ½ííÅ	Eï½Ö<÷nÎYÓ	иpþþÐÀÀ,€×p âwo’¬Å‡!•ƒ£+ p&Œ_ðÆŒXfX0bÁƒV¬ÈÊ@{
+®œÊ¯þ þwía3)ßP5ÿ_¥¯¬¶éWª¯‹Wù?ý    ?Ùc¯@rˆeÏþ€h›ñ ÀOO. Ì€~ n+2GÔÀC§ˆ
+þ2;dtþ 7é€ýÞ]pMçïójûþð   ï´øvÖìfUê÷Èÿ˜ªÍ*´¯„¬Rb“WœªüØeûÙ—ý×n3
+×.]¸Ã àݸÍÜ:]»$Àà®Ü›®Ýº¶ë·nº`Wn$áÛ·]30.+·ãuw30+·8Ý]tÌÈãvè!Ë·næfvàÃ⻘q]¸3â»pfÆ»pfíÁ˜·`\WnÃuvãuµ®î»˜·I##M5#B}ÁW «W)••[mÕæšieši¦™™4³M4ÓJi¦šSJSM,³M4ÓM4ÓM4Ò”4Ò•Õ¶Ý]M4²Í4ÓLÉ,³M4Ò”³M4¦”¦šYfši¦ši¦ši¥(i¥+ÛUí[mùx(ÀŒŒ!?@«W@ŠÀUîEt+x•^ª¥Rÿ­R©xÑv$™Uü¥U{НB?Uè*¼
+«÷ʯç*²¥Ùø…W´Úó¤l¥À€PUs‡"«Ö
+Ð’úÅR©{À9•\áÂ4•=à<@|¢«´ªØt%Oz5ãªU."«ãN@w} >«À@½—Œ3U/Ê`x±Sî—`†^ ªõJr«‰W(À‡ 
+­T8ó ùWW¿€ŠY…f-ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠÙ+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶JØ­ŠØ­ŠØ­ŠØ­’¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+b¶+d­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­ŠØ­¾êÛe²Š|V]’««ë™™˜°Æa…W^‚«J¯¡àV&èUaUÞU`òÀ*¾Nr‘UȪí•)Ì©䪥€;W¨ª÷C‚«
+¯¤“ÛŠ¥€<@s€<
+®eW:Iø¼90–&2¦#; }eaUÄ4ªì*»
+®ÑU¤ªù@t‡Ò«°ªú=WÏ—×ÖÓ-ÂÞ‘UÙÁUå Á(¯šKJó£è*¼À?ìÏØK‚«ë ð‡yUßB«Â©T¼ßTªÒ«ØUs*»@qðDª]òø1'"«8€r*¸ç‰T°hzНhʯœù˜ùyUêøê¶ÅV	S‚˜Uq	Èå*³x‘ïªU,”0ÅTª]WAT÷ äR‚=V¾uC at pUp*šëúÅSó*•K˜ª{€aUw•^Ø•K´U}piUøÈòÃç*½«¸—ðéUòU*–
+¬*½ 6˜JžNJ÷#Ìð£Î¬=ðúˆk j7´]¾(åè¨*¼@<à0*Iù¨øÅW´ªøÅWt3ãªU.â«©*{J¬
+¬%L*¹
+¦^«Óx×iJ= ;Àz€yeAYEü7”ªà©î%Lϼ± 42T茇?K›À Ur¤¢¸ç‡çU*–£è*¹
+¯´P²ƒ¼ªÂ¤:! 9M‚%w•_0^eVrCËI?)r«ÊUaUȪæUx w#¼šfèy@}j;Àa*zН	ÇŸ÷ÂÌ`1€U%RU4ªiTÙT•301”“á éTª_À¡J>"«ØRÒñڏ8ªóK°]
+Qæ…W2«åò€v€ùJ«‘U…W¢PÒ«ÀªûIU|0ñ_AÊ®â«ÜOaUàU{J¯gDpUyÊ®à%W˜ªø‚«ÜRŽ¥WB«½åWS³Ó@v„‘;Â)hªÂ«­R©háà`ªÈ}@
+¯)*u êJYUú#Ȉz‚)w æU^ ;ʯȏ€ªØu*°UxÈ>ØpUp%J«ãG—‚«ÞUzÕ+À¬LÁUÅR©uÈ€fgóU,©}Ê¥RÅtÄŸÖ\X
+¯ÈŽêJ+³¼ªõ]…VН@òªò€åиªõ•\¡ÊíªU.Øwö	T½ÅWãá©rGIüܪø<!ô€È¸̪í‚«Qä*¼ž%W€Q*–C¶Pó ð*¼åW»©à9£J®¾%W‡0¼éB%}Œªú¼„þ:Žà%NÐE°ÈGÉÙù
+¯!Uè*¼WÀ°ªýÚ¥RùНâªU/@@ªì«ÊFCÒJ¯PªçŠÂ?2ÁUÌ•;ÿ,Ô)F£µ%RôV	T½`= ÿmÿùŠ
+É2šÊâh WÜ?ü‹œZÂ÷ÿ( ÿÿ @  <à GøeÌÁ!‘Äô    *ŸåU?zªh    4  4~¨5O=AJFLši£LL !“A“MJ§íR Ð Ð  Ð4z™   SõU         9¦FC&hÂ`4hÄ
+2d`  TQ<“òšhƒ Úš4™›SÛôAO¨þ§ï>c&‡ÒFÆL2Sá40`lSâHøÖª­UZªµ@ä5	);)¾H(X”²I!>?f$MҐLðö><kfŒÊ™PÊ.ßuÙª‰izˆ¬ZÓ»=ÔÒ¦™d]2¡®±xdՍ
+SÌò õH67)¶Û)BMÈ&mµm«mµm©$—×å…Ul#DUc ’„c#EhŠŠÔ®îéÇN:wѶ&r)ÞpO8ÞÊšêðL×r•²‹{¦¸§OX'i»J™E=Ó\S§¥7xS(×]÷ÎØcS5¡'„”$ø‚Jˆ†H+Í2?iã<=Ûm·xŽÛÊþºä_Ùz^ëםÅU«nÄ´$ò4<ÂM0(dzÕï*pé£(‰$§0“ç7>³´á¯£¦†£è	?ÈI½Ý€                  ZXDDj$–d%II¶ÛmÄØ6Îp	48páÃ9Îsœç9ÎsœçÞ	éM:îóc®9k³@“\R¬U‹b¢$F|±2F$$Gž’¬«*˹ƒC1Ó‰|O“ä¶ÛaQjICt-óÆ*²<6É$–ŠÙ$&ÚäU¼k—¥)J2”Ïl…Û Jª ¢©IF‰OTyKk$ǯÖgRC×EÆ
+Ms6¸Ú^X^Z4Ï-tٝ5㝭–­__4ö`“ƒ˜€Ã°à "P ³ùõ}¯Ö½5[k.¨¶¨¨‚ÐaÑly2ê‹j‚ ´cC4[Lº¢Ú ˆ-ÐÍÇ“.¨¶¨".2¢€›Àf ™RNà’‘L½&¦ÄÁ¡à|&Ÿ)'‹‡«ÉϏéç¾—4¶ÛVÛj     æ:IºI³ÔÅÁ/¼8d®7\,¶jÐb›ÑŠB­”ZÖ–Tœ©5Ø$ùBM·ÑÏ}paÃM÷µm«e°¶ØsåZ·/Råz³9
+Øí0rG<6Ê.pÛM³ÂÖÁ²$ð`[i&æÅÂI’KBMA33rI…$¸0Fh³\ëbid–Û->“¸92å¯+ôâÕ›°lf	)«ò#™Žy†Öd8lkÔ“i’íÀ›r×—1q”tÙm·„I¦ºìÂM^_XIÌ“ &¦ÜvÇ ’´‹,ÓÙN=—:µ`¸ÓIc]»&¶Ì¬ol­­»Ù&L´ÎKŠÔ$¯ƒhÌhiû‰ÃŸa'>PI¼I‚h+` @úìžRH¬ŠÈª¡¡HºÛm¸1‹m·ü>ã@àh}ç€Iô„›ŽÃî9Ÿi÷Ÿ€þä?(}B? “ÒxÐНBOÈ;‡º{Ø6™©’$ÁƒÐ)A'ç)$r)ÔÐȧ‰¹¡MÈ`h`†Á&ÃÐdèu)ÄyÆM†	às2=„žD=fÁ'#RŽà“ÚS¸às	748„øêMí")ša'3Új5Èvƒñ„™&§P“qÐð;ºx„”S¡(“©±©Ôt:“´ÔJ”Ðv›âr)‰¨q"OÌ{†MJCrØÁ¹Ì¦OAâN†¡%#ß={ã¼BzNò”â`اƒÌæy¥?AÌäyqMN¤àj)àh49RwJnvš¢IJw&BO°$ÀIñCBƒR$æv››æÁ&BNó€$ï	8“s©“´ÔäR49žIö”ð58
+îxžÐ“´ž£´v”džr	=„Ÿ"ü]ÉáBA!Œ_D
\ No newline at end of file

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,67 @@
+Machine (phys=0 total=41943040KB DMIBoardVendor="TYAN Computer Corp" DMIBoardName="S4881 " DMIBoardVersion=S4881 DMIBoardAssetTag= Backend=Linux LinuxCgroup=/dummy)
+  NUMANode #0 (phys=0)
+    Socket #0 (phys=0)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (64KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (64KB line=64)
+          Core #1 (phys=1)
+            PU #1 (phys=1)
+  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
+    Socket #1 (phys=1)
+      L2Cache #2 (1024KB line=64)
+        L1Cache #2 (64KB line=64)
+          Core #2 (phys=0)
+            PU #2 (phys=2)
+      L2Cache #3 (1024KB line=64)
+        L1Cache #3 (64KB line=64)
+          Core #3 (phys=1)
+            PU #3 (phys=3)
+  NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
+    Socket #2 (phys=2)
+      L2Cache #4 (1024KB line=64)
+        L1Cache #4 (64KB line=64)
+          Core #4 (phys=1)
+            PU #4 (phys=5)
+  NUMANode #3 (phys=3 local=8388608KB total=8388608KB)
+    Socket #3 (phys=3)
+      L2Cache #5 (1024KB line=64)
+        L1Cache #5 (64KB line=64)
+          Core #5 (phys=0)
+            PU #5 (phys=6)
+  NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
+  NUMANode #5 (phys=5 local=8388608KB total=8388608KB)
+  NUMANode #6 (phys=6)
+    Socket #4 (phys=6)
+      L2Cache #6 (1024KB line=64)
+        L1Cache #6 (64KB line=64)
+          Core #6 (phys=0)
+            PU #6 (phys=12)
+      L2Cache #7 (1024KB line=64)
+        L1Cache #7 (64KB line=64)
+          Core #7 (phys=1)
+            PU #7 (phys=13)
+  NUMANode #7 (phys=7)
+    Socket #5 (phys=7)
+      L2Cache #8 (1024KB line=64)
+        L1Cache #8 (64KB line=64)
+          Core #8 (phys=0)
+            PU #8 (phys=14)
+      L2Cache #9 (1024KB line=64)
+        L1Cache #9 (64KB line=64)
+          Core #9 (phys=1)
+            PU #9 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	8 NUMANodes (type #2)
+  depth 2:	6 Sockets (type #3)
+   depth 3:	10 Caches (type #4)
+    depth 4:	10 Caches (type #4)
+     depth 5:	10 Cores (type #5)
+      depth 6:	10 PUs (type #6)
+6 processors not represented in topology: 0x00000f90
+1 processors offline: 0x00000010
+5 processors online but not allowed: 0x00000f80
+1 processors allowed but not online: 0x00000010
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,68 @@
+BZh91AY&SYþ폺 {ÿ§ÿÿ¿çóïÿúýïÞ ÿïÿð% ! "/ø`,>Núú p  ð¼ô=Ï[5¯C'Àè}åß`³ÈúÒð¼@<8 $Îõ½qS{»Ùî2·³¯Z.¹Û´g»Ús^ì  $       þªªgÿúª¨50~¨2`  É‚` À   †§‘ŠQSÊšš~¨Äi &Ðh  CL@Ó&€ 4?TmD SÔò€=DÈÂ0 `0 Ó 
+Ÿª)†©ú¦™             
+HMO)&ýMzšPzA‘¦€£Ê<£ÔzS at zOP  Ô
+‘ @#M4›OMš6„=L€¨ i¡¡µM¤=2á ¤ýÐä ø†øÄ%1”%ù0t+€c,'¤ }ŒCaX@ù!:ßú‚á^ÀÐZn0-†RÓõë~¿ì;hl¶Ûm¶þô?ôw§ü+¯ºûð=1aTôTÍyV*bÚ"*J‹* | sÈ€©€
+˜€-@(Â(ýšª¢!¿ŸžyùöôúuNÞ
+j´	É­i„Ay˜¨—®¨ÚµÝÚ5F—z£®f#âTƒ*Që֡ɶq B«	MA+Òb„¤ Å)¼¡)1BJè¸33PJèohÔbYdnI$–ÛnÉ$“24ãPÚ­ªt§l’7d’HÜ3Ún†á¸©«·r+µnœÃ0Üî­Ûq7ŒkÔ‰Õ&Ö(‚(a†(¶Š(¢Š7m‰#Y,™M&	„Âi2šM&“I¤ÒE0Ã1E´QET­¸•‰i³UwcnÉ$„ÆÛnÉ$‡KK%nÙ$‘BqîšnÓ‘ìÛ[m´q§§w6±¥0¦¤/UÆpëgÖpígÖpÑ¥iDVQD…e‘ÏG<F¹çÎwçž„TëB§"¦¥C•Eàs®zë[pm¦9ôcÈé-`̳ 
+	¦NaÙ(N&U☡‚Ð`™EÄÌÄDR„á‘E4ÕRµI”&R#Ebbààbà☡)+„M4+N)Š-8âà㋃Ž.)ŠŠb†#Eb˜¡ˆÑI÷
+ñÉ]8.—š87­fe têI‘V”ÆT’Š¥9Xe'1EÎW™­ffffQºQ™€œ ê(¢ŠŒÍ(s‹‚â$ÑETJœ‹§`1]‡66âíÐ4¼EÆUu–³33(èS”\
+ETtÀî8)4QEDÈu£jy·-@
+åï" 	*ŸŒ *cЍ+€`C@A,ÀHA2Õ³
+EUH@«@T…@€1
+ {*ÖDùƒ¼>Að
+d{Ô6žÖ.^áw캪ªªùÂô#31„\»C‰‹—R½ƒPÄÅUU†ò
+hyüï_Ÿ/u|hy8XøOjö—Zð~;ÔrЮðjò ù¾ŸïW5|ú€Ö³àÜ v]Ø s™7êkv]Ø  ­Ùwf—eÝœ‹³¾€&/{Í3(äp÷
+ Ä¶¤Î[Re$ËÓ*ch—{2±EQE6Ý^ÛÙø¶MuZÑs\¬QrЄi™1ËÚ˜„lÙ2b—V„pi“Œ¹` ËàbÖ…²m½´KÍšjص¢Z†(¢d÷®˜QD™Í:QDäß%œ²-õ«ÌÉž!{ÉÑŒŽdŽdŽdŽdŽdŽdŽ]
+{WGIËíràx†;ƒ!ñ¸‚5UUUû ° C7ÞÏOãÓÓ¶÷È ZMñçÆfgžùòøS®Ãm6ã3+m±µé}Cæ~ÒM¸Úï}øé¾Ûm¶Ûmµ†Ûm¶Úm·>œqÇqð2	 J¢ŽBh *Bªà —¯ìðĈ{tÔJ‚¾Bý'üñßSÆï­wù\ï¯
+ç>¿Ù½xø ç ØºF8SÜÖ¼=®2׼ސú*C2EáC[ݯF˜lV”'”Ê„¯©:ÛE¶,ë)ÙÉ•I	-²GˆbLR#[å¿=3¾/ú]c—®·{-ßF"Ûc®rRN+:ãÔ‹ɽ1[téý°Àv’$ÜÚ#ŠUsîÇ»Ÿ.9éÁ\¿¿¿Ãå¾o¿€p£‚1]*­åcg¯¸ 7` s<úúùõ5lvø ìïñý˜ z>|ùóçÏŸp ;vÞÞܲ;m¶Ûm¶Ûm“eº d ½í—¶W$¶»e´æG-;›%û@ ïeì½ý` NÇojͲÑ+²Úq·-¶Ûo° =à x   r ðìž@°õþ Ð;ÃQ-’H×mš“yN¡RqU.ª¥Àc3TEINj™2¨J›rÐ¥¹˜š"¤n]f—Y¼^mW™œ^il泆gãœ8prãõ‡Ô¨}aüaâÐsÐ
+äPd:†Á¸`50°à d'Ù‘$úCÔ.I;§¥HôOtõ—,ù±1¢¥U ’>É‘¨l0m$Øv   0      }jIp„•UsiÍ—61Œcµ­kcušqðäÝÍËп›éß*…–&&a†UVa€T UPU@U T UPU@U T UPU@U T UPU@U T UPU@U T UPU@U T UPU@U T UPeq‘¦@  ƒ      ÆÊHŸ9!T#ª΄UçB*„oB*„oB*„u¡B:Њ©áƺë¯q¶Ûm¶ÛmÏÇÆ=ßM!:õëׯ^½wO¹îø I:tª®—v @Û Ø  
+¶Ûm·wAR¤›¤’Nœ¸wnË 5•v 
+¶Ø¡7½UMñËË–œºêõ   0      {’JÖ\jõŒ<         0h  0 ± !ƒm¶ÛbŒÊªªªªÁ5º€Šr o¾þ=¼wÞ«
+ª *¨ ª ª€
+ª *«·nݹ‡°à˜&)UUVeUT ¹Q¿•ª•R¤ÍS‹k8§^š8£+pŒfÐ)Ùt@Ã&à@o7‚L„¥™¶üYÆåÍcÎü^¿*§[
+€AÀªÛ遾µÒï¥YâÓ–ï«x¹p&oë }>õUUUÜDÛŽú@ÍvﳩC$Ê„ECRÏ«yZˆ};Ƈ‰JB–’š³n·ÑêɼƒØê~ñ»ø¿}…ôÆÖè[«bÝî7rE%•Ú9—œ¦œzÝI'S$œÖr`       d’eD’ P ZªªªÀÕõBY°òU=o&¾c–Àï'-eÎûæ¨UTv·råæåÊØðH€©)ïïî‰î¸þ«õ”ÅÅÅ­ïîº:@éN‡ó>@¾î"þ»îöên»ˆ{ç</ û§*Óªl¦ˆÈ~)L܇âbLAýÔÀj›9N–N•'õ;ýcüHÚGžÛp|9Kqdät'gC¡ö¾«ø¹úOi?lm¾{Bl={Cwæy>jh|ôºPø~†Ééڐ>¿Åñ~ž{›zvúþbyÑD>”!)K(¨§û"
+"„»V“éz9ŽÛ·pŸLBIþ†d
+e.-¶q„K]6gQ‘qœ<c€\´&”.kˆÍ
+Š	IŒä;C)2ªLD!F HæØ*œm¾æhÊNúí®³‘ ÍmDqbÃ|e𐆸´@ßæ•ToZgË•Ó9Îp  õ%}¨ã<=©@‰3¤pyºbZˆ2&ø;ÝG”’< ï…/–èòañÉB,ä='E9JTˆp!la²šÐE!ð¾Ê\'32m8	Ý»cÖD˜ÑW~ßùKžÒŽâDë?Åsé×:cCI‰Æß—ÆÙ²Jœ<=Ü’w›6€      ’I•H‰$̹$’ì .I"øÛ$qøìN·¥?l9þÉнêÊ¥ý£ö}ÇŽÛ_”†A¶{vñîïI!/6’úãÒïÃicLßv—8ÏZbbÞG¤ìqšâË~}ò¢DG/бœ\êHˆß\.f®™±sŒV8®&4ëlL_W`u8qáËm'× ŽZ
+»
+u®’uîÇ:ÛŽ—Êi¾ö˜£¾u8gˆFøÞÒDEߍrxôÓlô9os\ªð‘b£¡»¦üfPŽ<7¾jªî¾1ÇŠ	"œb7¸»×	$n³'ÑhqU×ç9Š¢ãQÁ'š„¶Î…Œ¶ÏZ•Šš|,d)™ûâ‰Ç‰ŽJÒûð"÷¤•Nž¡|$• &suJ눜7Ä冯Çë-Wî×Úþ÷÷þ¤~]3%þœý#AŠ«Ÿ*¬Åk~«$öœÙíC»¤(nÜÊ
+õd9³¹ƒ«I!œE
+Úõ¢ƒ}Y'Nlî`méÕ‡¨¡›^´Po«$§6w06ôQAízÑA¾¬’œÙÜÀÛÒB=EµëEú²JsgsoJDõ×­êÉ)͝Ì
+½1aê(FÞ´Po«$§6w06ô¥Î¢ƒÛƒYA¾¬’œÙÜÁÕ¤ÕÌ…Þ
+eú²NœÙÜÁÕ¤(nÜÊ
+õd9³¹ƒ«I &Pݸ5”êÉ:sgsV’@L¡»pk(7Õ’tæÎæ­$€™CvàÖPo«$é͝ÌZI2†íÁ¬ ßVIÓ›;˜:´–¹ˆ¡»pk(7Õ’tæÎæ­%ïµt=œ?X£íúÞ3ÿ-¼>׍¸ßY<ùŠ¡s÷—¶S:ZU¬-(½­=?Hãù$5ԾÙ9SÍx¹Ôª·U–"Q¦Ië.BJzзW]¡­_^¿U¦~£¾¾;‰ðµ2K†8ðªunñM‚ÀDŠ„£9jÙh2Œ·y÷ã€3Ä«™d;’'@]k»–&wã^yÇLµ#ï†Ýý·Æ1Ë7™œeGI°}ðß<ªªªª¨      «@H 
+k 2ªª« “’ä·Ý]oWWc#zVåT*B¨¨PäoäQÉß÷wïÏ‹¶-wÚ§uÌÖ»ãM¯8F1uP›§4•¡*ª›º™»©M,œ4Csšx²¡Íê1‰vА։u¦•Œº¦Úô›fý­¦ úGšë1[w ŽpÖ“ÌQ¦¥
+i¸öç|íˆÀüuß[=³­žÆ8`Æ)·ž:„
+Vac‰PŠÖкҙµ†­3§LAá¿.Ûí¿ôCxf۝øán¹ÚåAá•’Ñ*¢F˜çtåIiÁ§f¸¼g\ZôEÍq„×3,ñ¢I–YÂÃ-k-r¢"è/{Î8žã5ÜûêQ³äy釔ªÄ»=>aÁ=ÄŠ)ÝRfnÁ˜vЃÝAÍo™˜ns¶£Žx§\c¦½*&Ò)£ÔwŸ~Qè•ÛNþAÏ®“ZW>|—¶ÛïÆ*ªª¨      ª±s*ªª« âëÃì€ó{lpð—Òýü¼¸˜âc¡[F‡5HkI­$ˆMlD¸Üë2/n/­¦.•¡TÄĐF)…®Ó:Mq™²ÍöðÕ{è6÷ã„+ËÂæ³š÷Ø/¥QT•ÖÕ½¹ç®-ÅTâ_µczLLK”k(™™–Xµä‘¶fkðcQ§01ïÂ! Çc\TaÍ9ÛV»ríË8ã‚¢&1„skœÚ29 ‰ÖôË-ö»ÒH‡˜kŠî®\q¼ÍÜåÎI×9bðôk“mŠíßÃ]÷ÃjzBIНŽqáVXJ­«¹O]1Vk|ç<’I_‘íkêå¨Œã9diưÝÜ™D‹pÆAÍì͵¾¸¹9Û~hçžiת	kØ`•!©RNHHý€ìȆõ*¤J÷¥À¾™êèß3J»å+¦ûuà4ÞS·kc4þÏ©›=º|„O›¯EUU      ‹™UUU\›½ü.<“…PØ7ñß~¾§¬måÏ£Ž’¹.klLrg]smXž>í:8ŒoO§N†{wÓ­:Ó­8αš;÷ÐômNú5§3
+i'iÚòÎ Žgh‘ÂxåŽxÃ.3Ž4æÚ õó
+d`ð
+"Bšaf:vçgÃWcúº„Np
+ at Z©• BU$…Q…Z2›
+ú$K´AkôÌÛµÆüRëWK§Ešë¢÷»©@4u®úðßk“¼o¬î÷1×|à†ãZ]LOQ–\¼¼é8ιvëmN¤4o× ŽsükՏ,A¸6
+<îH“¦3{U:sߣ;dwr.>E3Zqfn·†·‹ˆDiڐ—+7MtÓJ™×’$ÚüÈjžÅG½7¾{wa$¼šI#/‰wÃ/~É*s9€       ]Uتª«`ñõ}“3¬;'t
+¶5yÔÍhž7±»Šâg1­©dˆŽÀǼkx&s0ö#uù€ãÝo@‚®zÁ¾.ø³—¬Æu·9ҝ¸â9̱Qv^6 ßÑÈŸ;¯„a:p!;¾Žù#¯£Nšg»ôERñÅÁõÛ×áW}H~F
+C2ækÎoÀY1óy€¸]("FJy¤žpìàŒôà9âû`¼q¯lg¼õÔŽA»ŸtÅÝK¥1Ÿ.“O.RP½¶©k¿sr{úÉ6ÆNº!÷ÌMDAY”Âíf«~˜EªsxÌáÙ
+ge{OnÜíÛ´nö³£ läí²¼T…ÒFúf¶ÅUïLLéØ'¶àÓ–û¹‘ˏJ]AU›½q}Éjz\'@usšuïÚl•RõÚñr¹ö«&ýû3YªTkµ®]âY5“ÉÂk)‰”2›Ë¤ÛG|gÎÞ«[K’êQ¹_	
+qŒ×-Ì¥´ÝSVn×´ËXu
+ÁÁ’)ÉÁ¼™ Ýh$ë Z bõ^þ²z&®ýùò¬Lo㦍]|¶ë§zê  ó„¯Ö`'ÝÒ•À:|,ŒŒo
+ߞü'œ4‹7”ZÒ0pú¯O/9H³KÜC˜u†ìej4$q€`7¸éßqSwƒ×T\wk‚£6ôsã¶ÑÞ<3£;Ý5{Fšs¤“[æËåÏ—]¸åºr½{iÛÌð;¦ÛöÆ:v¼Þ•ʱ×^ËëÓæ
+5vÍâîóuXTºÇYaÌG¸éÏ‹^ÿîïç]áã5sãÃÄÆVÍo×®ÜvÒ§JÓŽ{iÎMƒ;5qË;W¯ž<›íB±ðۍ:{ÐI}.z'>Ùå¿Z¾¸×…Ä”,¶q•¯uòø¾VV
+ùÕf¬®ë:ÞyÓ—M·ÚÍó¶÷ûÃÕ?|T?w›ý…¦—rêM€ eÃJ«ª¸"(Ÿ(êùc
+c‹ìŸ8ä €Ÿ:?x=áù¨„×ÈæDþ0|ábcþâÇçC,	¨PÔ=€ÎùñÂUÒPž)úuJ¨¡,?Lp°þСÔlÔxŽÃ!¸ÀÀØ9üÐn¿ô	•‚zý°ÿÀùƒl( Ø?ë }>ÀNAÀJaa9éÈ]¸ª¥UE5‚X‚|øÍnPÐ((ž¡…!,68&wŒ„ ;ƒÏÔt¨h¿(øÁÀŽ¡<Áî Ü('u	ð
+­‘Ê0Ð5$öÁA󌠒?!ü á)Ý'X'XhÄÁ<‡Çø‚|øOŠ	#¸4‚9þááàœÃ@û¨$üõçI uƒ€äIA€…ï…Ø¤„ vØL ¾ðâNðä	aA,4ïûÐAB* JA)¤JA)¤JA)¤JA(€K’4£õI¾`Ý>å*MµlÁ:  à*!Ü‚HÀ}UV ¥#`¨„nDHÜJ”Ÿ¨Aõ‡vOÈâJ%%%DR) 5’|êwd%1¼#$Á¨`,> î
+èx(8Å)`’R€   a<E~K.IÈ\7Á‘aÀs	@ ”
+ÙÈ<ƒíõ@Nt…a;®Q!#é¨x#`›A®‡xÁÜÛíÃî»	š
+I°y€w ûà~â ¦Ÿˆ*‚d`Ä¢A;&€RHˆ{à}—°NÁA> ôhXp0Û0{¨|âd’	#žôE‡(7 PLà>O z‰š†Á€u€œÁ/!¸NHF`Ÿ‘€n
+ÃX(¢X¢Š(¢0ÄplÔM³0üx‡Þƒ¸;²‚Hä	%A&GƒŒƒ¥ò„Ü'}pÐ>౨‘ê=ÁðA¸Op8	aš	Èæ=	äâ@¸DûÃÐ5
+dŽnŨè=áî	°tnañA$xA¸&áïá€÷
+>'p;€<ƒ´HHÀ¡9‰c¿˜s	*ÁÒBIy‡€Ò»ƒ€ú|“pÀî
+‡ s<§/ ûƒvv©îA$TAAüÔEÊ;mÂÇaÈ' ’TÕ"ä˜<°ƒ mÈ;âÛ~ìú˜w‡iAA\¯Ðp(sx?„=‹OaP>A.Þ!ú‚<∥TEQPŠzƒÈÑ‘Àn|{ÂL‡åïó‚:‡8xA¨|Á'@õ𼃠"ƒwö|ƒ¸~øÌv
+` ù	>ðw‡À,n,(<Ôƒê	ÈXu
+0<:Ð2 “F¡¾£fLûTð܇æ
+ƒŸ¸*	AIE$‰³ô†uƒ¢	#ÂÃ|Ä(0X]èXGÒA€O¬24	³°`<þ!ùµ¯v’Gê…0}‘ÜÄ‚HèÐL†üöÀOŒ
+ü±Ù‘äÂÂ<Eh
+¿lT•’-,’$b$’G§mZ„Ç]Cí¸pha˸; ’5©+€–€M0À=‚À'k	 M€Ô#¸?”Ì;äÔ~*	`È‘ï; ’29u‰	ƒPÂDHà*$$tÔPϰàç6á cÔ(Õ
+Àl;»ÈI#€¨’$vl8
+0jèXMCÌ<BPs	û¸Ièy‡Pî	è ’,ÞBXà'H6©"$ŽA÷C@üâd“A(P“ØðWèŽm:	" "§¶ |ª">¹E1QTS*Á‡è†áâžîßΘÊHHó
+h4	AÛPó	P7px‡ ’w…íÃÝAA8ð
+5°A)A4	Ð%„õH‰Á(>@•=CÀö¤ˆI?þ.äŠp¡!ýÛt
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,81 +0,0 @@
-‹ žð„K ì]]sã6–í×ѯàãnÕ8Á7ȼ%Ó•šÔl²S›tm퓊–h›ITI´Óί_€’ݤH‹HÞ¶‚{4™¶$ yïAœ‹ªÒõR‰›x³d‹›ÅöqŸ•ûo?Œ
-b ¥´ÿR­hõž
-Qý{ÄJL0ÆÙó%ÑìC$Ç=Œn<îËtEnï‹ûU¾9S.Ûí!´ÓþÛ]±Ï	.³?”*-µùžJ"9Úgì¿ÏVw£8ÿ©6ûk%Ñþè³ÿá“amX«ƒ½ß°¿þbƍý5£ÆþdœS<Àíÿíòq½~ž}íÃ@|%œã™$þ=üWBqÃ3 à’®ªþ_Rä?ŒÅ£(æ‰N’HqGTšÑ7'SR1­â8b‚«$Ò:‚Dæ53¿!§ÆnÕ‚EBª˜FT)¥‰-oªÐ¶<ÓÉKy)“8⊱H1!mñ$æLG	5…èKAÉÄTdÞʘ›Bš›v„ˆHôÚ<•±9HÛˆq[R0ÉcqaÌ_J
-stLUM0RÕ¨AíïXl>T/å¤9*eêa„ÙºDlKjS™©‘ÙvékãÊ¢”öx”9[¡ñÚØoýµ¹šÂ\sŒT™­­TE´}ߨδDhR5‘h¥ªsŽsUª
-•|)gìÃxl.,±¿66ªŽP2jþà¬Þ¶©Û\Dmß'Ì0Í”qb.˜ù]ã ©1eL™‹éD±DóÇ:&ÂZ]6Š2sà”ÚÏ$ç²:Ê„hsÁªÃ4)hlCDuybB—16EŒÛ2ü‹K{”̹±-+%ÌɈ¤Ñ°±IhÕZT~F¥9V5RùÅ,ß”;Û.'Úx‹ÐÑëyW ¯S**OP¯ŸTŸ
-ãšµ·<áJ6Jà_øÂ¾ð…/|áëŠ^³Eù¹Œã,f"™Ý–ù:3c at F'„é™}ØÍöûl±$–¬z¿Ÿï7›|sÑãûÛU±ø=[šê¾ö#Û¨8óü¿.7叼½ó\çÿ5aLšçó$ŠÏÿ Ø›,úv™=gz£ã?»?*ê|íÃCLŒ3ü7oòÍ]1¼óüg’pq2ÿ§„ùù€ãͯØýí;C÷§l³,vó|iÞ}ÿX>d›2_|ÿóG;Ý¥ë|õl¾¡r¶.–ÙêoæoÎG›t™÷ÓUôb—EægÑoËlWlþ£\ÿgôï—–¢XÉپ̶[s­šµµÿüÏ?m}4&ñ7œ©Ù"]<dÑ>ÿÓÖJ	Ñ¿~˜mž÷ù´P!™íó[c³û½yÃfÛªùâµJûÁá«t›/ßP5Ë7y™›:ŽÚÒwÛGûås¶·γϋl[æÅæø™eÂ2ZeOæœM³?¶¯¥W©iݼ1?‹žÌ¸b™EÛ}•ûE´Þï¢mšEëE->ÇU{Ñ>ÛFërg¾¹·ß¤Ñb]<™b¥ýWÑbu·zÜ?DëõçèÁLì,z(£ýóÞœ¼¹ÖŸí÷™ÕØ"ób[F«uÄ—›âûaõG´Ë¶óû¢XFÛM­Ò‡»¹)³Xoç«ì>]<Ïn‹ûboí⊪oŒQ~û¯W\üËÙ½½ Ç£:~©ÄÁ<ót•ßoÖÆK¦Ë¥¹âûª˜­Wè6/÷Ñ‹Ùþ‰øðÉS¾+§Ì¶æˆwÑ:ݘfl=ß™+Ý™‹ýdþ+ËílVwPú—qPú¶ƒê¶ƒRtPã 1}÷Ê®ÌA©O·”¡ƒÕÉ»wPþ—qÐ3=hÒvPŽÊé7ÆÁÞ»ƒŠ+sPæÑƒ2ÒvPz·xù—qз{PFÛ*ÑA¯ÃAÕ•9(÷éAYÛA:èuŒAõ_ÆAÏô ¼í ô:4¾2>=¨h;hŒzšüeôL*Ûš ƒ^‡ƒÒk“’¤OÚ!%QÔ’*ÕïßE¯MLzÛEÏt¢]bªI×â¢×&')Ÿ^´CN¢¨'U.¿½6Aém=Ó‹vJ¥kqÑk“”´G/Ê;$%ŠšÒµ¸èµ‰Jo»èÛ½(ï•(ªJïø‰>îøo»`¼6<ò)I0ÿÞ¶ÿáï1ÜÀÝþv?Ú½ö¯ò
-ó'ûk»þCsªÐþ¸Ðþëlíòýù¿Äû+ó93åpýèÄq^À¸ÿöw½ü§¬Ùÿ3óÂõ  7
 êï”ÝPìÂD7ÿ÷Ïc怾lüGSœjó
-ÍðùoÛ±J÷ãx»ýa˜ÿ}ö_®óÁ>àa©ñù—Ø?_B<ÿWö·@öùŸbþ\hÿÛ"Ý-çViòh£zÂïÍÿ]³?£TkÿCàWÇ4ÂÁ¨pâÿA¤vn£—ÿŒŸò_J†ü‡Àoÿ÷ý/Ñ?Šõö±Ìv6|`‹}AHpäÿnŸosä
-xð_ä?ªûÿù*œøo>ÈÊy™Þ»µÑ?þ§'ügöä? íaãmþ/³§|‘1|ÙüQœjFø!ÿ¯ÀùôÛßü]fë!nàfÿ*þGáþ0¸Øþ›b™y:Á…ó¿‡ü¿†ø„E0þnöH÷sSƱþñŸ8±?£¶ÿÇñßô 7‡€Íÿöÿ˜ó]À½ÿ§Š¢þûÛm]Ú¨ì¯õEûë'ŒIÿǾ™ê¬k@û;Ûó¸N]6‡í»ÿSAOøÏ¹ÂùX[Îò2ÒJk"fÕûu¾ßGäð÷]±ËòûÍaÍl·ÊÒ§¬úà±˜­ŠEºš[·00a*(ʇlwøDr‚;ȼsxöÿN·f¯þ_bÿû/ssÍ6‹‹CzŸÿøéøWë¿°ÿŸŒD¬Úš5þ‡Ýv ðìÿW¦¸¸
-÷ùÎ(Îÿ€@àú¿ áÉÿuº½¼^þÓÖóAþÃàe †@˜ðáÿ:[;mÚÃÊhëþOqþ³_ìL
-‹~ÎÖ¿eºú.ªó8V$Ž~ÿ¡VàÇ]–¿bÆccÓfOûlùR ¢ÒîãZ+ðý¢ÌŸ^+°PšZŸ6éI³z
-ó]ù\¯À¢^Ãÿîò2»M¿÷FóUöo›Wë¥ %²ÑÄÏév[;‰ãQÔÏbSl5Dœ4ÎÂ~ù[z»ª•P	«øåÇ_çŸ6ÆíL™×"õ~(ÍÓõÉyvžæoëmg
-¿®ÒÛæï¹âª^à²Å*Í×_ށª¸~š¿~ÚìE^¯T"êþùx¸’óšßö·5§éøö×ÇÝöõۯͅáÖÿo‹½Müç¸ÌCÿçç@€úØpÿiý_£þû›RÔ% ÀGÿ±ë¿Qÿ™>ö‡Ðÿ5Îÿ€àUÿæqMÇNúÂëú¿±pÂhCÿ74ÆÁÅû†oÿïroöêÿ9öÿð±?„þëÿ`ÀN•ÿC8 vہÀ³ÿYÿWmýóÿ€€
-Ìý2<ù?½þ/‘ÿ°—A0N;TøðBÿÇù$Yݧÿë¶þ/‹f¦þoª`õmýŸJ­jÚú?‹%«èÑÿuŸþ¯ÛúÄ“Æ1téÿ¼^ ­ÿG¢qúׯdþ¯ûôݧÿëýŸZ?‹¶þ‰¤Q ­ÿKVoâœþ¯Ïêÿõÿ÷÷þŸÀè˜ÿ>ö·ó¿.mxÌÿ
-›ÿ秇ýG×ÿdÇú_Ìÿ‚WýO&ÒØ„Ò+€™JÌPHóºÈ™T‰
-âÍý}‡ÿ ë?qÿ'´V~âúÏ à9þ›|ý'Áø_Š\žüw¢¦×óŸÂç?xÚrýû¼ŒÀñ&&|ø²þ÷ÿÁA’!úŸÒä‹zGNõ?'RiÖ,P×ÿ¨H(áõ§úŸŠ'õ§ú,®‰R¤Oÿ#}úié*–ªÑD[ÿ“„Åõ³héÂxp­@[ÿ£´QCþGúô?Ò§ÿ‘–þ'³FýOZ­¶Q ¥ÿIלÓÿÈYý þ÷~àÞÿ+ý÷ý­þÇÚðxþ3÷|þƒ€ý!ô?Œÿ‚Á—ü¿œhkJÜ– ªF
-à81v®Ëš%‰ä)…7÷÷	þƒ¬ÿBý]‹¿Pÿžã¿é×áü/(»¡8ù.<ù?ýú/ŒÿÁaø…ë¿B…ÿAô\ÿ
-‚Ô¼ê[ÿ¥:Ö±¸¶rJµ×	©kúêXÿ%xm˜êXÿ¥i£@þ£úôÕ‘ÿµ!R©Îõ_ºÖÑz
-]ë¿’zýGõé?ªOÿQ]ë¿$¯«#ÿk]æRë¿þpNÿQgõ…úÏûïü?whÃgþßÎÿâüÿôp·¿€Ñÿêð±¿)»´áÊù?Aàcÿñóòöú?ÿƒàUÿ³ä“±“ú'­«¦Æiî *pX÷®áÃýõ´”?\ÿ<ÇÓïÿˆú?⛹0<ù?½þ‡üÁqü…7ü@áÃýó¿‚à Ɉ>ýOtìÿ(;)p²ÿ#Oj+†D‡þ'µ¨hé”ÉF=úŸèÓÿD‡þ§µªèÒÿâú1tè²q¡:ô?ZEŸþ'úô?ѧÿ‰®ý¥®C‡þ—ÔBÑ¥ÿ©FsúŸ8«ÿ	ÔÿÞ<ljK^óÿ¸ÿÜìÿîç›b·NWs3(vϵáþü/Ì ïÿÀý?Æ{ÿ/aô‰ú?|ì?¾þ«Ûë?1þ¯ú/Ü<ô%й)Àº‘ ÖÖÁ•äM
-˜àó»…ÿAô_ÿ kñ'ê¿áÀ‡ÿ ë?qþ”ÜPÌ .<ùO]6 ñ™ÿ³úÎÿM_û»ôÍ^öhxÚúøÜÿÕõ_`üG¨ðá?HüæÁA’—}ñ²cý·âµÈ	Ù±þ›1Q¯¡ÿÁE£@{ý7gq½‰žøÙÿ!;öÿTš4΢ký·¨ŸE;þ#õºÖ7jè‰ÿ}ñ²/þCvÅÔ£7dgü©dGüG}5¿<ÿ!ÏÆHŒÿx?pëÿ‹é"/ž÷}»þÏÁø_ þ6ÜÇFÿç¨ÿCÀÇþ¦”viÃgþ‡bþøØüüß­ç?Ìÿ
-„Zü‡ä”î˜ÿ[62 â
-J«Ç˜µ&‰Â-€ß#<ûåÒ†OÿOpÿøØdÿgÌÿ‚®äÿ<ûÿéó?`üÎÿ
-OþO¯ÿ#ÿA@Ž Ø	„	þƒèÿ¸þI–÷éÿ¼#ÿ‰kŠ1ïÈÿ ›Úúœˆzíü”Ö²ð>ýŸ÷éÿ¼#ÿƒÐµ,ö¼Kÿ§²^ ­ÿKÎë:ô%êÇУÿó>ýŸ÷éÿ¼Kÿg³èÐÿ¹¬_êý?iXóœþÏÏêÿõÿ÷÷þŸÂèõ?øØß”rIÿï7ÿ‹ù¿Aàcýã?aðªÿqJB¹Jœô¿8iêšÅ4a²¡ÿÅ\Ñj_à¯}®ˆ6<û—íßýúŠý?|ì¢ÿáú_´”?Ôÿ‚‚gÿ?¹þGPÿ»ÁÝŸC†'ÿ'×ÿÿ08Z`@˜ðá?ˆþ‡ë¿@pdhŸþGÛúSImA(mëÊ<ΫZ–þG…ŽëMtéµ%Æ´Oÿ£}úmëL2Z?È®õ¿ëµµ]ùßIýzô?Ú§ÿÑ>ývè‚6¬Ù¡ÿ†Ö´ô?¦§yNÿ£gõ?ŠúßûÁÅý¿ùÊYø;ÂIÿãÊôÿDH†úœìoþy8›ýµÕ9Gýîö_¤‹‡ÌÉ.³?QvÖߌýìü?W¸ÿ7|íŸo–Ùgr™¸óŸK…ë¿A0Ðþ«ì)[õµÑ?ÿËNì/Áüo Àܯac ÿÅC¶Ë6‹ç¹M4ßçv¨Âýüç'ü×õ_(Ë	ùÿGú¼Ÿwót¿/yZæOyÙÚÌùþo—aüÒ?häÿöáyŸÛøÏêö¿Mwe^æÅ	‹<ø/(æÿŽÿÃÆ@þo×·ÙÎŽ ìïÞh£Ÿÿâdü¯$ò’â däù¼íïç¿<ÿ
-ù‚i™b.ò¿{Âïî÷!$òJüé0†òÿ!Ýe˹ùbþö’wýO)ù_@€ÙßÂÆxü{IH/ÿëë?ü7 Ècðm Ä6aü—Äø/´ÿtñ_ÿœý
-ù?]ü®ÿÆ…ü)þ‹·â¿æÿUÈÿ1ÿÓÅáú`üWØÈÿ‘â¿Nã?”¤¸þ”0|ù?Nü=ÿB¢þ‚O›ü.Ï–ØЁü)þKµùñ °÷Œ Cù?YüÞÿA€ñ_ac<þÿ…ñß08 ã¿BÅ þ_¸œõ0çø/Ìÿ‚öŸ.þŸÿ@€úOØÈÿéâ¿ðùÿ6òºü_ÿ	Œÿù?]üÆ‚ Çÿac ÿ§Ëÿ…üæÿ
-ù?RüW;ÿBþƒà§Í¾Ü=.ì 
-û 1ÿÓåÿBþƒ 󅍡üŸ,þó?€ ã¿ÂÆxü9ÿÎÿƒà` Œÿ
-îü/6v®ß¥
-ëaÊéþÏ$ÇøOàüØpçYl‹Uqÿ|ùÀ–áŽñŸŒ`þ?°ù°ËÒå|ŸßšëvæÚxŒÿ˜Äñpü6ÆãÿÛ@îó?šcþàüOØÀÿE±Ë.`¿Wü‡Ö8ÿuƒ=@È‹ÿçÚpÿK-pþ,pü(ðÿ5ö{›.~Oï³y¾ìnÃcüO0þ‰4†Þÿßâ|îü’áó?Pÿ	Nüß{;Þw?¸æÿUVÿe׃€ÜP‰]@¸p½ÿǗ˾¯p×)çõ_¸ÛÿÿçÒÆeö'ŠIB	ã¶ÿç¸ÿ|íÜÿõ¢6Üùù¿ 0Ðþ˜ÿëʁÏac ÿ1ÿו󅍁üÇü_WÌþ6òó]9pü6òó]90ÿWØÈÿqòµöÅü_Pø˜–)v áb ÿ1ÿו󅍡üÇü_׍Ù4Æã?æÿºF®?Áõ_bÿÙ„ñ_
-ã¿ 0ÐþÓÅaüpö7läÿdñ_×ÿƒ ã¿ÂÆ@þÿÅ[ñ_¸þT!ÿCÆ@þOÿÅ‘ÿÀø¯°1ÿ#ŝÆ(Iqý(aø0ò¤ýOç…Àüß0ø´Éïòl‰]@ Èÿ‘â¿T›ÿÿ{ÿǰp1”ÿ“Åáýÿ6Æãÿ¸ñ_ÿ
-ƒãóÆŠAü§Æaþ7´ÿtñ_øüÔÂÆ@þO—ÿŸÿ@€ñ_ac ÿ'Ëÿ…ñŸ0Àøï°1ÿÓÅaü'pü6òºü_È`þ¯°1ÿ#ŵóÿ(ä?~ÚìËÝãÂÚ°ù?]þ/ä?0ÿWØÊÿÉâ¿0ÿ0þ+lŒÇÿ‘ã¿pþ‡ëñ_¡ÂÿÅÆÎõ»´a]L9Ýÿ™äÿ	œÿîü/‹m±*îŸ/ߨ2Ü1þ³Úÿã?§Ç û—»,]Î÷ù­¹n÷g®Çø)ÿ Çac<þ¿=ä>ÿ£9æÿÎÿ„ü_»ìö{Åhó¿ ˆoìÆXü?׆ûø_jó? ¨®?Çñ¨Àÿרïmºø=½Ïæù²»
-ñ?Áø/àò¯°1ôþÿçëp翐ŸÿA€7þ°áÊ*.×}^à¤ÿbøO¡¨ÿ@ÀÃþ‡  ‡6.³¿òIB‰éø	cB0´?¼íÜ ò’6ÜùÏçhµÿ%	€œÆ•ý…’8þÆÿ„¡ü¿$P?ÿù	ÿu•ÿ
-ù?=0ÿOØÊÿK 9ßÿ9¡
-õ_àêÿ°1”ÿ—$ òà¿ÀøOàø?låÿ%	€úù/NÆÿJ"ÿa€ùÂÆPþ_’ ¨ŸÿòtþOrä?>¦eŠ@¸ÊÿK ¹ßÿ…Äü¿0Àü?ac0ÿ/H ä>ÿ¯4ÅùPœÿ#òÿÍ@½ü¯¯ÿ8>ÿSœÿAe‚ë?BÅ0þ³éâ¿pÿ7µÿdñ_8þÎþ†¡üŸ,þ÷Æ…¡ü'þ‹·â¿4®ÿUÈÿ1”ÿ“Åáú`üWØÊÿqâ¿Nã?”T¸þ”0|Cù?Jü=ÿ’¡þ‚O›ü.Ï–ØŠ¡ü'þKµù/ÿ°÷Œ ƒù?UüÎÿƒ ã¿Âƈü5þã¿aPÙ†`üW¨Æ:]ü—Àø/µÿdñ_ÿßÞÙí¸­#kô‰èÔžûÜärm(¶ã™±n÷ÌÛËvz÷¶ãnQE~@Pkûb˜½Hªø©ÈûŸÎ|cõ¿Xþ‹ú¯ò_¾±ú_¬ÿõ	ä¿}cõ¿Xþ‹ü§öÿ¾±ú_¬ÿþK ÿ—o¬þçÉÝ÷ÿiñ_—Ýóñð²÷ḻú_¬ÿþK ÿ—oÌþ—ÊQÿ—@þË7ýÏÛÿ‹ú¿„óØT俼2Ãÿýn¬õ'<cü‹IùŸ&Vä?%Pÿ÷Íÿ_/€ŸúŒÑðÄügèÿ'Á2þLJõ°Z<o¿~¸ÍãgÆþ¯mØÿI`ÿ盌þ?, ¥×ú–þ¨ÿøÆâÿrXlÿœïÿûªcý—PwŸêÀà–lþ¿óŒûÿ±%þþ%û·XüÍ~?
-ËŸÃf½Ø®~ûŒ×ÿÛúo_“ÿÒÐ#¾kÌëÿçß’îzúÿJ`á÷MªÿÝäSŸ¿I:ÿiû“ÿu;öÿäü§<éã‰ÿ¤<cÚøW±	§×¾¦ÏÿÛñûÆ¿<sÇÿzýã¤g¤û߆X1þ
-Œã?¥ýOÚþï<þùä|côJûŸ´óß³ÿ}¨yÿ“@ÿßýŸÒþ'}ýo«ÓÿÂ|ýï£ÿSÚÿÌñ¿«¸ÿYûßýŸÒþ'íûÿóþ?ü×@ÿßýŸÒþ'íþÇKý¯ø/áóp˜ übôJûŸëÿé_ã¿úÿøÆêÿ„ö?3ÎÿbìÈJ üï›|þ?lÿ“öýÇÅÿ®£þ/á: Ä@bò¿)˜ÿjÈ)0޹üù	T}cô¿\þ‹û%ÿòÑÿLù¯ö>ÿEÿg	uÄÏý/—ÿ¢ÿò_¾1úŸ)ÿu›ÿˆþ?êªá
-À1Fÿóä¿êÛúo×Î$|Ým¿o×+¦ §ýÏ”ÿŠ÷þ“ÿ0®ÿ$Àübõ¿Xþ‹õ_›ßäó?sþ‹ü·„_/`L>1ù_ÌÑÿM‚qüËå¿xÿ“ÀùoŒþ—Ëñþ'ü—oŒþ—ëÿEþSùoßý/—ÿ"ÿ)ý¿oŒþ—ëÿ…ÿèÿå£ÿ™ò_÷ýþKø²{>^–㦍yÀ!FÿËõÿÂ	ôÿòÕÿbù/ú?H üï›|þgÎQÿ—p ò_NI÷¿ký)ÏÿÂâ‡ë[…ÐöãÅŸUÓ„–ó	ˆï›tÿ_¯ŸüŒÑðÄügSÑÿO‚aü?ëaµxÞ~;ýn›w~›û¿&°ÿ“ÀþÏ7ùü\ J¯ÿô-ý4PÿñÁÿåþ°ž`ÿ¬üGßSÿ•Ð}
-Ì ŽÉåÿ{ÏHßÿ‡¾åû_	—hÙÿ;ÅàÿköûiXþ6ëÅvõûgÌØÿWä¿4þôuýäü[ÒýïBÍû¿~ߤú_O¼óé-Iç?]uò¿nûžó3Æÿ JxÆ´ñ¯bªºjÚñü¿;ý0þfÿõÈ)ÏH÷¿-ý$XÇJ ¤ýßyü»HÿW
-|ÿë«ÿS }ì{ã"ù?	ôÿñÕÿ)
-€’×ÿ¶ª#ù/	Ô}cõJ þóý¿öÿ¾±ú?¥ÐÇþw7ûÿð_ý|cõJ ý·õ¿Ðà¿„ÏÃq`ð‹Õÿ)
-€Ò×ÿ.pÿ»úÿøÆìÿ„@éõÿØÓÿ_Ûßdôÿa ýûýÇõýŸþÿÎ?ÿé?fŸØüŸÿÆ’ó_-ù/Öñ/–ÿbÿ'íŸo¬þËñý¯ò_¾±úŸ'ÿÕÞç¿øþOBñß3VÿKå¿b…ÿ
-ÈùÆêžü×mþ#†È÷_êªá
-À1Vÿ³ä¿êÛúoÎ$|Ým¿o×+¦ §XýÏ“ÿŠ÷þÓÿS¸þ“ ó‹ÙÿRù/êÿÈù&£ÿyó_ä¿%\^¿ÈyÅæ].ÿÅýO¬ã_,ÿÅûŸÎ|cõ¿Xþ‹ú¯ò_¾±ú_¬ÿõ	”|cõ¿Xÿ/òŸØÿûÆê±þ_ø/þ_¾±úŸ'ÿußÿ§Á	_vÏÇÃËrܳ18Äê±þ_ø/þ_¾1û_*ÿEý_Ûßdô?oþ‹ú¿„óÏ_‘ÿòÊÿ÷»±ÖŸðŒño,&åšÐ“ÿ”@ýß73ü½ ~ê3FÃóŸM ÿŸËøÖÃjñ¼ývúá6œû¿Ó ó¿ö¾ÉèÿÃPzý§oéÿ¡úo,þ/÷‡õÇöÏùþ¿¯:Ö	uó©n™Ü’Íÿwž1cÿ?N	ø/à¼ûbÿï‹ÿ¯Ùï§aùsجÛÕoŸññú[ÿíkò_hÿëóúÿÀù·¤ûß…žþ¿Xø}“ìÿäSŸ¿I:ÿiãÉÿºmèÿ!!}ü/ñŸ”gLÿ*6¡ª«¦ÏÿÛsÇÿzýã¤g¤û߆Ð1þ
-Œã?¥ýOÚþï<þ§ýù_	ä|côJûŸ´óß³ÿ} þ«þ?¾1ú?¥ýOúúßžÞ¨ÿJ þá£ÿSÚÿÌñ¿«ÈI`ÿï£ÿSÚÿ¤}ÿÞÿÇ€ÿèÿã£ÿSÚÿ¤Ýÿx©ÿuÿ%|Ž€_ŒþOiÿ3cý?ýkü—@ÿßXýŸÐþgÆù_Œ-ßHàýß7ùüØþ'íû‹ÿ]Ký_¯	˜iÀ'&ÿ›‚ù/òŒã_.ÿEþC¿oŒþËÕ|ÿ#ü—oŒþgʵwù¯šû_%Ô| ì£ÿåò_-þ+ þë£ÿ™ò_·ù*¾ÿ’PW
-o Ž1úŸ'ÿUßÖOÿšó	_wÛïÛõŠ)À)Fÿ3å¿â½ÿä?$Œë?	0¿Xý/–ÿbý—Àû¿oòùŸ7ÿEþ[ï	˜iÀ'&ÿ'6ÿÀ’ó_ü—ãø—Ëñþ'ýŸoŒþ—ëÿÅûŸò_¾1ú_¬ÿùO
-¼øùÆè¹üùO	ìÿ}cô¿\ÿ/ü—@ÿ/ßýÏ”ÿºïÿð_—Ýóñð²7mÌ1ú_®ÿþK ÿ—o¬þËÑÿAïÿ¾Éçæüõ	¿&`¦Ÿ¤û¿ßµþ”gŒ`1iýoBCþSë¿oÒý½þ}ò3FÃóŸuOÿ?	†ñ?þ8¬‡Õâyûíô»mÞùmfìÿšÀþOû?ßäóÿq(½þÓ·ôÿÑÀþÏ7ÿ—ûÃz‚ý³ò}¤þ+¡úÄà™\þ¿÷Œôýè[ê?®#Ð2	øÄàÿköûiXþ6ëÅvõûgÌØÿWä¿4TˆïëúÿÈù·¤ûß…š÷	ìþ}“ê;ýØç•ôóŸºm:ԏÿ%ÿ“òŒiã_‡>uÕ´ãù+Æ_ÁÜñ¿Þÿ8é3ιÿM„qü¹ÿí‡ýŸoŒþsÿÛý|cô¿\ÿÎ$üòÑîûÃaÿï£ÿåúÿà¿úÿøÆèžþ?w÷?v]À	Ÿ‡ãÀà£ÿåúÿà¿úÿøÆê?÷¿ýÙüöM>ÿ¹ÿíOä:1
-øÄäS"ÿÕŸó_§FþK€qüKå¿bEþCÕ_ßý/ÿê/ù/ê?ÈùÆè¦ü׍ÿcþ‹û_%Ôÿ=cô¿@þ«¿ä¿øþCù/ßýÏ”ÿ
-7ûÿÈýÏ"êªá
-À1Fÿ3Ýÿvûýo×Î$|Ým¿o×+¦ §ýÏ”ÿŠ7ëÿÉêÿÆõŸ˜_¬þçϝ÷ÿ‘û5ÿòM>ÿså¿úKþ«Ã× ÿå“ÿuÁþ_=ù/Æñ/×ÿ‹ú¯Î|cô¿\ÿ/ê¿ÈùÆè¹þ_Ô$ÿöÑÿrý¿¨ÿH`ÿï£ÿåúá¿úùÆè¦ü×}ÿŸ€ÿ¾ìž‡—å¸icpˆÑÿrý¿ð_ý¿|cõ¿Tÿ¯Žü§ò_¾Éçæþ_Ôÿ%\G€ü—SÒýßïÆZÊ3Æ?°˜´þ7¡¡ÿ‹êÿ¾I÷ÿõþ÷ÉÏ
-Oìÿ×Tôÿ“`ÿãÃzX-ž·ßN¿Ûæß&mÿwÎÿ7Üÿ ýŸoòùÿ¸ ”Vÿ9÷ÿkéÿ£úoþ/÷‡õûSÏÎëß“ÿ–Ð|bðL.ÿß{Fúþ?ô-ç¿®#°dð‰Áÿ×ì÷Ó°ü9lÖ‹íê÷Ϙ±ÿ¯ý%Pÿõuýäü[ÒýïBÍû¿ü÷M’ÿO‡õóz÷è5ÿ!û{ÿsSuø/¡úT¦ ¿¤®ÿaú±ï+éç¿uÛÐÿGBúø_ò)Ϙ6þUlBUWM;ÎÿmlsÇÿzÿë¤g¤ûÏý*Œã_ ÿW¹ÿ‘ó	¼ÿùÆè?÷?þáÐÿË7FÿôÿºÞÿÈù¯ºøÆè?÷?þá°ÿ÷Ñÿý¿®÷?â¿úùÆèžþ_w÷¿v]À	Ÿ‡ãÀà£ÿú]ü'ÿ¡þ_¾±úÏý6„¿|“Ïîü¹Î¿Ó€OLþ7ó_-ù/Æñ/—ÿ"ÿ!ê¯oŒþ—Ëñý¯ò_¾1úŸ)ÿÕÞ翸ÿYBñß3Fÿ‹å¿jî@þË7Fÿ3å¿nó‘ûßEÔUÀcŒþgºÿñ¶þËý*¾î¶ß·ëS€SŒþgÊÅ{ÿÉH×`~±ú_,ÿÅú/ü—oòùŸ9ÿEþ[Âuþ%ÿå“ÿuÁüýß$Ç¿\þ‹÷?	œÿøÆè¹üïÈùÆè¹þ_ä?%ÿöÑÿrý¿ÈJ`ÿï£ÿåúá¿úùÆè¦ü×}ÿŸ€ÿ¾ìž‡—å¸icpˆÑÿrý¿ð_ý¿|cõ¿Xþ‹þÈù&Ÿÿ™ó_Ôÿ%\ç_ò_NI÷¿ký)ÏÿÂbÒúß„†ü§êÿ¾I÷ÿ¸Úÿ{¿ùßô+€GÃóŸMEÿ?	†ñ?þ8¬‡Õâyûíô»mÞùmfìÿšÀþOû?ßäóÿq(½þÓ·ôÿÑ
 @ýÇ7ÿ—ûÃz‚ý³ò}OýWB÷‰À3¹üïéûÿзÔ$\ eÿïƒÿ¯Ùï§aùsجÛÕïŸ1cÿ_‘ÿÒ@úÓ7Öõÿ‘óoI÷¿
-ïÿ8ÿñMªÿ¯|úiç?ñäÝ6œÿHHÿKþ'åÓÆ¿ŠM¨êê4ðUÓ´ãþñ/ÏÜñ¿Þÿ8ééþ·a<ÿcüËcÿýâyÿ×sþ+ýŸoŒþèÿÏýøþWý|cô¿@ÿŸxéÿCýGõ_ßý/Ðÿ'^úÿÐÿSûßý/Ðÿ'^úÿà¿úÿøÆèžþ?ÿ¸ÿ1rÿ“ÏÃq`ð‹Ñÿý.þwø/þ?¾±úŸ¿ÿÏyÿÉk`÷ï›|þçêÿ/ý¨ÿKøµcð‰Éÿ‰aÐñ,9ÿEþO‚qüËå¿ÈH`ÿç£ÿÅò_§-!þ ÿå£ÿ™ò_í}þ‹þêˆÿž1ú_.ÿÅý¯ÈùÆè¦ü×mþ#†Šï¿$ÔUÀcŒþgºÿí¶þÛuó	_wÛïÛõŠ)À)Fÿ3å¿â}þ‹ü‡„qý'æ«ÿ¥ò_ä?4pþç›|þgΑÿ–pj N1ù_ÌEò_
-Œã_.ÿÅûŸÎ|cô¿\þ‹÷?	ä¿|cô¿\ÿ/òŸ¨ÿøÆè¹üùO	ìÿ}cô¿\ÿ/ü—@ÿ/ßýÏ”ÿºïÿð_—Ýóñð²7mÌ1ú_®ÿþK ÿ—o¬þëÿEÿ	ìþ}“ÏÿÌù/êÿ~mÀ˜|’îÿ~7ÖúSž1þÅ¤õ¿	
-ùO	Ôÿ}“îÿëý1ž˜ÿ¬{úÿI0ŒÿñÇa=¬ÏÛo§ßmóÎo3cÿ×öØÿù&Ÿÿ@éõŸ¾¥ÿê?¾1ø¿ÜÖ쟕ÿè#õ_	ͧ–À1¹üïéûÿзÔ$\G`É$àƒÿ¯Ùï§aùsجÛÕïŸ1cÿ_‘ÿÒ@ý×7Öõÿ‘óoI÷¿5ïÿ*üwMªÿqú±Ï+iç?ýÉÿºm+ԏÿ%ÿ“òŒiã_Å&TuÕ´ãù[Æ_ÁÜñ¿Þÿ8ééþ·!6Œ¿ãøèÿ3Ž+ê?xÿóÑÿýúKÿÞÿ$ÐÿÇ7Fÿôÿé/ý¸ÿEùßý/Ðÿ§¿ôÿ!ÿ!ý¿oŒþèÿÓ_úÿà¿úÿøÆèžþ?ÿ¸ÿ±¿ôÿÁ	Ÿ‡ãÀà£ÿúÿ\üïð_ý|cõ?ÿŸþrÿùO	û]“Ïÿ\ýúKÿêÿ®û/b N1ùßÌuä¿Ç¿\þ‹ü‡ª¿¾1ú_.ÿÅýÈùÆè¦üW{—ÿj¸ÿQBMÈ5Fÿ‹å¿¸ÿQù/ßýÏ”ÿºÍÄPóý—„ºjxpŒÑÿL÷¿ÝÖ».pþ#áënû}»^18Åè¦üW¼÷Ÿü‡„qý'æ«ÿÅò_¬ÿ(ÿù&Ÿÿ™ó_ä¿%\€ü—WLþ×ó_ô“`ÿrù/Þÿ$pþã£ÿåò_¼ÿI ÿå£ÿåú‘ÿ”@þÛ7FÿËå¿ÈJ`ÿï£ÿÅúá¿úùÆè¦ü×}ÿŸˆÿ¾ìž‡—å¸icpˆÑÿbý¿þK ÿ—o¬þËÑÿAù/ßäó?sþ‹ú¿„ëþ‹ü—SÒýßïÆZÊ3Æ¿°˜´þ7¡!ÿ)ú¿oÒý½ÿ}ò3FÃóŸMEÿ?	†ñ?þ8¬‡Õâyûíô»mÞùmfìÿšÀþOû?ßäóÿq(½þÓ·ôÿÑ@ýÇ7ÿ—ûÃz‚ý³ò}OýWBüÔ38&—ÿï=#}ÿú–ú„Ë ,Ùÿ;ÅàÿköûiXþ6ëÅvõûgÌØÿWä¿4´ˆïëúÿÈù·¤ûß…†÷	,ü¾Iò?ýè÷ÌÇþ¿íÿOþ×1ÐÿW
 Bõ©L~I]ÿë0ýÜ÷Iç¿]5úߝ¶œÿ
-˜1þ— `Â3¦›PÕUÓŽùŸ®£ÿ“„Ùã½ vÊ3ÒýocKþC‚uü§4 Kzÿ;ç?ÈÿùÆêÿ”`ûßÞøß‡HþKý¿|cõJ°äõ¿­êÈù¯ºøÆêÿ”`3üï"ç?ØÿûÆêÿ”`ûßÝìÿcÀ
-ôÿòÕÿ)
-À’Î/õ¿Ðâ¿„ÏÃq`ð‹Õÿ)
-ÀÒ×ò_*èÿå³ÿ€¥×ÿcOÿ
-¤¿|“Ñÿ‡
-À>ôÿí÷_×÷ÿšú¿„ñçÿëô³€Olþ7åò_‘ü—ëøË±ÿ“@õ×7VÿKå¿z¾ÿ•@þË7Vÿóä¿Ú»üWÏ÷j€¹Æê±ü÷¿K ÿå«ÿyò_·ùÓë?ßI¨«†7 ÇXýÏ’ÿªoë¿÷?ˆøºÛ~ß®WLN±úŸ'ÿïýø¯`\ÿI€ùÅì¡üWCý_ù/ßdô?kþ‹ü·†ñç'ÿå›ÿu¹üW ÿ¥À:þÅò_¼ÿIàüÇ7Vÿ‹õÿ¢þ+ü—o¬þ—êÿEþSùoßXý/–ÿ"ÿ)ý¿o¬þëÿ…ÿèÿå«ÿyò_÷ýZü—ðe÷|<¼,Ç=ó€C¬þëÿ…ÿèÿå³ÿ¥úQÿ—@þË7ýÏ›ÿ¢þ/aüùÉùe†ÿÉ·@c1)ÿÓÄŠü§êÿ¾™áÿqÿ´ÿ÷~ó¿ÉW †'æ?›@ÿ?	–ñ?þ8¬‡ÕâyûíôÃmÿ83ömËþOû?ßdôÿa(½þÓ·ôÿÐ@ýÇ7ÿ—ûÃúcûç|ÿßWõ_BÝ}b
-pL6ÿßyÆŒýÿøá¿€ñç_²ÿw‹Åÿ×ì÷Ó°ü9lÖ‹íê·Ïøxý¿­ÿö5ù/
-=â»Æ¼þ?pþ-éþw¡§ÿ¯Î|“êÿvõïõ䃟+Iç?mÏ«¾çüGÁ¬ñ_¾ëÝq±:lÿ»>|øŒßÿš›ñUÇýO†åÓv1*ë€KLþoö'ýwûÃâ°ïïÿÿ±æþ_
-ÿYï^Pß/Iþ?/¬W‹ÿ,Oûÿ[ÏÃ?¨ü^8ŸðL}ÿ»¬ÿuÅù
-¿¾I®ÿLkùø’ÞÿÎõŸºíÉÿI˜1þ—ï?ž1mü«xzí««¦ßÿ»–÷	³ÇÿüýOU®ÿkÅø+°Ž±þ¯ìÿ$Pÿ÷Õÿbý_9ÿ—@ÿWßXý/Õÿ•û5ÐýÍ7VÿKõåþ
-ìÿ}cõ¿TÿWü×@ÿWßXýÏÒÿõmþƒû¥|Ž€_¬þ—êÿZã¿ú¿úÆì©þ¯Ôÿ%Ô \“Ñÿ¬ý_kêÿοÿ_|ÿï›ÿM¹üWCþKuü‹å¿ØÿI úë«ÿÅò_ô”@þË7Vÿóä¿ÚûüßÿJ¨#þ{Æê±ü÷I üë«ÿyò_·ù"ßI¨«†7 ÇXýÏsÿ÷mý·
-ç?¾î¶ß·ëS€S¬þçÉÝÞÿpòŸþïÆõŸ˜_Ìþ—ÊQÿ—@þË7ýÏ›ÿ"ÿ-áüû“ÿr‹ÍÿiÍ Ç?±äüWMþKuü‹å¿xÿ“ÀöÏ7Vÿ‹å¿¨ÿJ ÿå«ÿÅúQÿ‘@þÛ7Vÿ‹å¿ÈJ`ÿï«ÿÅúá¿úùÆêžü×}ÿŸÿ%|Ù=/ËqÏÆ<à«ÿÅúá¿úùÆì©üõ	ä¿|“Ñÿ¼ù/êÿο?ù/·Ìð¿ký	ÏÿÄ&ßÿ|ö¿	=ùO	,ÿ¾™áÿqÿ´ÿ÷~ó¿ÉW †'æ?›@ÿ?	–ñ?þ8¬‡ÕâyûíôÃmÿ83ömÃþOû?ßdôÿa(½þÓ·ôÿÐ@ýÇ7ÿ—ûÃúcûç|ÿߟþ=þ+¨«OLŽÉæÿ;Ϙ±ÿ[‚á¿€óï¿dÿï‹ÿ¯Ùï§aùsجÛÕoŸññú[ÿíkò_â»Æ¼þ?pþ-éþw!ÒÿW{ߤú_M>õù›iç?UlBUWM{ò¿nkÎ$¤ÿ%þ“òŒôñoÚÓ?güÌÿëõ“ž‘tþÛÆñü7„–ñW`ÿ)íÒöçñïBOþWû?ßýŸÒþ'íü÷ì¨ÿj ÿoŒþOiÿ“¾þ·§÷ ê¿øúß7Fÿ§´ÿ™ãW‘ÿ’Àþß7Fÿ§´ÿIûþÿ¼ÿÿ5ÐÿÇ7Fÿ§´ÿI»ÿñRÿëþKø<& ¿ýŸÒþgÆúú×ø/þ?¾±ú?¡ýÏŒó¿[¾ÿ@ðÛ7ùüØþ'íû‹ÿ]Ký_¯`ð‰Éÿ¦`þ‹üŸãø—Ë‘ÿ@õ×7FÿËå¿øþGù/ßýÏ”ÿjïò_5÷¿J¨#þ{Æè¹üWƒÿ
-(üøÆè¦ü×mþ#†Šï¿$ÔUÀcŒþçÉÕ·õßÓ¿æüGÂ×Ýöûv½b
-pŠÑÿLù¯xï?ù	ãúOÌ/Vÿ‹å¿Xÿ%ÿòM>ÿóæ¿Èkø5L>1ù_Ìuä¿Ç¿\þ‹÷?	Lü¾1ú_.ÿÅûŸò_¾1ú_®ÿùO	ä¿}cô¿\þ‹ü§öÿ¾1ú_®ÿþK ÿ—oŒþgÊÝ÷ÿ	ø/áËîùxxYŽ›6æ‡ý/×ÿÿ%ÐÿË7Vÿ‹å¿èÿ ü—oòùŸ¹ÿõ	¿F€iÀ'éþ¿^ÿ<ùãXbþ«îéÿ%Á0þLJõ°Z<o¿~·Í;¿ÍŒù¿é˜ÿ%0ÿû&Ÿÿ_ Óßÿú–þxÿóÁÿåþ°ž`ÿ¬óß>Rÿ‘P}bé÷L.ÿß{Fúþ?œ6 ø¯à:-“€Oþ¿f?Ÿ†åÏa³^lW¿ÆŒýEþCûßX×ÿGο%Ýÿ.Ô¼ÿKÀߤú_WÓÏ}~‘vþÓŸü¯»±ÿ'ç?å™1þ— @Â3¦›PÕUӞƿ9ßÿÅø—göø_/€›òŒtÿÛsþ‹ñ/uü§4 IÛÿãßÅ@ýWÕ_ßXýŸÒ äcÿÛÿûÉH ÿ‡o¬þOi ’¼þ·§Çù¾þõÕÿ)
- at føßEê¿ØÿûÆêÿ” ûßÝìÿcÀ
-ôÿðÕÿ)
-@>ö?ÜÖÿB‹ÿ>ǁ	À/Vÿ§4 I_ÿ»Ðà¿úøÆìÿ„ éõÿØ×Ôÿ%ÔÀ\“Ñÿ‡
-@>ôÿß\Þÿêÿ.Û¯ŠYÀ)6ÿ›üù¯®ºä¿jò_
-¬ãŸ=ÿuÿ.òýª¿¾±úŸ=ÿuö¿±Åä¿|cõ?OþëÆÿ¶ªéÿ¡¡Žøï«ÿÙó_ÿ»ÀýÈùÆêžüW¸ÙÿÇ8ÿ‘PW
-o ޱúŸ%ÿUßÖɨøºÛ~ß®WLN±úŸ'ÿïýçüW¸þ“ ó‹ÙÿÜù¯Ëþ¿¯©ÿK ÿ囌þçÉ]ßÿëÿœò_n±ù_—ËUä¿XÇ¿Xÿ/Î$pþã«ÿ¥úÑÿGù/ßXý/Öÿ‹ü·òß¾±ú_¬ÿõ_	ìÿ}cõ?{ÿ¯_ù/òßèÿå«ÿyò_÷ýZÖ	_vÏÇÃËrܳ18Äêöþ_×üWÍú/þ_¾1û_*ÿEþ[ù/ßdô?oþ‹ý¿„Ëö‹ü—Wfø¿ßµþ„gŒb1)ÿÓÄŠõ_õßÌðÿõø©Ï
-OÌ6þ,ãüqX«ÅóöÛé‡Û<þqfìÿÚ†ýŸö¾ÉèÿÃPzý§oéÿ¡úo,þ/÷‡õÇöÏùþ¿¯:Ö	uõ©æÐ/Ùüç3öÿã‘0þ8ÿþKöÿ^±øÿšý~–?‡Íz±]ýö¯ÿ·ýÿûº!ÿ!! ¾kÌëÿçß’î"ßK`á÷M²ÿíäcŸWÒÏꮢÿ‡„ãÉÿ$<cÚøW±	U]5íxþßuœÿI˜=þ×û§<cÆùoïgüËcÿb÷¿‘ÿ‘@í×7Vÿ‹ÝÿFýWý|cõ?{ÿî“Â×ÿ¾±ú_ìþ7ò_ØÿûÆê±þ?ø/þ?¾±úŸ¥ÿÏÝý]hð_Âçá80øÅê±þ?ø/þ?¾1û_ªÿõ	u‹þžÉèÞþ?Ôÿ%œ«¯ßxÅæS.ÿÕ‘ÿR`ÿbù/ö¨þúÆê±üßÿH ÿå«ÿyò_í]þ‹û5Ôÿ=cõ¿Tþ+rÿ£ò_¾±úŸ'ÿu›ÿˆ!òý—„ºjxpŒÕÿ<÷¿ÝÖ»@ÿ
-_wÛïÛõŠ)À)Vÿóä¿nûžü§ÿ§„qý'æ³ÿ¥ò_Ôÿ%ÿòMFÿóæ¿ÈK8W_+ò_^±ù_—˵ä¿XÇ¿Xþ‹÷?	œÿøÆê±üõ_	ä¿|cõ¿Xÿ/ê?ÈûÆê±üùO	ìÿ}cõ¿Tÿ/ü×@ÿ/ßXýÏ“ÿºïÿÓâ¿„/»çãáe9îÙ˜bõ¿Tÿ¯ÿ%ÐÿË7fÿK忨ÿK ÿ囌þçÍQÿ—p®¾V俼2Ãÿýn¬õ'<cü‹IùŸ&ôä?%Pÿ÷Íÿ_ïŸúŒÑ
 ðÄügèÿ'Á2þLJõ°Z<o¿~¸ÍãgÆþ¯mØÿI`ÿ盌þ?, ¥×ú–þ¨ÿøÆâÿrXlÿœïÿûªcý—P7Ÿ˜“Íÿwž1cÿzaÄçÝû·XüÍ~?
-ËŸÃf½Ø®~ûŒ×ÿÛúo_“ÿÒ@û_ߘ×ÿο%Ýÿ.ôôÿ•ÀùoRýÿ×äSŸ¿I:ÿiû“ÿuKÿ
-éã‰ÿ¤<cÚøW±	U]5íxþߎßÿ2þå™;þ×ë'=#ÝÿöÜÿñ/qü§´ÿIÛÿÇ¿‹ù_	ìÿ|côJûŸ´óß³ÿ=ýEÐÿÇ7Fÿ§´ÿI_ÿÛªæû?
-|ýï£ÿSÚÿÌñ¿«ÉI`ÿï£ÿSÚÿ¤}ÿÞÿÇ€ÿèÿã£ÿSÚÿ¤Ýÿx©ÿuä¿5|Ž€_ŒþOiÿ3cýﺀÿèÿã«ÿÚÿÌ8ÿ‹‘ï?4üû]“Ïÿ‡íÒ¾ÿ¸øßêÿ.Ó/ßxÅäS0ÿÕ“ÿR`ÿrù/ò¨þúÆè±üWÃ÷?ÈùÆè¦üW{ŸÿâþW	5 »Æè¹üW‡ÿ
-ÈùÆè¦ü×mþ#îÐPW
-o Ž1úŸ'ÿUßÖ;îñu·ý¾]¯˜œbô?Sþ+Þç¿ÈH×`~±ú_*ÿEþCù/ßäó?sþ‹ü·„ËôKþË+&ÿë‚ù/ú¿I0޹üï8ÿñÑÿrù/Þÿ$ÿòÑÿrý¿ÈJ ÿí£ÿåò_ä?%°ÿ÷Ñÿrý¿ð_ý¿|cô?Sþë¾ÿOÄ	_vÏÇÃËrÜ´18Äè¹þ_ø/þ_¾±ú_¬ÿý$ÿòM>ÿ3翨ÿK¸L¿ä¿¼’îÿ~7ÖúSž1þ‰Å¤õ¿	-ùO	Ôÿ}“îÿëõ1ž˜ÿl*úÿI0ŒÿñÇa=¬ÏÛo§ßmóÎo3cÿ×DöØÿù&Ÿÿ@éõŸ¾¥ÿê?¾1ø¿ÜÖ쟕ÿè{ê¿þúÄà™\þ¿÷Œôýè;ê?οËþß+ÿ_³ßOÃòç°Y/¶«ß?cÆþ¿"ÿ¥Ï¿|c]ÿ9ÿ–tÿ»Ððþ/ó    _ü?5wQ÷ È
- 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,67 +0,0 @@
-Machine (phys=0 total=41943040KB TYAN Computer Corp S4881 )
-  NUMANode #0 (phys=0)
-    Socket #0 (phys=0)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (64KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (64KB)
-          Core #1 (phys=1)
-            PU #1 (phys=1)
-  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
-    Socket #1 (phys=1)
-      L2Cache #2 (1024KB)
-        L1Cache #2 (64KB)
-          Core #2 (phys=0)
-            PU #2 (phys=2)
-      L2Cache #3 (1024KB)
-        L1Cache #3 (64KB)
-          Core #3 (phys=1)
-            PU #3 (phys=3)
-  NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
-    Socket #2 (phys=2)
-      L2Cache #4 (1024KB)
-        L1Cache #4 (64KB)
-          Core #4 (phys=1)
-            PU #4 (phys=5)
-  NUMANode #3 (phys=3 local=8388608KB total=8388608KB)
-    Socket #3 (phys=3)
-      L2Cache #5 (1024KB)
-        L1Cache #5 (64KB)
-          Core #5 (phys=0)
-            PU #5 (phys=6)
-  NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
-  NUMANode #5 (phys=5 local=8388608KB total=8388608KB)
-  NUMANode #6 (phys=6)
-    Socket #4 (phys=6)
-      L2Cache #6 (1024KB)
-        L1Cache #6 (64KB)
-          Core #6 (phys=0)
-            PU #6 (phys=12)
-      L2Cache #7 (1024KB)
-        L1Cache #7 (64KB)
-          Core #7 (phys=1)
-            PU #7 (phys=13)
-  NUMANode #7 (phys=7)
-    Socket #5 (phys=7)
-      L2Cache #8 (1024KB)
-        L1Cache #8 (64KB)
-          Core #8 (phys=0)
-            PU #8 (phys=14)
-      L2Cache #9 (1024KB)
-        L1Cache #9 (64KB)
-          Core #9 (phys=1)
-            PU #9 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	8 NUMANodes (type #2)
-  depth 2:	6 Sockets (type #3)
-   depth 3:	10 Caches (type #4)
-    depth 4:	10 Caches (type #4)
-     depth 5:	10 Cores (type #5)
-      depth 6:	10 PUs (type #6)
-6 processors not represented in topology: 0x00000f90
-1 processors offline: 0x00000010
-5 processors online but not allowed: 0x00000f80
-1 processors allowed but not online: 0x00000010
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+-p -v --of xml

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000f06f" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffef" allowed_cpuset="0x0000f07f" nodeset="0x000000ff" complete_nodeset="0x000000ff" allowed_nodeset="0x0000003e">
+    <info name="DMIBoardVendor" value="TYAN Computer Corp"/>
+    <info name="DMIBoardName" value="S4881 "/>
+    <info name="DMIBoardVersion" value="S4881"/>
+    <info name="DMIBoardAssetTag" value=""/>
+    <info name="Backend" value="Linux"/>
+    <info name="LinuxCgroup" value="/dummy"/>
+    <object type="NUMANode" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
+      <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
+        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
+              <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
+              <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="NUMANode" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" local_memory="8589934592">
+      <object type="Socket" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+        <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+              <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
+              <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="NUMANode" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000030" online_cpuset="0x00000020" allowed_cpuset="0x00000030" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" local_memory="8589934592">
+      <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000030" online_cpuset="0x00000020" allowed_cpuset="0x00000030" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004">
+        <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004">
+              <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="NUMANode" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" local_memory="8589934592">
+      <object type="Socket" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008">
+        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008">
+              <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="NUMANode" os_level="-1" os_index="4" cpuset="0x0" complete_cpuset="0x00000300" online_cpuset="0x00000300" allowed_cpuset="0x0" nodeset="0x00000010" complete_nodeset="0x00000010" allowed_nodeset="0x00000010" local_memory="8589934592"/>
+    <object type="NUMANode" os_level="-1" os_index="5" cpuset="0x0" complete_cpuset="0x00000c00" online_cpuset="0x00000c00" allowed_cpuset="0x0" nodeset="0x00000020" complete_nodeset="0x00000020" allowed_nodeset="0x00000020" local_memory="8589934592"/>
+    <object type="NUMANode" os_level="-1" os_index="6" cpuset="0x00003000" complete_cpuset="0x00003000" online_cpuset="0x00003000" allowed_cpuset="0x00003000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
+      <object type="Socket" os_level="-1" os_index="6" cpuset="0x00003000" complete_cpuset="0x00003000" online_cpuset="0x00003000" allowed_cpuset="0x00003000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
+        <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
+              <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
+              <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="NUMANode" os_level="-1" os_index="7" cpuset="0x0000c000" complete_cpuset="0x0000c000" online_cpuset="0x0000c000" allowed_cpuset="0x0000c000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
+      <object type="Socket" os_level="-1" os_index="7" cpuset="0x0000c000" complete_cpuset="0x0000c000" online_cpuset="0x0000c000" allowed_cpuset="0x0000c000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
+        <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
+              <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
+              <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</topology>

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16amd64-8n2c-cpusets.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16amd64-8n2c-cpusets.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
--p -v -.xml

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets.xml.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,102 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE topology SYSTEM "hwloc.dtd">
-<topology>
-  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000f06f" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffef" allowed_cpuset="0x0000f07f" nodeset="0x000000ff" complete_nodeset="0x000000ff" allowed_nodeset="0x0000003e" dmi_board_vendor="TYAN Computer Corp" dmi_board_name="S4881 ">
-    <object type="NUMANode" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
-      <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
-        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
-              <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
-              <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="NUMANode" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" local_memory="8589934592">
-      <object type="Socket" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
-        <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
-              <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
-              <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="NUMANode" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000030" online_cpuset="0x00000020" allowed_cpuset="0x00000030" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" local_memory="8589934592">
-      <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000030" online_cpuset="0x00000020" allowed_cpuset="0x00000030" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004">
-        <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004">
-              <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="NUMANode" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" local_memory="8589934592">
-      <object type="Socket" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008">
-        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008">
-              <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="NUMANode" os_level="-1" os_index="4" cpuset="0x0" complete_cpuset="0x00000300" online_cpuset="0x00000300" allowed_cpuset="0x0" nodeset="0x00000010" complete_nodeset="0x00000010" allowed_nodeset="0x00000010" local_memory="8589934592"/>
-    <object type="NUMANode" os_level="-1" os_index="5" cpuset="0x0" complete_cpuset="0x00000c00" online_cpuset="0x00000c00" allowed_cpuset="0x0" nodeset="0x00000020" complete_nodeset="0x00000020" allowed_nodeset="0x00000020" local_memory="8589934592"/>
-    <object type="NUMANode" os_level="-1" os_index="6" cpuset="0x00003000" complete_cpuset="0x00003000" online_cpuset="0x00003000" allowed_cpuset="0x00003000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
-      <object type="Socket" os_level="-1" os_index="6" cpuset="0x00003000" complete_cpuset="0x00003000" online_cpuset="0x00003000" allowed_cpuset="0x00003000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
-        <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
-              <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
-              <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="NUMANode" os_level="-1" os_index="7" cpuset="0x0000c000" complete_cpuset="0x0000c000" online_cpuset="0x0000c000" allowed_cpuset="0x0000c000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
-      <object type="Socket" os_level="-1" os_index="7" cpuset="0x0000c000" complete_cpuset="0x0000c000" online_cpuset="0x0000c000" allowed_cpuset="0x0000c000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
-        <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
-              <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
-              <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-  </object>
-</topology>

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.options (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.options)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+- -v --whole-system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,92 @@
+Machine (phys=0 total=67106960KB DMIBoardVendor="TYAN Computer Corp" DMIBoardName="S4881 " DMIBoardVersion=S4881 DMIBoardAssetTag= Backend=Linux LinuxCgroup=/dummy)
+  NUMANode #0 (phys=0 local=8386704KB total=8386704KB)
+    Socket #0 (phys=0)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (64KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (64KB line=64)
+          Core #1 (phys=1)
+            PU #1 (phys=1)
+  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
+    Socket #1 (phys=1)
+      L2Cache #2 (1024KB line=64)
+        L1Cache #2 (64KB line=64)
+          Core #2 (phys=0)
+            PU #2 (phys=2)
+      L2Cache #3 (1024KB line=64)
+        L1Cache #3 (64KB line=64)
+          Core #3 (phys=1)
+            PU #3 (phys=3)
+  NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
+    Socket #2 (phys=2)
+      L2Cache #4 (1024KB line=64)
+        L1Cache #4 (64KB line=64)
+          Core #4 (phys=0)
+            PU #4 (phys=4)
+      L2Cache #5 (1024KB line=64)
+        L1Cache #5 (64KB line=64)
+          Core #5 (phys=1)
+            PU #5 (phys=5)
+  NUMANode #3 (phys=3 local=8388608KB total=8388608KB)
+    Socket #3 (phys=3)
+      L2Cache #6 (1024KB line=64)
+        L1Cache #6 (64KB line=64)
+          Core #6 (phys=0)
+            PU #6 (phys=6)
+      L2Cache #7 (1024KB line=64)
+        L1Cache #7 (64KB line=64)
+          Core #7 (phys=1)
+            PU #7 (phys=7)
+  NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
+    Socket #4 (phys=4)
+      L2Cache #8 (1024KB line=64)
+        L1Cache #8 (64KB line=64)
+          Core #8 (phys=0)
+            PU #8 (phys=8)
+      L2Cache #9 (1024KB line=64)
+        L1Cache #9 (64KB line=64)
+          Core #9 (phys=1)
+            PU #9 (phys=9)
+  NUMANode #5 (phys=5 local=8388608KB total=8388608KB)
+    Socket #5 (phys=5)
+      L2Cache #10 (1024KB line=64)
+        L1Cache #10 (64KB line=64)
+          Core #10 (phys=0)
+            PU #10 (phys=10)
+      L2Cache #11 (1024KB line=64)
+        L1Cache #11 (64KB line=64)
+          Core #11 (phys=1)
+            PU #11 (phys=11)
+  NUMANode #6 (phys=6 local=8388608KB total=8388608KB)
+    Socket #6 (phys=6)
+      L2Cache #12 (1024KB line=64)
+        L1Cache #12 (64KB line=64)
+          Core #12 (phys=0)
+            PU #12 (phys=12)
+      L2Cache #13 (1024KB line=64)
+        L1Cache #13 (64KB line=64)
+          Core #13 (phys=1)
+            PU #13 (phys=13)
+  NUMANode #7 (phys=7 local=8388608KB total=8388608KB)
+    Socket #7 (phys=7)
+      L2Cache #14 (1024KB line=64)
+        L1Cache #14 (64KB line=64)
+          Core #14 (phys=0)
+            PU #14 (phys=14)
+      L2Cache #15 (1024KB line=64)
+        L1Cache #15 (64KB line=64)
+          Core #15 (phys=1)
+            PU #15 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	8 NUMANodes (type #2)
+  depth 2:	8 Sockets (type #3)
+   depth 3:	16 Caches (type #4)
+    depth 4:	16 Caches (type #4)
+     depth 5:	16 Cores (type #5)
+      depth 6:	16 PUs (type #6)
+1 processors offline: 0x00000010
+5 processors online but not allowed: 0x00000f80
+1 processors allowed but not online: 0x00000010
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16amd64-8n2c-cpusets.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16amd64-8n2c-cpusets.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-- -v --whole-system

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c-cpusets_noadmin.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,92 +0,0 @@
-Machine (phys=0 total=67106960KB TYAN Computer Corp S4881 )
-  NUMANode #0 (phys=0 local=8386704KB total=8386704KB)
-    Socket #0 (phys=0)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (64KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (64KB)
-          Core #1 (phys=1)
-            PU #1 (phys=1)
-  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
-    Socket #1 (phys=1)
-      L2Cache #2 (1024KB)
-        L1Cache #2 (64KB)
-          Core #2 (phys=0)
-            PU #2 (phys=2)
-      L2Cache #3 (1024KB)
-        L1Cache #3 (64KB)
-          Core #3 (phys=1)
-            PU #3 (phys=3)
-  NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
-    Socket #2 (phys=2)
-      L2Cache #4 (1024KB)
-        L1Cache #4 (64KB)
-          Core #4 (phys=0)
-            PU #4 (phys=4)
-      L2Cache #5 (1024KB)
-        L1Cache #5 (64KB)
-          Core #5 (phys=1)
-            PU #5 (phys=5)
-  NUMANode #3 (phys=3 local=8388608KB total=8388608KB)
-    Socket #3 (phys=3)
-      L2Cache #6 (1024KB)
-        L1Cache #6 (64KB)
-          Core #6 (phys=0)
-            PU #6 (phys=6)
-      L2Cache #7 (1024KB)
-        L1Cache #7 (64KB)
-          Core #7 (phys=1)
-            PU #7 (phys=7)
-  NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
-    Socket #4 (phys=4)
-      L2Cache #8 (1024KB)
-        L1Cache #8 (64KB)
-          Core #8 (phys=0)
-            PU #8 (phys=8)
-      L2Cache #9 (1024KB)
-        L1Cache #9 (64KB)
-          Core #9 (phys=1)
-            PU #9 (phys=9)
-  NUMANode #5 (phys=5 local=8388608KB total=8388608KB)
-    Socket #5 (phys=5)
-      L2Cache #10 (1024KB)
-        L1Cache #10 (64KB)
-          Core #10 (phys=0)
-            PU #10 (phys=10)
-      L2Cache #11 (1024KB)
-        L1Cache #11 (64KB)
-          Core #11 (phys=1)
-            PU #11 (phys=11)
-  NUMANode #6 (phys=6 local=8388608KB total=8388608KB)
-    Socket #6 (phys=6)
-      L2Cache #12 (1024KB)
-        L1Cache #12 (64KB)
-          Core #12 (phys=0)
-            PU #12 (phys=12)
-      L2Cache #13 (1024KB)
-        L1Cache #13 (64KB)
-          Core #13 (phys=1)
-            PU #13 (phys=13)
-  NUMANode #7 (phys=7 local=8388608KB total=8388608KB)
-    Socket #7 (phys=7)
-      L2Cache #14 (1024KB)
-        L1Cache #14 (64KB)
-          Core #14 (phys=0)
-            PU #14 (phys=14)
-      L2Cache #15 (1024KB)
-        L1Cache #15 (64KB)
-          Core #15 (phys=1)
-            PU #15 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	8 NUMANodes (type #2)
-  depth 2:	8 Sockets (type #3)
-   depth 3:	16 Caches (type #4)
-    depth 4:	16 Caches (type #4)
-     depth 5:	16 Cores (type #5)
-      depth 6:	16 PUs (type #6)
-1 processors offline: 0x00000010
-5 processors online but not allowed: 0x00000f80
-1 processors allowed but not online: 0x00000010
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,89 @@
+Machine (phys=0 total=67106960KB DMIBoardVendor="TYAN Computer Corp" DMIBoardName="S4881 " DMIBoardVersion=S4881 DMIBoardAssetTag= Backend=Linux)
+  NUMANode #0 (phys=0 local=8386704KB total=8386704KB)
+    Socket #0 (phys=0)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (64KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (64KB line=64)
+          Core #1 (phys=1)
+            PU #1 (phys=1)
+  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
+    Socket #1 (phys=1)
+      L2Cache #2 (1024KB line=64)
+        L1Cache #2 (64KB line=64)
+          Core #2 (phys=0)
+            PU #2 (phys=2)
+      L2Cache #3 (1024KB line=64)
+        L1Cache #3 (64KB line=64)
+          Core #3 (phys=1)
+            PU #3 (phys=3)
+  NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
+    Socket #2 (phys=2)
+      L2Cache #4 (1024KB line=64)
+        L1Cache #4 (64KB line=64)
+          Core #4 (phys=0)
+            PU #4 (phys=4)
+      L2Cache #5 (1024KB line=64)
+        L1Cache #5 (64KB line=64)
+          Core #5 (phys=1)
+            PU #5 (phys=5)
+  NUMANode #3 (phys=3 local=8388608KB total=8388608KB)
+    Socket #3 (phys=3)
+      L2Cache #6 (1024KB line=64)
+        L1Cache #6 (64KB line=64)
+          Core #6 (phys=0)
+            PU #6 (phys=6)
+      L2Cache #7 (1024KB line=64)
+        L1Cache #7 (64KB line=64)
+          Core #7 (phys=1)
+            PU #7 (phys=7)
+  NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
+    Socket #4 (phys=4)
+      L2Cache #8 (1024KB line=64)
+        L1Cache #8 (64KB line=64)
+          Core #8 (phys=0)
+            PU #8 (phys=8)
+      L2Cache #9 (1024KB line=64)
+        L1Cache #9 (64KB line=64)
+          Core #9 (phys=1)
+            PU #9 (phys=9)
+  NUMANode #5 (phys=5 local=8388608KB total=8388608KB)
+    Socket #5 (phys=5)
+      L2Cache #10 (1024KB line=64)
+        L1Cache #10 (64KB line=64)
+          Core #10 (phys=0)
+            PU #10 (phys=10)
+      L2Cache #11 (1024KB line=64)
+        L1Cache #11 (64KB line=64)
+          Core #11 (phys=1)
+            PU #11 (phys=11)
+  NUMANode #6 (phys=6 local=8388608KB total=8388608KB)
+    Socket #6 (phys=6)
+      L2Cache #12 (1024KB line=64)
+        L1Cache #12 (64KB line=64)
+          Core #12 (phys=0)
+            PU #12 (phys=12)
+      L2Cache #13 (1024KB line=64)
+        L1Cache #13 (64KB line=64)
+          Core #13 (phys=1)
+            PU #13 (phys=13)
+  NUMANode #7 (phys=7 local=8388608KB total=8388608KB)
+    Socket #7 (phys=7)
+      L2Cache #14 (1024KB line=64)
+        L1Cache #14 (64KB line=64)
+          Core #14 (phys=0)
+            PU #14 (phys=14)
+      L2Cache #15 (1024KB line=64)
+        L1Cache #15 (64KB line=64)
+          Core #15 (phys=1)
+            PU #15 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	8 NUMANodes (type #2)
+  depth 2:	8 Sockets (type #3)
+   depth 3:	16 Caches (type #4)
+    depth 4:	16 Caches (type #4)
+     depth 5:	16 Cores (type #5)
+      depth 6:	16 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,82 @@
+BZh91AY&SY±ñX x¨ÿ¥ÿø½ç÷ÿüÿÞ ÿïÿð% !"/ø`+|•À ÇÈ>–÷Zè{Ï22ô8™¾ oxßBò|ûMŒBŸ^O<¯< ®ð·½Î1¼½áâ<ö^^^^÷²s›ÕÎ{½pzô  @       PSLÿýUPÿÿUUM7¨ýPL À ˜  À   €žF))5š›PÈõ=@ 42 h    €‘ú Æ¢ “Rz™   L  L  ˆ` dmAž©"hM5€€
+         "„<TýP! ÓC@€  Í 4     
+’DÈHž&©²›SÔôž¦j€òž¦é2
+MFÅŒ'ð„¤H‘ûÁ?ä¾”‡ð!R+"þQ
+8 V	ÿ ù?†àÁX ~h' MQ=؇H+Èd,š‹‹#q„²}ïéýÿÙþ§àÒ#M4ÓM?«û_·øßÇý+Ÿ¥ºÜy^ÁUôÅOë‡|$‡H‚ÁT(Íò„QJ*)QU 	„‰ï$"óïÎÞ~~{ùéŒi+A%´ju²
+ âP‚È/30‚¤QI"
+ êTƒ„™„ âTƒ*Që֡ɶq B«	MA)¡® •ЂWW«I]A+¡® •Ñpff •ѹF"ÒËcrI$„¶ÛvI$™‘§€–ÕmS¥;d‘»$’Fá˜ÓpÌ7
+Ä…M]»‘]«tæ†à'unÛ‰¼c^¤N©6±DAC1E´QEQ»lIÉdÊi0˜L&I”Òi4šM&’(a†aŠ-¢Š(¢¥mĬKMš«»vI$&6ÛvI$:ZY+vÉ$Š{†›½êÛ6ïzÛmɲf:Æ”Xš°½Wíœ;Yõœ;YÃF”m¥YDHQE…aD]¡÷ÛFúß~6E0"ŠQ¨ˆaAw Ûn	›HoJèp“[I-€	 jY$ªVÉ’ÒL–aTUTDBÙ&!
+P„-¡fÌ,“,¨IR­hÕ*„R+HFF@$VF©T(²5«FµhÖ­¥P¨ÈITª	*•B£!"n‹ëÁ5Å
+É8h¸^$75&-²@åÄ	a$•ƒº‘$$‘M׍§MiŠE&„™¨ E†¤VÐMÐ
+âBÜ(oV‹Q#!!!!$"¦âᩐ*;¹Àµy‚Û
+%Mæ)™$“RP HµM­·$Ò‚s²NRï.Kb„ƒC[´¼¢DêMÔT¨‚‚H¨T=èŠ)Z¨$’ÂÅ%!AAJ(T•(T*Бj¥± „YËi
+EUH	J€•ÂCø‚¢|ÁÔ>!ìÈ÷¨i=ì--¨ZÞ൪ªª«äȍÁ‰{¢ÒÖBáy{¥ªW¸f—ªª °d t‡¯ÉëòÃ×áaàØ7¿¬ö¯yjºIÄþ
+ç1©mÝ&ž)$ô?Nô‡§Mk_‡¨ fa™€é5ÛƒŒÃ3   3Ì6Ì30ò³Ì<™†iç9«†¯âHƒJ‘QµH¨Ö¤T]5S0™›êéJR”®Ys–oü·œpÆ#'ºR5“„o­M!ÎI¤#}榐eÄ#žÚšB5“ A¬æÓ†4äÙŒDÍo·
+ØÄLÎN1ˆÖOé…A™œÓ¥AîMô,¢ˆ/0üÜOA7 vˆÒˆÒˆÒˆÒˆÒˆÒˆÒ€k´ètyÇ‚––AîèpÈ8ƒJªªªªªª¯ñƒT¾:çÆØÛŽ5ÓMwI¾zy™™éßOGÀpøÀ €+¾o<fÜ©¯x >  ö|¾s—Ê—{ç¯m¶ÛP [n™i§.6Ûm¶ÛØ|ò$RBDµ!ñD‰’H~è"½2’"Ø”ññ–éS­­Êºv´é]Õ'^Ø×+åHc;kÀ,ĺÎ	7ÕçYß[6õ€ÇªdPÏm\
+èm.<ÌÃ%5‚“œ`Cn-~2äç¦Uoίmq{A½^ˆXŽay/I¦²o¯^´T½y	[ìg!¢A¥i4-+Ž0©&ÕŒƒò…ËæEƒkKÖœqû¡pé!&¦‘R«—uü¹o·,¶+b5óëÚöð×ë°6Q±®*­•ôÉŒùò1ŒÂ¹_~|÷çZ[妛—×\ó×_ßöï¾ûï¾ü€;vÞÞܲ;m¶Ûm¶Ûm“eº ( ;{Û/l®ImvËiÌŽZw6Kõ ÞËÙ{ùà ŽÞÕ›e¢We´ãn[m¶ß èƒöCÐ:x(=C°zPÌ8rãŠ^ÝÖÅb+QÝÔ»ºƒ€Bª»Ñr®áT¬J䕪J§V;¢J–â%”X¡n踳¬]‰ùCæ
+ƒÌ7åê¤:0úƒø‚ÁÞƒp䯇Ôa j
+Ä, òû1">õA:…$x§œõ–––ž‹Ê«"DY€Âi‰%Õå·’`      $’I$Û ·€
+ÝøüøûñÛm­¶Ý¾Ÿgéð{sz\æ-C!šÅ‹K,0Ã0ª¬0à *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ Æ1Œcm¶Û‹{ï7    @   m¶ÛgŽ øª€&|eB@¤$Ê„UåB*„kB*„kB*„s¡B9Њ©×lóÏ=¶ÛM4ÓM4Ó½Í$$m¶Ûm¶Ûj›;â$ßzªÞÀ A$ "	   ¾ûï¿,“¤’IƹréÇNšÀ‰s I$@VswwyÓ——~ƒ‡	À         r¤–0¹\Îf@         D    €I$’A0€ –mm–[<v[%³‰$›ï¾<xê«<xÀª ª€
+ª *¨ ª ß}÷ß§N8—œ½%ÉfK2Ø 2\À %Žÿ6Û,²wuë˹§'=¯-â{3‘Fœk
+ÝÉ”H·a`ÁtÊ[!Û\¤‡i<Ƀƒœࣜà `p0 ÑP8÷€k.ª¬v˜lËÞvlå,Íòò“Ø[}¿@ :Ë,Û—]Y&k§]œAÉEC
+G¼ñ&!¥C´RD$YFIsưw‰¨ƒÈ¾ó§›¿‡÷‹äß\mn…º¶-Þãw$RY]¡C˜µÏ6ÛʽÕo®’O/^        jI5bI$šI$ I$ύ</ Kd¶É1黲xÍ™ÝÔîÙ‹8Ö®&š(*L6nï7l™:‡«E"žð¤„Oú ùêU«T<ÿˆ¬@pÂœ—éúßÑtâø_ ÏSK¡DØGeØ<ÝCÏ;à„È…MÜÕ	…¢8 Øu2(œXœT~=}cüšHÒGŽšl{o,šYbn8—òþÏÜõîð}€ù´J:ô¾w¥³ß³ã©ñð¸PùÞ–SÉ×P>ÿÝû7ñyyíÑq I¨§ºzäE”=m+ÕyqäÅMFïX|ç	KxÆ1¶)–%Ñ"EA}×®ûLë9˜’¥ ½BJÀT#¤
+	J Ô h 
+çlٍIƒ}`€lPC˜"	óŠªRc3}äËm¤–UËšº‰-ÊvNd4´ŽD#ÐŒª2ê<̾ 9£$ˆò’G@ßx¾ýiÒF¿:6h;¹"™­8³7[‹C[ÅÄ">©	fl6Öµí(³rT_±õ¾™Ý{>p;uα Ä Ä;öÅï­qï€=þu$’       jI5bI$šÖI$™€€«jÞRÛÛ÷ƒoÂs-áP¶Õ(G‡õÃçM2ç¡pPiŽÝ<ÁײHÛÊ™HUëß^ÜKNÂG”èmµk¶œºÀHßµ…*üÒDF·dqV¦,-mo¶S*ÙUÇ@plÓ-vÊ`EúgÀ­+zåÛ¦:N|†üXl÷z‡Û ›bc´Y9$Åí;TŒ¯ÛŒõÏ‚©¤«u‘B£‘›–zbPÀòg‰Šâï|aRÞ³
+ö›…ëç­·ç:éfŠê
+På¬#>[Ó-·ÅZe[ÔÎõUIn›Ç¢"äI,^ÞÙœ¶í¶*&¹
+Grôæ÷<?)ùÇúô°þ'ïÏþïžA]óé^
+
+ý5’{Žl÷!ÝÒH	”7n
+eú²NœÙÜÁÕ¤Î"†ízÑA¾¬“§6w06ôêÃÔPͯZ(7Õ’S›;˜zHG¨ ö½h ßVINlî`mé!¢ƒÚõ¢ƒ}Y%9³¹·¥"zŠkÖŠ
+õd”æÎæÞ˜°õ#oZ(7Õ’S›;˜zRçQAíÁ¬ ßVINlî`êÒjæBƒo²ƒ}Y'Nlî`êÒH	”7n
+eú²NœÙÜÁÕ¤(nÜÊ
+õd9³¹ƒ«I &Pݸ5”êÉ:sgsV’@L¡»pk(7Õ’tæÎæ­$€™CvàÖPo«$é͝ÌZK\ÄPݸ5”êÉ:sgsV’÷ܺΤQ÷}/3é–[x}Ïq¾6³=ÙÍÔ=ÞÕs=ÐôÕϯùcì~ ‰àø³Ë=®<ÃuuõÑ8›ÔQR“+1æíP3î’Ÿe¿1zìö}Ǐžôõ!ûÁ!™s5ç7‰àš“m9pMm5¼¥ÆÛÇcÛˆqè!Ü‘8«|ÚÞc^YòÅøÃ2>èiצºÖºí›]µ´^׉$󤓞Ý@       Ô’jÄ’"I5¬’I3 $’uíÞ‚NÎþ–ùÒ<ö[!iaG“ÃÉ'uõ²$âŠí_ok;+ºª –éfÖ£,g¯N/ ¶´²ŒÏ `\jl’¨ÙLkÖ‘™˜hªÅ—%¶Ò|hm¥YÅfl¡h,L&x@æ;£€yˆw.€Y㈾åLŒƒJ™k½ö­³‚Þ:ËÁX¬î’eHÙ`ß9¶ùÒòökƁ”$íH9T“¬ñ:mÇM	‚;QY^¸ÖÙzëzaÅÜns¶Äah"§ FB­B±¢»W®œ£T¯H¦ƒ®wËéäCg}eæ-£@'€yÎ+A^J}õàòþ1ÁÎpyð÷Ãaç¤Ƚ0LlˆLטE5
+ÁÁ’)ÉÁ¼™&èÓA'r£M&-ç"4¨‘w9”þ”£É+¦]w}·¼‘ÝÛ¿ÏLãYåë@       e¹€
+ªªß9žüZ]{J®ñã7á“ÎyÏØ¦òsß®5çÅbªéÝŽN*b&šô4/]§K~*IcÈñ¶ë˜ø¬éÈŽÒ2Ž­o4ß}VºŒßTËS@
+$÷{cŽqƒk]óxÖtv f0µ´a³4¨‡’ÓS¼Û~1Ñ^ÓÝ7âôéƒuê$1Y&.Ðcô1sš}=—Yó<è 	ðúœô¸·O©Zsž1˜Dg@§eÑ›¼Þ
+2’ZáŒJåÖDœ s€p/” èŠA’*@"h€ÔŠgÊ 7Ԑ‘Fz¨ëžÇSŒº–ø׍ûr® Nv9™.¯Úå燫ÀŠ)ã㤒I$      [˜ o%¶IŠN½þIy÷úž²iáˍ±MW–NúòÊØôóë2É)“UkÓŪ¦É,ïlÔÞC`Îv·§¨È¨‰³Àí¸Ižp"Šqȁ¬€„Xª‘*-L崙ԝ"rcË>y¦ÚíÊk|r¶Y®HZÖø¾1\Í›=‘°V0Çq&¨1W[ÕÓ"MHÒs/(Åé1 F™†.÷ªYms
+šcï­šþƒ4¼m!'³G©õ3—Ô"ÎCèNŠr”©àBØÃe5 ŠCá|”¸NfdÓVwnÕÎÎgÂÕ=剝¹oÝpµØ
+½·«[e¹äG¦´       [˜ ùÚw—Îz¶X‘á#x–©zxÞÁÖ¬‡†[bš7ª–ß(¨‰Ü á1¼¦ÆÆü[Ç“&vÝÚá©$)9@ÍUÔk7•´iW¦uWw­
+úG‡ ‰Ï4÷Î	dœ‰qó4gm²—
+Y
+–Æ="§ƒ‡6ãÆÚÂÁ^5zèáÛ,5ÅxÎ"æ)ßs¦%Úwì\ƒÏz<óÐî'ÂÔÈ.tã©Ô
+»Å4jSB(ŒåªZ‚ùç$CÆMCªh¯n—-}óé|_Ç<ÈÜ5q²ü^Ö©jRøå-$ðÔ%/«æTäCãÂpÒW9%wÄÔB#Ô¹ÞË3u‚,¡-7¡E`ŒÓ¥ ÅJ8óTé­ÛãÁƒ˜Æ‘Ö¯ \ÎÏ~là„½›¼ñqܼ¼Ö
+”L…C¼£m¶Ã:ÚµšLï[+˜R­“k¢Uô¬Ù–Îg1ˆ¶{ìóËoĉ<w½eÜ…ï¥Yãw fdç;:Êtíâ€xœlqŸÁƒ¸pÔJ×n*äÝ£•Q¹o1ê’§šiÒT蕏3V‡‹¢ç‹¨o¥MWTÖz.]³ŒÅ«jƒ‘ÝJ¤ÞöéøëÒtÙÓ~o(ÛïúáÅ89Áõ:³¥àß:~pO(§™“NàÌ;hAŽn‚ ¤´’î.uRùÐf‰=1ë'’fë¾ÛÕå÷ïË&n~sËb=sICºc+J­®ÎïD]½ÕÅ´¦3ÙçÓJvñóË6ŠŠ¨¥^;»¶âl›æöô-æíݺ¦%¡âSÍÛ VLb£˜š„Žm$1iWÄnpäŽc#BSƒi6-Uç&bµa¾¼ÊKx¸J­y7Ú£9½£F2â3¤så¸çÇ-6ßTÞÙôËŸ‰ØîškÒ÷㥱l«z¿<ú-Ϗ˜.2ÍÓ½­lZªê–«ó–B<Î9meµøwÇw^UÔ;æn[vï/…˜­yóÓn‚ÜTâ²Û–™r“@ÆŒÛo+ׯþ
+t¡WöÓl¸ôD‰<Zy'.›kÝËû/³äD àï©ç\ƒÉÜöÙÖ^ß7|I6;9S~4×KãMmøÇªÌT?Å7ã-LZÓ,›€¬†Öå¹E'þ’e½~ªYbªRÉT¯È-ìð
+	òŸ=ôP7~`Ï'óäÿã¤x.&akÂÞà\?œ?0,±aû ‹XNôûµJ¨¡,tceÃóŠÆ¡aÐ`6Âd5_ÿÂÀž¿X ù‚ö4P?îöÈ>ÀOœ&á°JA`œ²ÜZͪ©UQLà–Á¸O•ñZ„Ì2
+
+0º‘	
+°›
+’⺌°Áãê?”8¨dÿ8ö
+qÂxƒÌ9ƒP Ô'°P}¤H‘¼!f(Iîƒä0‰?9ÿ N¡)Ý'8&Ã8d˜;‚x‡ò„ù…ÃPŸH‘Ü
+	A¿íàœƒ íöê¥RDHüö§ çÁ¸I%Â5 Ì(~Øa$$e @ÎÁ.‚ÝCi:†á@°K°e×çÈ&BªU‘‘‘‘‘‘‘‘‘‘‘‘‘¸%‚Ähø†iõÒ¤Ë&¡€æIÊ
+
+‚¢"EÃ騳(2	D#T‘¨$”5)>ð/Ô?8OrQ))(Š"‘Hû#)'̧vP_HEªH0¸X>îƒç0PkzRÀ’Rp   ];Å5……¤›‹CPh
+ƒ€”
+	@È}€°ýÀ>×1Ød	ʃP¡È'@  Þ$$}sÐÌ&pop]°ZápÐ;ƒ;?X4XKX%Æ(4D‰Ð<Cpýp™n’/:T¥UEJ„ÎÀÄ tI0à>p÷	Ð('ÀAñ
+ë
+…à   {âpõ˜Ý$n'¢$H°o°2
+	p“¨™ßQ00Ð.aÀ&Áì–Àjt"áp°'²HH¸5¡œªT”ªU*•J¥, ûAÎ1‰päGx}ÁÐ;ƒ»‘#pI*	06è`POMBu jÖ,3=G˜{á¨O0lÁŠ	¸#Äy*À#¼
+Љ÷fɝ
+QÀô0š€Ü>‘#´hAƒ Ð.c/`“ 9‡Px|HH¸¡9	aאr	€*ÀâDIx‡a—plG‚jÁ˜Ü û‚ƒ6@õ‚tD‰ÈP}ôH‘CñBüp`I*
+$‰ñÒ÷
+àà4Ü<"Ö<ïâ
+ø9È9
+
+¯ä(n$ìûCÜ´÷âÖw‡ÞãE(Š¢*ˆ¢„PƒÔàžH‘#`Ô$ö	è`?G_#˜r Ì>`“€ôì
+÷ ﻯGÄ;‡ãzpP|DŸHvu`°ÔX(;¨(%Ôq`æ và&A€ö	2fæ7÷¨=Pj4^aPJ
+HB((ÑýŒàá$v°]`ï
+…Ä–["ÁH<…Á>Ð`dG@¸xüõf1^yû!K†Hî
+^D‰ò®v	ðÍ$Ph‚;
+È
+[Ý"$RZ$’G—-Y¾úÃßPØ((>¿xw"DŒ›°4ºà÷
+À, š˜G¨~¸;Ç ë&`µ»ÔÀÀ‘è(tD‰ó‰	0ºDHØ*$$p˜¡‹Pjr‚‰AÔ0¡’\4ÝÒ"HØ*$‰
+‚Áäà ýkÌ<C¼% Ÿ¤5	<ƒoæÁ;ÀP9+„°Ø'mRDI‡Ûƒõ	‚L„¡BN£pnÿÚ$HúÀàANHHÂHI!#P9=À!ÜC¼
+=Ã_	!#À3 È%Aà hAØ5“¸(.@,Tðf “Á8	`ž‰#¸%À¢BG v}I	'ÿÅÜ‘N$,|V#À
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,50 +0,0 @@
-‹ ¨Ø9K í_“ÛÊ‘åïëèSðq7båEýAô›=
-Ç(¼öN¬­ØØ'DRÝu“’}}5Ÿ~Q »MT•Ž¥ÎóÓܱ¤†XÝHœªBå©,ÊÇyðïÇ+;ûŸ¿CVQäyü_SäYýgã}ý¿G~1Æf6¯þ>Ø_2c­Ëå}?g<íöåv4úåóÝúîa¹zåºÅv‡ø†°˜Óøo¶ë!‚nñ7λÜd.TñwÖdŒ?‚füg›§åê˺Ç6b€Ã!ÞWâ_©Þù‹øûÙ_FYßÃwQÿòÅn·ÞþÛïGÙ»_«ùz;]Ϋ?ýái¿Xí—³?üåûê¡})—ߪ¯˜üÝãz¾xø·ê÷Î~?Z•‹êϞʇѿ¯·‹QõÏFÿ{³_l׫ÿ¶üï£ÿ|ni4ù»Ý~±Ù,Wwu³ñÓÿòÿ?ÏŒ³ñïœ
-ïfåì~1Ú-ÿ+~ªÉ¬ýùï6÷ßvËYÕBýfïvËÏUÌîvÕì»YlµúÂËGÆ¿8|©Ü,g‡¯˜ðn¹Zî—Õgÿ2^ýeó¿øm±‹¿.~›-6ûåzuü»(‰ùèañkõ3Wñî›—«ʪõêÕ?ýú¸Í£Ín1Úïf£ÇÝv´)£ÇÙb4ûm\·7Ú-6£Çý¶úÊ]üJ9š=®­.ÛÇæÂhöðåáiw?z|ümôå·êvÕ§UÿÙÑý~´û¶«~øê^ÿ¿¾øm__2]oö£‡Ç‘›¯ÖÿˆYÿf´]l¦wëõ|´Y-Gåý—iuÍìq3}XÜ•³oï>¯ï֏ËM¼A.˜ð»*(ÿ_<»ãþÏÕwvoÀñ»:~1øCx¦åÃònõX=%‡¿,çóêŽïêËâçúlôy¹ßžÃö?F~|ø›_—Û}õ¤¼ÛTßñvôX®ªfâçü¾ºs£/ÕÍþµúo¿ß¼{wú€š7ó€šï? Eó5|@«tl~øÔþd¨‘ô ãæjù€Vh1ùáP÷fÐWzÐIóu|@ù]õ€ýè¨ÿÉP+èAmÖ|@=ПcˆÏßÌúýÔšæšóý9Ðð“= NÒƒÚæø€þsÐâÍ< ¯ô ®ù€|@Žtü“= ^Òƒúæ:æús< “7ó€¾ÒƒæÍtÂôçx@ÍÏ–JÊ%]è•T’a.©~D‹ÿýÙ’IßD_éD¯%“˜MúYÑŸ-$½è•t’a>©~DÇ?þ#ú³%”¾ÿˆ¾Ò‹^I(f”~–GôgK)‚^Ô]I)æ”~–GôgK*}ÿý~/ê®$•³J?ð=ލJÐ4ýß»}¹ï·×ýßÕ
 —‚»ôSÐÿ öÖ£±›“É(83®ºdã3—lȃ-Âx<²Þ…ɨ(F¾êT²Ã ‘UÝy·‘)¼ù<ŒÍÈ„Š,^_}D¯·Åäùz3
-™›Œ«îÎÚQ°>—OÆÎ£‰©.2ÏÚQ>©>¨úc>vÕE…É̸jÇûQ6ziލ‚ÉÇÕ7©™x¥·¹û‘óñ»ç+«ž4·¡nÂfõ'†‰7ñßÙqõ—áùº¼ú®Bõ96³ñ³ªÎ²º²¨>¬úDÛ5/‡ê[Ìóøý„ê[ˆX=µãêû=ý‹ênúêÞTߣ	Æ„ø¡!Yÿ|öqUK™™ÔMLŠêŸy<©îJý!¾®ŠuãêÆfñ_W1ª¿ÃÜšê7Ξ¶]}vu‹øç‰­ÄT]˜'Õ
-«þÝÙ7iª°kCu3FÅ$ØIQ…\Œ3£žŸ]j«oܘøw¹syý]N²¢ºaõ·YüùÂ*6™¯oÏ8Ë·q\ýnd]¼Æýó‘ðñ»´ñ;¯"¯‡à«ÆOή"“ML݈󅯟3“Wß‚­©Ÿ‹jf±ßÆv]VTO‹/F/?gõ(˜—ßãë'!¼üMý·¾z4Oþè&.ägWðññññ×OôëÝlÿÛ~ä­³cë'ï>‹jhuYf‹ç•¸Ånd'ãÜÖÞM·O«Õru72Ç?~XϾ.æÕÇý«_Ùzåìý÷m7D
-ˆŽûÿ«0ç¼qqÿ÷ÿ#hľøuYÉ¡Ïç [ü³àLa3—ÇõŸ<cü!|7þÕï÷‹Ç^ƒ´øÇõ¿9Çø#h‹ÿlótó3^ÿ%Ëú/ºÄ?®yÞò¤Å¿¨â_ø‚ý?„Îñ߯7ë‡õÝ7Áƒk\néñßßoå|úl èÐF°ÿ~þ¯úƒ¹ˆ¿÷Ö3ÿ‡à ÿÆÞjIWÒõÿì(™nÊÙ×òn1]Î[ÚhÕf/ôŸ[¨ŽÂWMºþ£·¯]ó§¤ë߆@ÿüºê?aö/šÿ›,§þ0c7 ”›ßÿ§Ë]‹_X0ÿ÷9ǁÂW͍ãõwÑ¿¿Ô¿ñ¬ÿ!¼/Ø(¦³þ׫JQQá¯ìÿ¹2þg¡àü‚¡úUÓYÿõ®S™ [þ76ÏLf]Ôîó¿ã¿\Í¿ÙÄÇ@ÿ/óÿdñ»Ì»·Ñ>ÿõk8þ#ˆÅþÌ9€Zdúñ Äw‚é¦Üî—±fÇwÚH_ÿ9×ÿ0pþ¯™þ÷ß6}ŽÿærþWÿŽúGðiµü²\ÌÙ(E¦ÿºWç6ÒÇ[ä\ÿ‡`©|ÕÈô?[ß/¶‹ÕìÛá e9 ]ÿî2ÿýÿ‚g áúß}¹]̧Õº ÒÇÿ<3œÿC ÿG72ýÿ£ü¶›®¿LËÝn=[
 –ûå¯Ëý·ï¶‘>þÇZŒÔ?Ã@57ÿå¦­öõ¿†ÿ?ú Àý¿Z‘éõôøy±3€ÝbߪŠöñ?oè?dÔ?‚˜ÿ§öõ"цð±þYüûö]îÿ°œÿt©F¦€ÿ‹ú‡@ÿ—ndúïÙÿÕxÿ³ÁRÿ>”û’]€^dúø¿¸þã¿ndúø¿èÿ„@ÿ—n„ëÃû¿¸ÿíº‘é¿oÿWcýÏú?!pÿ‡nnÿ‡òQÿŽùWú¿”"Óßþ¯Ëü¿ÌÿaÈ
-g š‘èß ü_¬ÿA€ÿ‹û Ðÿ¥™þþ/ê󿺑é¿ïú_ÍñŸçÿaø¸Úí·O³Ø{³'PˆLÿ ÿó¿8þëF¦€ÿ‹ùôéF¸þ7¼ÿ‹þOôéF¦€ÿ‹õ?!0û«››Çÿ¡ü_Ô?„cþ•þ/¥Èôðqýý_ºé¨ÿÔ#ψ
-ïîÿ
-¿TWù‚þ/ãÿrþ{zÉñ·ÕïsÆAzü÷÷ÛE9Ÿî–Ÿ«Ûu×å–¤Íÿcü½7<ÿÂóŒ“ ¤ëÿÅû·)g_Ë»Åt9oi#mý/ê?·<ÿóÿºI×ÿl½í ùSÒõoYÿþt#ÔÂì_4ÿ7ë¿A8F`Æn@'7¿ÿw0 	æÿžçÿbàê¿nnÿ»Øÿóµþcýö½c ˜Îú_¯¢Õ_ÔFTxHÿ³Ppþëºé¬ÿƒÿGÔF·üo¢í?³.ê?·ÌÿBHŒÿñüÇ´6ùÿ‚ñÇ ‹ßõBcýŸþ_ñüOV Ò‹LÿCÖÿ	‡ú?\ÿƒÀù¿ndúï»þÏåüõÿP|Z-¿,söJ‘éÈú?µþÏõÌÿéF¦ÿ!ëÿÔù¿Óÿõt#\ÿ°þO­ÿ¸$Hýàø¯™þû®ÿs9þ¸ÿ‚a0ÕÜ<þ÷^ÿ'êÿÐÿá¾(E¦ÿ¾ëÿä
-ýç¬ÿ!æÿ©}½HôŸ!ü_Žþ/²øyþÛ1ÿËùžÿ¦™þþ/êý_º‘é¿gÿWãýÏKýCøPîKvz‘éàÿâúŽÿº‘éàÿ¢ÿý_º®ÿ
-ïÿâþOôéF¦ÿ!Ï;ø¿xþê_77ÿù¿èÿÆðœ€e7 ™þ‡<ÿíèÿâú?žÿ¦‰þ
-ÂÿåéÿB ‹?ÀÿÅý?èÿҍLÿ ÿõù_ÝÈôßwý¯æøÏóÿ0|\íöÛ§Yì½Ù(D¦€ÿ‹ù_ÿu#Ó?ÀÿÅüú¿t#\ÿÞÿEÿ'ft#Ó?ÀÿÅúŸ¨ÝÜ<þåÿ¢þ!<'`Ù
-èD¦€ÿ‹ëÿèÿÒMGý粓?D…w÷¿TWù‚ç?Bèÿ—óßÓÛHŽ¿5.öÿŒÿð¤Ç¿]”óénù¹º]w]nIÚü?Æß{ËúŽë/':I×ÿ‹÷oSξ–w‹érÞÒFÚú_Ôn-×ÿ!pö¯›týÏÖÛš?%]ÿ6æÿ!Ðÿ£¡þfÿ¢ù¿aý‡ 8Îÿ•róû`þïéÿÐSøª¹qüïbÿKÌÿÕú7žù?þ={ ÍtÖÿz­þ¢6¢ÂCÒøŸ…‚ó|ÿ×Mgýü?¢6ºå³`óÌdÖEýç.cþAbüç?¦µ!ÈÿŽù²ø÷]ÿ'4Öÿyþ†xþ'+ éE¦ÿ!ëÿ‡ú?\ÿƒÀù¿ndúï»þÏåü¯ÿ-õàÓjùe¹˜³PŠLÿCÖÿ©õ_pÿ
 úÿt#Óÿõêü_ôÿC`ýÝ×ÿ¬ÿSë?3œÿC`ö_72ý÷]ÿçrü6pÿØhææñ¿÷ú?µÿ?ú ç_ôÿ+E¦ÿ¾ëÿä
-ý³þ†˜ÿ§öõ"ÑðÙ‚þ/²øyþÛ!ÿËùžÿ¦™þþ/êý_º‘é¿gÿWãýÏKýCøPîKvz‘éxÿ—çúŽÿº‘éàÿ¢ÿý_º®ÿ
-ïÿâþOôéF¦ÿ!Ï;ú¿èÿ„Àýº¹yüÊÿEýC8ö¿ô)E¦ÿ!Ï;ú¿¸þç¿éF¢ƒ¨ÿÅúodñø¿¸ÿý_º‘éàÿ¢þ!0ÿ«™þû®ÿÕÿyþ†«Ý~û4‹½7{…Èô¨ÿÅü/Žÿº‘éàÿbþý_º®ÿ
-ïÿ¢ÿý_º‘éàÿbýOÌþêææñ(ÿõáØÿÒÿ¥™þþ/®ÿC ÿK7]ôÃÑ¿5íú?­ÿâùŸÏÿн7\PLÇñßÉNþ=ÞÝÿYéß¾°ô"èÿýz³~Xß}<iñ¯ý¿Î³þ#„ôøïï·‹r>Ý-?W·ë®Ë-¼ÿ{ËõÇŒ9ÐIºþ_¼¿›röµ¼[L—ó–6ù?k¹þþݤë¶ÞvÐü)éú·!pÿ'ê_7Bý'ÌþEó“ÑÿၻÜüþßÁ (˜ÿ{ÖÀà(|ÕÜ8þw±ÿ
-òÿ¹q¬ÿÁ¾g ™Îú¿Á:ÿuþ?\ÿ‡À÷ÝtÖÿÁÿ'j£[þ7uÙgë¢þs˜ÿEÿãù¯imòÿ<ÿ„,þ}×ÿ
-Íú_ã?‚xþ/+€éE¦žÿøVàü_72ý÷]ÿëÂÿÇ®ÿAø´Z~Y.æì”"Óÿõ¿ÂáüGÎÿ!p÷ŸndúçùoÖÿҍpýç?¾˜ý׍Lÿ}×ÿºÿYÿ…	ì 4sóøÏójŽàþ_¥Èôßwý¯œõ¿þEÄü?µ¯‰þ³Aý_áàÿòô!ÅÈóù_®ÿBàùº‘éHÿW8ø¿¨ôéF¦ÿžý_ú¯6°þ†å¾d ™þþ/ú¿!pü׍LÿCú¿BíÿÊéÿ„@ÿ—n„ëú¿jýÇWê ý_º‘éÈóëõ?›sÿîÿÐÍÍãïþ¯Pû?2êÂ1ô)E¦ÿ!Ï<èŸù?<ÿQ7ý„ÿ+§ÿ,þ ÿýÿèÿҍLÿ ÿõù_ÝÈôßwý¯æøo©W»ýöi{oö
-‘éàÿbþÇÝÈôð1ÿþ/Ý×ÿ†÷Ñÿ	þ/ÝÈô?¼ÿ+°þfusóø?ÿ‹õ?1#@ÿ—Rdúø¿¸þþ/ÝtÔÿrþ <üó‰ÿ«êèÿ‚ÿÙÓv»Xí§óíò×Ŷ{íó¿Ë÷?g
-÷ÿC(g›å4F—£€J$ú¿[Wò_­·ÓíºSíó¿Ëú?ÞêÂãbõDé륋þ7ÛŮҽ¸týgÿAdïMNýë¥ãøo¼øí/ñýÏW_¯®òßÿtÿ~½Y?¬ï¾¥?Éñ¯zë‚øïï·‹r>Ý-?W÷ë®Ã=IÊÿÔñ÷¾ ÿB›ê?Ît"ÐÿËæ¯M9ûZÞ-¦Ëùëm´Ïÿí…þs[Ðÿ	¡ ðU#Ðÿl½m×ü)éú·…§ÿ~ÝHõß}ö/šÿÖÿÅoÿŒóµÜþþß¾¤}üw—óÿܱþÃý_ª¹uüïgÿWh¼ÿ®ÿA0ž	@Ít×ÿz÷zKÚ¨žôþŸžó¬ÿ ›îú?l ‘´Ñ-ÿ››g&³.ê¿ÞÿÅüïð¤Æ¿Þ dÓƒôü¿¯„Œ? aü“
-À¦Ïÿm(¸ÿBÕᲬb„úO* ›žÿÁ1ÿóÝõŸT ¶=ÿטÿ…‚þŸVË/ËÅœ½€R„úO* ›>þ»¸@ý`õÝõŸT Vÿ/óXÿU7Òõ¿”°ýgú‡@ÿn„úO* ›®ÿà÷ÿ@0ú×Ìíã{Øöõ¿†ÿ?ú Ô±Éèÿ׊PÿI`ÛÇÿüRÿýÿbþŸÚ׋HÿÀÿeèÿB ŒÏþ/ßÈÿrþ‡çëF¨ÿÁý_–ú‡@ÿ—n„úï×ÿÕxÿ³¡ þ!|(÷%» ½õ?¼ÿ‹ë?8þëF¨ÿáý_ôB ÿK7Òõ¿Áý_Ô?ú¿t#ÔÏþ¯ÆúŸsÜÿû?tsûø?ÿ‹ú‡PÇ&£ÿK+Bý÷ìÿºÌÿû‚ù?<ÿ[7"ý€ÿËÒÿ…@ÿáý_Üÿþ/Ýõ?¼ÿ‹ú‡Àü¯n„úï¹þWsüçù>®vûíÓ,vÞì	"Ôÿðþ/Öÿ…Àñ_7Býïÿbþý_º‘®ÿ
-îÿ¢þ!Ðÿ¥¡þ‡÷±þfusûø?ÿ‹ú‡PÇ&£ÿK+Býïÿâú?ú¿tÓEÿ›õ.÷-:û7Ò®ÿ“ú.Äó?]Î÷ÿVM×ñ_tððÎþϨSø‚çÿBèÿýz³~Xß}<Éñ·Õï=㏠=þûûí¢œOãŒ`¹ºërK’Þÿëø{o¸ÿÂó,ç :I×ÿ‹õwSξ–w‹érÞÒFÒú­ÿÜZžÿºI×ÿl½í ùSÒõoC`ý7ôÿéF¨ÿ„Ù¿hþŸÑÿáÇn@'7¿ÿ÷âÿkÌÿ}ÎñÇÝÜ8þwPbþÿ Cÿ?†ì={ ÍtÖÿzwúˆÚˆ
-IãÆú ¨~ÝtÖÿÁþ'j£[þ76ÏLf]Ôn™ÿ…ÿãñ¯imòÿãAÿ¤ò_æÿ¡±þoXÿB<ÿ—Àô"ÓRù/Áú_ȹþ‡óÝÈôŸTþ«CþïrþWÿÜÿáÓjùe¹˜³PŠLÿIå¿$þŸÂsý¿º‘é?©üWZýŸCþ/äôÿC`ý/Ý×ÿRÊIü?qK0õ€ïÿº‘é?©ü—`ü6pÿØhææñ¿½ü—Äÿ2ú <OÀØèD¦ÿ¤ò_‚ú?>ä¬ÿ!æÿ©}½HôŸ!ü_<ÿ‚,þ}û¿.÷XÎÿ@ðüGÝÈô?¼ÿËSÿ¸þ«™þ{ö5Þÿl0Ô?„å¾d ™þþ/®ÿ@àø¯™þþ/ú?!Ðÿ¥áúßðþ/îÿ„Àñ_72ý÷íÿj¬ÿÙœþO4~èææñ(ÿõá¹f7 ™þûö]æÿ}`þÏԍDÿ©‡ÁE…'û¿ý_dñÞÿe¸ÿý_º‘éPÿ‹ú‡Àõ_ÝÈôßwý¯æøÏóÿ0|\íöÛ§Yì½Ù(D¦€ÿ‹ù_ÿu#Ó?ÀÿÅüú¿t#\ÿÞÿEÿ'Žÿº‘éàÿbýOÌþêææñ(ÿõá¹f7 ™þ‡÷1ÿ‡þ/ÝtÔ¿—üy *¼»ÿ«ø¥ºÊ<ÿBçø¿œÿžÞFrü­q±ÿgü‡'=þûûí¢œOwËÏÕíºërKÒæÿ1þÞ[Ö€p@ÆI€NÒõÿâýÛ”³¯åÝbºœ·´‘¶þõŸ[Ëõœýë&]ÿ³õ¶ƒæOI׿
-ùøu#ÔÂì_4ÿ7¬ÿ‚á Çn@)7¿ÿw0 	æÿžþ?´ÿ鿯ñ¿‹ý/1ÿWëßxæÿ ø÷9{ ÅtÖÿz­þ¢6¢ÂCÒøŸ…‚óôÿ꦳þþQÝò¿Y°yf2ë¢þs[0ÿ‹ 1þÇóÓÚäÿÇü?Yüû®ÿëÿ<ÿC<ÿ“€ô"ÓÿõŠCý®ÿAàü_72ý÷]ÿçrþgƒ5Ô?‚O«å—åbÎ^@)2ýYÿ§ÖÁý?èÿӍLÿCÖÿ©ó!Ðÿõt#\ÿ°þO­ÿh	¤þPþº‘é¿ïú?—㰁û ˜À@37ÿ½×ÿ©ýÿÁÐÿáy–½€Ndúï»þOÞÐ?ëÿaˆùj_/ýg ÿ—
-ô!ÅÈóߎþ/Îÿ ðü7ÝÈôðQÿèÿҍLÿ=û¿ï6Xê‡r_²ЋLÿÃû¿<
 × pü׍Lÿ ÿýŸèÿҍpýopÿWÆýŸ(ÝÈô?äùoGÿýŸ¸ÿC77ÿCù¿¨Ç Ðÿ¥™þ‡<ÿíèÿâú?žÿ¦‰þ
-ÂÿÅúodñø¿¸ÿý_º‘éàÿ¢þ!0ÿ«™þû®ÿÕÿyþ†«Ý~û4‹½7{…Èôð1ÿã¿ndúø¿˜ÿ@ÿ—n„ëÃ×ÿ¢ÿ寙þþ/Öÿ„Àì¯nnÿ‡òQÿŽ ÿK)2ýü_\ÿ‡@ÿ—n:êߤžùxJTxgÿ—¯¾^]åsú¿tÿËðÉm$ÇßÏbü‡GÿýývQΧ»åçê~Ýu¸'Ióÿ:þÞóüo‡ÙÆù¿Rú1ÿmÊÙ×òn1]Î_o#iý¯Önžÿ	åÿu#Ðÿl½m×ü)éú·…cý'øu#Õ÷Ù¿hþo¸þ‡!Þ~Çù¿Znÿow µÿîrþŸ[ú!pù_7·ŽÿýøÿBãýŸç?`0ö½qìÔÒ]ÿëUôúKÚ¨žôþŸžóÜÿ£›îú?€$mtËÿf¡¶ý[õ2žÿ!5þÇ “ÚHÏÿÛêÆ0þI€Òçÿ6Üÿ!žÿÉ
- at zê?© Pzþ/ËüÎÿu#ÔR öü_cþ
-îÿðiµü²\ÌÙ(E¨ÿ¤@éã¿Ë,ë@`úO7Bý' äÿÇüÖÿэtý/¥ @ÿY þ!Ðÿ£¡þ“
- ¥ë?8Çý?7 ©æöñ¿½ Pûú_Ãÿý?˯ôÿkE¨ÿ¤@íã~©ÿ‚þ1ÿOíëE¤ÿlhÿ—)
-žÿAÿžý_¾‘ÿåüÏӍPÿÃû¿¨ôéF¨ÿ~ý_÷?
-ê‡r_²ЋPÿƒû¿× pü׍PÿÃû¿èÿ„@ÿ—n¤ëƒû¿¨ôéF¨ÿžý_õ?ç¸ÿ寛ÛÇÿü_Ô?„úögôiE¨ÿžý_—ù_0ÿ‡ç¿éF¤¨ÿ•Ñÿ…@ÿáý_Üÿþ/Ýõ?¼ÿ‹ú‡Àü¯n„úï¹þWsüçù>®vûíÓ,vÞì	"Ôÿðõ¿XÿÇÝõ?¼ÿ‹ùôéFºþ7¸ÿ‹ú‡Àôn„úÞÿÅú(ÝÜ>þäÿ¢þ!Ô·?£ÿK+Býïÿâú?ú¿tÓUÿNtò灨ð$ÿWu•çùŸºÇÿåü÷ä6’ão·–ñG ˆÿþ~»(çÓÝòsu¿î:ÜÁüß³þ†zõ…óµôÿâýÛ”³¯åÝbºœ¿ÞFúú_nžÿ	åÿu#Ðÿl½m×ü)éú·…cý'ôÿèFªÿî³Ñüßä\ÿƒP»/8ÿWËíïÿí öñ¿áÿÉý¿Œ£ò5sëøßÁþ×Aÿ¡ñþo¸þÁØ÷ìÓ]ÿëU´úKÚ¨žôþŸžó|ÿ×Mwýü?’6ºå³`óÌdÖEý‡ŒçAHÿñüǤ6Òóÿ6	Œ? aü{®ÿs9ÿ·¡`ýgñüOV Ò‹PÿÃ×ÿaþçÿºê¿çú?ù_(¸ÿ§ÕòËr1g/ ¡þ‡¯ÿÃýÿ¸ûG7Bý_ÿ‡ù?¬ÿ£éúßàõ¨LþëF¨ÿžëÿ\ê?8Çý?7 ©æöñ ú?ôÿ@¨W_2úÿµ"ÔÏõòFýúÿ1Äü?µ¯‘þ3žÿöVƟ翽xþ›n„úçùooú¿t#Ô¿þ¯ÆûÏCñ¡Ü—ìô"Ô?Ï{#pü׍Pÿ<ÿí@ÿ—n¤ë<ÿím@ÿ—n„úçùooîÿÐÍíã?Ïû™©{ߌþ/­õÏóßÞ<ÿM7"ý€ÿËÐÿ…@ÿáý_Üÿþ/Ýõ?¼ÿ‹ú‡Àü¯n„úï¹þWsüçù>®vûíÓ,vÞì	"Ôÿðþ/Öÿ…Àñ_7Býïÿbþý_º‘®ÿ
-îÿ¢þ!Ðÿ¥¡þ‡÷±þfusûø?ÿ‹ú‡P÷¾ý_Zêxÿ×ÿ!Ðÿ¥›ŽúO¬øuNTxÒùŸ¦ðõ¿ tŽÿËñïémt‹ÿ±ÿw¡êÿãïéñßßoå|º[~®n×]—[’4ÿ¯ã。ÿÂs8	ÐIºþ_¬›röµ¼[L—ó–6’ÖÿjýçÖðüO|ñ×MºþgëmÍŸ
 ’®ë?A þu#ÔÂì_4ÿÏèÿÅpŒ ] J¹ùý¿ÿOcþïsŽÿ8þëæÆñ¿ƒúóýú1dï¹ô§™Îú?¤ÿEm$çÿl–[æ $Æÿxü[Z‚ü_ÁøcÅ?©üG‡ñ?4Öÿë¿Bˆçÿ±ˆ^dúO*ÿ!xÿ9ßÿ1pö¯™þ“ÊtXÿ¿œÿUã?ýÿ>­–_–‹9{¥ÈôŸTþC’ÿ/<×ÿ Ðý¯™þ“ʤíÿ?¬ÿW/ Ô?ÖÿЍpý/¥ü‡$ÿS‚Ô? æÿu#ÓRùÁølNÿ?Øhææñ¿½ü‡Äÿ2ú!<G€½€NdúO*ÿÑaüÏúÏYÿBÌÿSûz‘è?µHTx²ÿ‹ç?AÅ¿oÿ×¥ÿÛrþ‚ç?éF¦ÿáý_žú‡À?ÝÈôß³ÿ«ñþgƒ¡þ!|(÷%» ½ÈôðqýÇÝÈôðÑÿ	þ/Ý×ÿ†÷qÿ'ú¿t#Óßþ¯ÆúŸÍéÿ„Àýº¹yüÊÿEýCxŽ »Èôß·ÿë2ÿïóxþ“n$ú7ÿ—¥ÿ,þ ÿ÷ÿ@ ÿK72ýü_Ô?¾øéF¦ÿ¾ë5Çžÿ…áãj·ß>ÍbïÍž@!2ýü_ÌÿBàø¯™þþ/æ Ðÿ¥áúßðþ/ú?!Ðÿ¥™þþ/Öÿ„Àì¯nnÿ‡òQÿž#Àn@'2ýü_\ÿ‡@ÿ—n:ê,;ùó@TxwÿWñK}UFÿ‚Îñ9ÿ9½äø[ãâú/ã?<éñßßoåüåðm¤Íÿcü½·ôC8ÜÿŒË€JI×ÿ‹÷oSξ–w‹érÞÒFÚú_ÔnÏÿ„ÀôŸnÒõ?[o;hþ”týÛP°þüºê?aö/šÿîÿÁPßÇù¿Vn~ÿï` Ìÿ}àøaLá«æÆñ¿‹ý/1ÿWë?~™ú0~?a ˜Îú_¯¢Õ_ÔFTxHÿ³PpþÆÝtÖÿÁÿ#j£[þ76ÏLf]Ôîó¿ã<ÿ1­
-Aþ¿pÌÿCÅ¿ïú?¡±þo¹ÿB<ÿ“€ô"ÓÿõŠºþ×ÿ0pþ¯™þû®ÿs9ÿ‹ ©ŸVË/ËÅœ½€Rdú²þO­ÿ‚õ?0p÷ndú²þOÿþ¬ÿ£áú߀õjýg†óôÿèF¦ÿ¾ëÿ\ŽÿÁÜÿÁv š¹yüï½þOíÿgýoÇõWúÿ•"Óßõò†þëCˆùj_/ýgÿσ ‹ÿç¿<ÿ
 ÏӍLÿÃû¿rêý_º‘é¿gÿWãý/. Sÿ>”û’]€^dúø¿¸þã¿ndúø¿èÿ„@ÿ—n„ëÃû¿¸ÿý_º‘éÈóßþ¯@ÿ'îÿÐÍÍãÿPþ/êÂáþÓÿ¥™þ‡<ÿí æÿ0ðü7ÝHôoþ/Öƒ ‹ÿðþ/Ëý?èÿҍLÿ€ú_Ô?æu#Óßõ¿šã?ÏÿÃðqµÛoŸf±÷fO ™þþ/æ!pü׍Lÿ ÿó?èÿҍpýoxÿýŸèÿҍLÿ ÿëB`öW77ÿCù¿¨‡ûOÿ—VdúÞÿÅüú¿tÓQÿÙÉŸ¢Â“ü_ñ*Cÿ‚Îñ9ÿ=½äø[ãªË éñßßoå|º[~®n×]—["˜ÿ{ÖÁpX~áü_+éúñþmÊÙ×òn1]Î[Ú¬ÿ[Çó?!0ý§›týÏÖÛš?%]ÿ6¬ÿþÝõŸ0ûÍÿáú„úþ;Îÿµróû`þïyþ†	…¯šÇÿ.ö?Aþ/7žþ_ã÷ì4ÓYÿëU´ú‹Úˆ
-IãVdœÿCàû¿n:ëÿàÿµÑ-ÿ›…hûϬ‹úϝgþAbüç?¦µ!ÈÿŽù²ø÷]ÿ'4ëÿpÿ„xþ'+ éE¦@ý®ÿAàü_72ý÷]ÿçrþ7 Rÿ>­–_–‹9{¥Èô¨ÿÃõÜý£™þõèÿ‡Àú?º®ÿ
-_ÿ‡óÌþëF¦ÿ¾ëÿ\ŽÿÁÜÿÁv š¹yü¨þÏÿÀp˜~Ñÿ¯™þû®ÿ“7ëÿ°þ7„˜ÿ§öõ"ÑÆóßÞ²øóü··ÏӍLÿ<ÿí­@ÿ—ndúïÙÿÕxÿãùo(>”û’]€^dúçùooŽÿº‘éŸç¿½èÿҍpýç¿½èÿҍLÿ<ÿí­Àýº¹yüçùo?5‡î—þ/­ÈôÏóßÞ
-<ÿM7ý„ÿ‹õß Èâðqÿú¿t#Ó?ÀÿEýC`þW72ý÷]ÿ«9þóü?W»ýöi{oö
-‘éàÿbþÇÝÈôð1ÿþ/Ý×ÿ†÷Ñÿ	þ/ÝÈôð±þ'fusóø?”ÿ‹ú‡pè~éÿÒŠLÿ ÿ×ÿ!Ðÿ¥›Žú7¹ìèÏš¨ðÎþ/_}½ºªºŒþ/ Ýãÿr |rÉñ·Æ[úÿ â¿¿ß.Êùt·ü\ݯ»÷$iþ_Çßû‚ëÿâígœÿkE ÿóߦœ}-ïÓåüõ6’Öÿjýç.ãþ…¯þgëm»æOI׿-<ßÿ!Ðÿ£©þ»ÏþEó“sýB¼ý3ÎÿÕrûû»¨}üw—óÿÜYêÉ©|ÍÜ:þ÷ãÿ—ú·¬ÿ‚Áø÷ìÓ]ÿëUôúKÚ¨žôþŸžó|ÿ×Mwý@’6ºå³mÿ™uQÿÁæ¤Æÿx dRéù-aŒ? aü“
- ¥Ïÿm(xþ„xþ'+ éE¨ÿ¤@éù¿Àú 8ÿ׍PÿI€Úóù_(¸ÿ§ÕòËr1g/ ¡þ“
- ¥ÿ.³¬ÿ»t#ÔR Aþ¿pÌÿA`ýÝH×ÿR
- 	ôŸ±þ&ÿu#ÔR týç¹ÿ‚	Ô¿fnÿÛ µ¯ÿ5üÿõ¿0ÄÛÏý¿zê?© PûøŸ_ê¿ ÿCÌÿSûzé?ø¿,ý_„ñïÙÿåù_Îÿ0ðü7Ýõ?¸ÿËRÿèÿҍPÿýú¿ï6Ô?„å¾d ¡þ‡÷qýÇÝõ?¼ÿ‹þOôéFºþ7¸ÿ‹ú‡@ÿ—n„úïÙÿÕXÿsŽû¿ pÿ‡nnÿòQÿâí§ÿK/Bý÷ìÿºÌÿû‚ù?<ÿM7"ý€ÿËÑÿ…@ÿÁý_÷ÿ@ ÿK7Bý_ÿ‹ú‡Àü¯n„úï¹þWcü/xþ†«Ý~û4‹7{…õ?¼ÿ‹õ!pü׍PÿÃû¿˜ÿ@ÿ—n¤ëƒû¿¨ôéF¨ÿáý_¬ÿÙ_ÝÜ>þäÿ¢þ!ÄÛOÿ—^„úÜÿÅüú¿tÓUÿ‰–¯3¢Â“ü_ÕUžç?Bèÿ—óß“ÛHŽ¿5ÞfŒ?Aü÷÷ÛE9Ÿî–Ÿ«ûu×ážæÿ¾`ýÙñ€“ ôÿâýÛ”³¯åÝbºœ¿ÞFúú_nîÿ†ÀåÝô?[oÛ5Jºþ-óÿ èÿэTÿÝgÿ¢ù¿ÉéÿƒPßÿçÿZ¹ýý¿Ý Ô>þ7ü?¹eþ‚á@5·Žÿìôïÿ†ëLöž]€bºë½ŠVIµÂ“Þÿ³ÂsþÚ×Mwýü?’6ºå³`óÌč•þC–3ÿ‹ 5þÇó“ÚHÏÿÛøWŒ? aü{®ÿs9ÿçùo(âùŸ¬ ¤¡þ‡?ÿù?œÿëF¨ÿžëÿ4æ¡0Ô?‚O«å—åbÎ^@)Bý_ÿ‡û p÷n„ú¾þóXÿG7Òõ¿ÁëÿPÿ˜ü׍Pÿ=×ÿ¹Ôp<ÿƒ	Ô¿fnÿªÿCÿ„úþsÿ¯Z„úï¹þOÞ<ÿþ1ÿOíëE¤ÿlhÿ—)Š@ÿaü?ÿó?<ÿM7Býïÿ¢þ!pùW7Bý÷ëÿj¼ÿÙPPÿ>”û’]€^„úÜÿe¸þã¿n„úÞÿEÿ'ú¿t#]ÿÜÿEýC ÿK7Býþ÷AàþÝÜ>þäÿ¢þ!Ô÷Ÿþ/µõ?øùoÌÿaàùoºé?ñ0¸¨ðdÿWAÿaü‡÷qÿú¿t#Ôÿðþ/ê—u#ÔÏõ¿šã?ÏÿÃðqµÛoŸf±ófO ¡þ‡÷±þ/Žÿºêxÿó?èÿҍtýopÿõþ/Ýõ?¼ÿ‹õÿ 0û
 «›ÛÇÿü_Ô?„úþÓÿ¥¡þ‡÷qýý_ºéªÿÄ’_gD…wö¹â—xUnèÿBÐ=þ/ç¿'·‘ÿƒÿÏúÿ â¿¿ß.Êùt·ü\ݯ»÷D0ÿ÷<ÿÃaúÅù¿VúñþmÊÙ×òn1]Î_o#}ý/·¬ÿ„!§ðU#Ðÿl½m×ü)éú¯äÏ÷øu#Õ÷Ù¿hþor®ÿC¨ïÿŒó­Üþþßn jÿþŸÜæÔ?C嫿Öñ¿ƒý¯ƒþCãýßpý‚ÉÞÓ¨˜îú_¯¢Õ_ÒF­ð®ïÿ1ÿg³xõ€Ú×Mwýü?’6ºå³`óÌdÖEý‡Ì3ÿ‹ 5þÇó“ÚäÿYÿ„0þ=×ÿ¹œÿÛxþ„xþ'+ éE¨Öÿy#pþ¯¡þ{®ÿs9ÿ³¡àû?„O«å—åbÎ^@)Bý³þρ»t#Ô?ëÿ¼XÿG7Òõ?ÖÿyÐÿ£¡þ{®ÿs©ÿà÷ÿ@0ú×Ìíã?ëÿüÌÔ÷ŸûÕ"ÔÏõòfýúÿ!Äü?µ¯‘þ‹E…'Õÿ±6¾Ðÿ@ÿáÎ;ÄŸù_<ÿM7Býçÿªõ‚£þ!Ðÿ¥¡þûõ¾ÿÆÿ"£þ!|(÷%» ½õ?œÿ«Ö¿‹ÛÀ¨ ÿu#Ôÿpþ¯Zÿyá¸þþ/ÝH×ÿóôŸêý_ºê¸óßëÎqÿ7îÿÐÍíãÏþ¯Zÿžõ@Ò¯ôiE¨ÿáÎ;è¿`þÏӍHÿPÿ+Ðÿ…@ÿáü_Ïõ¿˜ÿ@ÿ—n„úÞÿÅý¿˜ÿՍPÿ=×ÿjø¿‹Œú‡ðqµÛoŸf±ófO ¡þ‡÷±þ'Žÿºêxÿó?èÿҍtýoðú_Ìÿ@ ÿK7Býïÿbý_Ìþêæöñ ú_\ÿƒpH¿Òÿ¥¡þ‡ó=×ÿbþý_ºé¢ÿ]%üùôq6ݬÿQ‰~WþOþîÞFTx÷óC\ÿ¯f Ô?üºé8þ¢ƒD…'Õÿ3…çù¯:ǿެÖwßBrü­q9ë?BHÿþ~»(çÓÝòóCÇi@Òûÿaÿ‡gý_‡ Œ9
-PJºþ_¬¿›röµ¼[L—ó–6Ò×ÿsk¹þÁQøªI×ÿl½í ùSÒõÏúÏ(èÿӍPÿ	³Ñüßd\ÿƒpÀŒó¥Üüþß‹ÿ¯1ÿ÷ôÿa((|ÕÜ8þwP¿¤þKn<óÿÂ{ö šé¬ÿõ*îôµ‘–ÿúÏBÁù?¾ÿ릳þö?QÝò¿Y°yfâÁ•
 þsg™ÿEÿãñ¯imòÿ…cþ‚,þIå¿:ÌÿCcýßòüoñü_V Ó‹LÿIå¿$ûÿr®ÿaàü_72ý'•ÿêÿkœÿXÿçÕòËr1g/ ™þ“ÊIü?EÎõÜý§™þ“ÊIêžÿ†õ¿t#\ÿK)ÿ%ñÿÄ’ÀÔ? fÿu#ÓRù/Áølàþ&°ÐÌÍã{ù/Ñù†þ‡ pÿ¯VdúO*ÿÕaüϛ翲þ„˜ÿ§öõ"цðú¿Èâß·ÿ«qþç xþ£ndúÞÿ•SÿèÿҍLÿ=û¿ïq˜úGð¡Ü—ìô"Ó?ÀÿÅõÿu#Ó?ÀÿEÿ'ú¿t#\ÿÞÿÅýŸèÿҍLÿ}û¿ë6Ðÿ	û?tsóø?”ÿ‹ú‡p ý_Z‘é¿oÿ×eþßæÿ0ðüGÝHôoþ/Öƒ ‹?ÀÿÅý?èÿҍLÿ ÿõù_ÝÈôßwý¯æøÏóÿ0|\íöÛ§Yì½Ù(D¦€ÿ‹ù_ÿu#Ó?ÀÿÅüú¿t#\ÿÞÿEÿ'ú¿t#Ó?ÀÿÅúŸ˜ýÕÍÍãÿPþ/êÂ! ôiE¦€ÿ‹ëÿèÿÒM›þWë¹ðÔÏÞÙÿ嫯›Pïÿ¦ÿkx:Å?þ¿TÓß	éñ/ŠØÿ3þÓÿj`EmÔñ/Š–ø;\î«ÿ­Ïÿvá—‘ý]Ï?ì5ÿ„øwXì½BÒü/êß—óý‚}ï8ÿSL‚þ«—¾²KzЦ“7ôŸ;æ!Ä Nï—û‘3Ù$3.LÞÕõ¸ÜíFÙá÷_ÖÛÅònUýq¹Ú/¶‹ò×Eýo¼OÞ=¬£8>"#c;6›¿[ïïÛã_Ž]0“*þìg~@ÒÆ'jC4ÿ+8ÿCÿÇÅãrõeÞFKÿo¬iÎÿÏÿ†ðî¯u=úËâñïë}ùðûQÍØÇ!¾þñä‚?m‹ã×GckÃÄÙó>íóçF&˜P„“þ0Û/}ù€x…/ƧM|\•ç—TEÈN.ø°Ü|@Íéÿw»Ü/>—³¯¿ÿÎZ>,þ³¼[ìž/°¹5§ßä_ÊÍæä‡8þ$§?Åj½:û„Ѩþä‚øÅ¿—ŸN®0Ùé÷ð×?ýmúiU=vÕ5/—œ^ðÇõÓj¶¸ø9¯þ˜Ü\ý„¿=”ŸÏÿ½7gÑüÛÿYÌÊåã?¿‡J§?Åß>­¶‡K^îT8û1ÿãéîp'§'ÏMÖüêÉCså«{Ún^¾ú¯Ö‚Fúÿyõò_Vfr­ïÿ.
 »ìÿ=ëÿa°YÕ;ìåÿQ‹JH›ÿw0{\¡Uÿ§þƒþ
-×ÿ0#0£àuÒIÿëUÜæ!n#}ý?39ßÿ dïé ×Lçñ?õзDùÿÀü?‚„øcó¿Ìÿ@ÈÞs°fô?`þ·ñþ—sýÃKþ7ŸäULŒIKÿúÓô¯
-ŸÛfÍÃĸ1;™“ýCó¬ÿƒá’É®äÿB‘ý3ß“]æÿÂx’‡Âž_pšÿ3~b2wzÁeþÏûà&§\æÿ¬·ãI8¹ %ÿ—µåÿ²Fþ/Œ«îé´‰fþ/Ïìøô§häÿ|õŸ\ÐÌÿsö	-ù¿¬-ÿ—µåÿ²Fþ/Ÿ¸±=»à"ÿ—ÇÖŸ]ÐÈÿåùøô‚×òÙ«ù¿Œù¿‡´÷?#jCäÿñôÿ Hˆ?6ÿËú_®%™ÿÕCZÿ/S¤¨ÿwìÿ¤Å˜ÿçú/„瘾N:ë¿Àæÿbý'æÿ†'!þæÿBcýõ¿0ÿÞäìüÕ’ ÿáòþJþç¿AxÉÿù¼
-Î8)û7q§Ù¿*ÂkNs¹Íi.ûÁIÿ—´!xÿ/,÷BHˆ?vÿ'û‡”\Ѷÿ³hîÿô“bìÏ/8ßÿébNñ䂯þÏ‘ÉO6ˆÍýŸ#;ÎíÉ-ùߢ-ÿ[4÷ŽÜäì{¸¶ÿӝ^peÿ§?û&¯ìÿOïdKþ·hËÿmùßâÊþO›™ÓŸ¢¹ÿsä'g4ò¿&·§M¼–ÿ-^ÍÿÌÿþ8$ôÿÐü_aØÿ#¸–üjQió\þ‡û¿1ÄÛ?«þ£àu’øþ/JÉHÞÿ£ÿŸïÿÃÓ)þ›õn·¬Þ„m´çûóŒùÜÿ«›Nú¿/wñ¬iý»Œë¨Ýtžÿy°ÿÇÒÿƒ !þÐýÿû!ŒßOØÿ+&Aÿú\ÓÿCÿ„ÿ‰‡.³ÏÌYõw¬õÙ™Èy®,þÐ$èëÿàú?„CJÞ·ù?|Óÿá|°œû?r79Ù1î¯ø?òŸ^Ьÿmó³&Zü¾Íÿá›þøªqzÁ5ÿÇøô{¸âÿÈÏnÔµúß'|›ÿ÷ù?|›ÿÃ_ñ¸¼8ý®ÔÿžœØ\ü5ÿG8»à5ÿ‡ÕÿáéÿøqHèÿ±û¿¹þáÜöÁýßÚH[ÿú?¸þáØÿRðJIÓÿXÔ†Àÿ<÷@H‹ÿDÔ†$þ9ý?:Ç?çÿóâÝÿÏõ?&{oX\/	ú0ÿW4òžõÿ ¼äÿ¬wc7ž›–,Î
-€ÇÏp!wç9ÀŒƒ–ýcóôC8¤dò¶ü_~eÿwp'™³¼™ÿóÖúÓOhæÿœ?» ¹ÿÛÙñi-ù¿¼-ÿ—_ÙÿŠì째’ÿùÓŸ¢™ÿùÓO¸¶ÿûìZòy[þ/oËÿå×ò§Ù»üjþ/;ý&¯äÿŠ“jîù«ù¿üÕü_ÎüߏCBÿÍÿñüßÌÿ©"mý˜ÿcýõýŸ1ÿ§•4ýÑ ‚üOa-ó?ã/ê’Eñ7Œ?‚Îñ·àü_Æü‚„øWú—ED ÿàÙÿCH‹?ðügú!ø÷¬þ®™ýcë¿óýÂKþ·E‘ùN.‚õÕœg~¹®ðƒ“ lþ—ú‡pHÉÙ¶ü¯½²ÿs\Åôü‚‹ýŸ™	§4ó¿g¹W{%ÿN+ˆÛ¶ü¯mËÿÚ+û?³ü¬‰kùßpzšùߪ—;mâJþ7œsmÛò¿¶-ÿkÛò¿¶-ÿk¯åÃøôǼ’ÿøÓ^ËÿÚWó¿–ù߇´÷?Ññ²÷®ÿAHˆ?6ÿOÿ„ÆÎ_æÿU‘ÖÿÏÿåú„瘂×IgýpþÏ3ÿ‡ !þØýœÿA0ö½ááïzIÐÿpùŸœçÿþ«øgþÇe…&©¨›„³ÐxRÅù4TØÉÄMlìb~LôÍÿ°þ/„Ã’|hËÿ„+ûÿªÞ"œ_p±ÿ/?Ý1®ä¼;ɽ„+ùŸÂœ]Ð’ÿ	mùŸp%ÿc²³oòêþ¿ÓO¸vþ«9ý„kûÿ&§´äB[þ'´åµó_sw¬+ùŸÌž†ûÚù¯gÏÃkùŸðjþ'0ÿóãöþg¬¤
-Aþ§°žù	ñÇžÿËú®þËüû'iCÔÿçìÿ¤Å¸ÿ—õŸ †_útµÒYÿœÿ3Ìÿ!HˆÕÿQ‚ñ?x¾ÿAH‹?pÿëÿ@<ÿW5	ú0ÿÛÐ?ó¿ Nê¿æÎă×Óò¿ùÙ	ÖV#xìi
-¸úË¢È&aÌ~æ$AÿØü/ßÿ!Rr®-ÿë®ìÿËÆ'CÝ•ýÅùÍüïøtK™»rþ£1'§º¶ü¯kËÿº+ù__œd±Ýµü¯ÉO/hæsçN/¸¶ÿÏŸ~-ù_×–ÿumù_wmÿŸ=û)®ä]~z«¯íÿ;‹ækù_÷jþ×1ÿûãÐÿc÷ÑÿáÚáÌÿé!mý¸ÿ‹ë?˜QðJIÓ!jC´þÏü?„Nñ¿/wÓÕzûX>Lëí·´6Ò×ÿ­+ØÿCȸþ¯š†þ«wþÝNžë¿FÇü°Á9ûãMÁó?!|'þóÇeÏ€ þ…çþo¯Ä9ïéHˆ¿¯†þ*þ¹ó¬ÿ
-áõø^—ÛùtU>¦/úÐ>ÿ+.â_8Ïõ?óã±q
-¨•.úÿµzò—ëïK£VýWš?Ó¿ÍŒáþµþß­7OûÅvôïëí†}&ºè¿ú‹Å~º/ï„m´ÿæRÿ®`ýgT»nºÿ«ùz+o#yü7Ea9þCøûÿûÃ_«aŸã?!„B!„B!„B!„BÈOÊÿH§â› È
- 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16amd64-8n2c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,89 +0,0 @@
-Machine (phys=0 total=67106960KB TYAN Computer Corp S4881 )
-  NUMANode #0 (phys=0 local=8386704KB total=8386704KB)
-    Socket #0 (phys=0)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (64KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (64KB)
-          Core #1 (phys=1)
-            PU #1 (phys=1)
-  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
-    Socket #1 (phys=1)
-      L2Cache #2 (1024KB)
-        L1Cache #2 (64KB)
-          Core #2 (phys=0)
-            PU #2 (phys=2)
-      L2Cache #3 (1024KB)
-        L1Cache #3 (64KB)
-          Core #3 (phys=1)
-            PU #3 (phys=3)
-  NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
-    Socket #2 (phys=2)
-      L2Cache #4 (1024KB)
-        L1Cache #4 (64KB)
-          Core #4 (phys=0)
-            PU #4 (phys=4)
-      L2Cache #5 (1024KB)
-        L1Cache #5 (64KB)
-          Core #5 (phys=1)
-            PU #5 (phys=5)
-  NUMANode #3 (phys=3 local=8388608KB total=8388608KB)
-    Socket #3 (phys=3)
-      L2Cache #6 (1024KB)
-        L1Cache #6 (64KB)
-          Core #6 (phys=0)
-            PU #6 (phys=6)
-      L2Cache #7 (1024KB)
-        L1Cache #7 (64KB)
-          Core #7 (phys=1)
-            PU #7 (phys=7)
-  NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
-    Socket #4 (phys=4)
-      L2Cache #8 (1024KB)
-        L1Cache #8 (64KB)
-          Core #8 (phys=0)
-            PU #8 (phys=8)
-      L2Cache #9 (1024KB)
-        L1Cache #9 (64KB)
-          Core #9 (phys=1)
-            PU #9 (phys=9)
-  NUMANode #5 (phys=5 local=8388608KB total=8388608KB)
-    Socket #5 (phys=5)
-      L2Cache #10 (1024KB)
-        L1Cache #10 (64KB)
-          Core #10 (phys=0)
-            PU #10 (phys=10)
-      L2Cache #11 (1024KB)
-        L1Cache #11 (64KB)
-          Core #11 (phys=1)
-            PU #11 (phys=11)
-  NUMANode #6 (phys=6 local=8388608KB total=8388608KB)
-    Socket #6 (phys=6)
-      L2Cache #12 (1024KB)
-        L1Cache #12 (64KB)
-          Core #12 (phys=0)
-            PU #12 (phys=12)
-      L2Cache #13 (1024KB)
-        L1Cache #13 (64KB)
-          Core #13 (phys=1)
-            PU #13 (phys=13)
-  NUMANode #7 (phys=7 local=8388608KB total=8388608KB)
-    Socket #7 (phys=7)
-      L2Cache #14 (1024KB)
-        L1Cache #14 (64KB)
-          Core #14 (phys=0)
-            PU #14 (phys=14)
-      L2Cache #15 (1024KB)
-        L1Cache #15 (64KB)
-          Core #15 (phys=1)
-            PU #15 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	8 NUMANodes (type #2)
-  depth 2:	8 Sockets (type #3)
-   depth 3:	16 Caches (type #4)
-    depth 4:	16 Caches (type #4)
-     depth 5:	16 Cores (type #5)
-      depth 6:	16 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,35 @@
+System (phys=0 total=2032544KB Backend=Linux) "Kerrighed"
+  Machine #0 (phys=2 local=1016272KB total=1016272KB)
+    Socket #0 (phys=1)
+      Core #0 (phys=0)
+        PU #0 (phys=16)
+        PU #1 (phys=20)
+      Core #1 (phys=1)
+        PU #2 (phys=17)
+        PU #3 (phys=21)
+      Core #2 (phys=2)
+        PU #4 (phys=18)
+        PU #5 (phys=22)
+      Core #3 (phys=3)
+        PU #6 (phys=19)
+        PU #7 (phys=23)
+  Machine #1 (phys=3 local=1016272KB total=1016272KB)
+    Socket #1 (phys=1)
+      Core #4 (phys=0)
+        PU #8 (phys=24)
+        PU #9 (phys=28)
+      Core #5 (phys=1)
+        PU #10 (phys=25)
+        PU #11 (phys=29)
+      Core #6 (phys=2)
+        PU #12 (phys=26)
+        PU #13 (phys=30)
+      Core #7 (phys=3)
+        PU #14 (phys=27)
+        PU #15 (phys=31)
+depth 0:	1 System (type #0)
+ depth 1:	2 Machines (type #1)
+  depth 2:	2 Sockets (type #3)
+   depth 3:	8 Cores (type #5)
+    depth 4:	16 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,35 @@
+BZh91AY&SYåë· C„ÿó@gÿôï€ÿïßð `?                 di“A“&LÐLš48ÈÓ&&ƒ&L&™! 4™40hq‘¦LML˜M2C at h
+2h`Ðã#L˜š™0šd†€ÐdÐÀ	 1ÆF™142a4È
+ 4É¡€@`© ‚4ž‘OI½CHhLSO&§£)Á÷¿í%¾’ÿSÒº­O|zá¤ú’SR¼‚OvžïÁðÅñðù.ËŠHÖHÒ-¥˜¶oYΖÒú±kùYRª’{R’p,¨JIBJH²¢Š•*Ie!h¤‡ðê
+üÁC°P? 4žàÈ4bè±bË,±bÏæ”]bÅ–,YbÅ’B…Pyƒù‚à 4€õ‚€èóýK[ô^¤“¤²IˆT©Q#ÐÒ\À.9D¥zÁ‘ì `À©@¼Ñv[5g,²Ë-a°(±©“SCSbóP9€1:ÄšÍ%Ô
+\Øqr{Z¹°ÕÍ«
+\uUÙl ô¤¤’'z!üARK=’ŒÃÎ`qHprpta9³Ù£FELÊ‘v¥’KLËIKÍ%¤&’é*Dý`Ü{eé‚¥Jnæ±víå7v˜6¢dÚzæeç7ÎŽFwF…#S‘d^lY	‰¡ÐF×FÒ‘ÄäYK8œK4š™—A¡™g²i,ÉÀ²N–0sn©ã0§#‰Èš›”Qƒc¤øƒÂ6›' 8€©¹³ƒ Á@©5›âÜ ò€:ƒÔæ ¸0à{Aö`vƒˆ<A@ }`þ È:‚Àà
+Ѓ«Ë¬:ºÌ^_LRº3™u¦o.½*Ò—Ë«¯uÞ
+c3Ò`?;Ì°`@È>ÐvåÁÜ æ äðdä‚àÐàôÔàÜ
+€óPwƒÌÀúA@Õ&í$£x­úéŒ^Ö¶C1‹ûáæ
+’m¥­ézòˆÒ|óóÂ༈ØT¨à²CU¨’	iA.ö—`ĹRŠ›H?LþéñNMéS?–q"GíàüI>Wù¿ü.üϧù
+‰>ä’§”©dvï20¤ÂKöžE^d©…—ÓÓ)¶5+Y¢Æš,S{\¼TÉèÒf`Á<Ýs4X¢­,™Ì¶ÕgpÔT‚š°
+ÍŒÌ2£3y1%I“ró먴Äô¬—Qg©iµCœÉ½Ái:¤´œN“‘yE&µ#‚ß¶çJ8
+KÍ8$çmx]½ÛqÍÕìYøX~@\Ë…7ÿÝû¾û|?vVýÖp⎏Åsb–”’ç‰Ñdhñò^¼A–èÛ‡
+l#Dp-,£SCÇtƒÃczy±ëÎÔ`±¥‡9N­öàÁ§«Ú¿&¶FË#9é5Ä–=ºÍ¬–4—;Ùà¹ÚR5Pݬ²ê3G)™Ü]–‡†\ÃBó\0ÔÕiÅQf¦ËŽe0úò“ó$髌ÔXp”á-%–3,Q“p<TjÌâÒi×,6-ïÕ¦`®®õË_6ŽîgnÓ”æ
+0ËM§N˜´ýê–4VVgÏÄ̑ƹƒ`P9¹Ô±cBÒTÞ5pß3poðz0iwFLLƦ%8´¹‹$¨o†Ï=õ;–#~jÝyW·V²ÎUÖ\4rQckÏ>ð=),ìI´W=#’¸™8”I¢M-9UeÊ_lKší¤Áºgc3
+­›Æ•ZØÉ®¦M­0Ô2¸-,ËE·ÈÐÊJQ„вl\s–‹7¾ªP(ši¢ÊÚ”VÓS„àk5ào7“%æÌ¶T¹ÂdÛ\Ü
+¹‰Ž°æ“lœI7—msyy¼Ñs†®ºáƒvfÉ1\ó8*E)Fæò¦0jj`Á†WQ“bQRFN’Íi‰vû3–¥©»ÐåÇ:M)'Hñ݇-8\´ÔÞ_4~Q0X¦Y\©©ÎTÐè
+Fèho0˜p›Ÿ 2º,¦Ë78›Üð³ É«V¨ÌÐñÃiÐ|NÍ'ϘTæm.àt6š;KÎûK ìc3 :›4c—¬´Ò)ŒÍ8>¿Cö*ÏŒYT^wK®û½KÞ×~•Õ*ªfRY¢ªLOí?|ÌúÜU_€ÑÅ`$ò} ñŸ4úX#ë“ ©Ù?ÒMgô›LÎùìÀi¬“¨>°Zvƒ g¶{Þœé¢t©õ§ûÍÉ¿þƒÙ;gÕ5OÙ*^T5ž‰yá<'“ì	™vÄîÝ=äÒq¤qîÜàÏ@<p0>¶f}³ y§âOX=SÀ€ò—I-8¤Àþ@à)€Xpw‚ÀÈ=é÷à:y„–N`þSÍ,™è“pj
+™ÙÖ’“ <Á¨@`³è²X9¤IyÉ9€(A@°(A :á2û&éºi>3p8‚3(ϦQ.PP3uh.P}`wH2H,êàØ wƒÞ
+åŠ÷N3ªvKËKNS˜8É8Ôž€tŸù)?æÑ34™‡@qÁ`P?ROrq|Ðåˆ7fÀêÀ@Ñ'Âj ~€LN°àñUT“@pyƒ ÷ƒ¼øg´°<ÒàÐ
+¤A¡=r
+”‡±'´Ô–0`ƒ´©	ppÊâ	 <¨.
+€Èj((E`rÁÔ`â›Ïã0“Dª·€vH5Aö§¬,é¨À^h’	û>gtÕÛY>@NàJPvÀ¼ˆüÓ̃TéÀd¤˜’8&& zAp; üé9$Ĥ©ý“pN ¼ò㝠ÔO`4žIdؐ:ÀîÏ, j
+’m iÄÙ9HAèI`l¼S²Ë?ù2
+ÁØ
+ s„¸Áڞ؞„©JMÁÔvPìIæ
+àN È3(wƒÜP>@d9l؃æAÞíšKBàðJ¸
+§¸°
+Á¨&A`\Ptª&'Ω%Q Ô
+æ
+ä@ Tƒ8$á8‚àÐàê
+Á 7ã8§Æâ
+Á÷'‰îœÁˆ7wΉ<Á€5iРvÀP(’i(³*`È
+€Ü€÷;Ñ%åâ
+@À% óèÁ€Piã Ù'¦nÑ4œÐʁùÀ'Ì“ óNô°3=R*	„ð˜à¸=ħ00`ÖwƒÈÀ zA¨0Ï0o*pIÈùý$— *uÍgäŸrO”½&€ðØP;7†€¸<@èà5Èù¸9‚ÒÀœØp$õ‰?ü]ÉáBC—®Ü
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,10 +0,0 @@
-‹ ³Ó9K í]]oÛÈÍëêWÌc´é|é§nRìfѦXÄÉî£@Qc™ˆø’rìüúÞ!%Ù²eÙîÚ´—>çÀ’5ßÃ{8$ÈËKa}nuûw™ëT¶ÿxóàgLøÎðî·Ðºû^ãRá„¶”/¤‘î
-3O2škX5mR3öf¶(ˬ8PÎ×Íb×þU]¦.‚Ø_[©ÈþJ;û}öO«UVœ”ÖG0°íí½ÇþÒ:}Ýþ†ôò†ñGÁ¼rûƒû¦)뎘°“3_ÌËzšÍéçϾ ø_ŠÖ/'¤	v’äÙò‚rì$/ç~ùý+×ÿ³"Éýe%ÖÕú˧¿²÷¿~a—ø'&§/ù6V?ø>iZ_UY±Mu|üð=´+LlßRÑIš¤§ž5Ù÷Ðz$bÉþýnR^4Yš,Y7P1i²ÙnÑ„"“´¬}È ¼k2$„,=Iª,ísh®Y‘µµ±NìÒNªUȽðMøwêÏS_µYY¬Óž1gKF“§òbò­Ú_&Ô?ý zì,÷lîYÕxÖ6)Ë›šU‰gyêYzu=²ÆW,okÊY„œ„¥yyFÅÚPMY–.O–«æ”ÍÛ†%i•±<?g'çÔTCÍÒŸ¤vÚ²6gÕŒR.Ú"dˆsVS´bËœ¦^¾‹v†‘Ôéé´òõI^¬ò³†Í¨íÚWÓEYÎYUP%m”²fófšVKšÇ9óMè"tFâáËÎÛŠŠÐ)IOEÿ%YUViѲerz2¥¾³y2™•‹2Ϫ°õMdíÛÈM6óZ›ÔêÞÄÓd™-ŠÜmŸ˜Ìçdµ¦+֏³YFÃݘþoLG}ÊYV·«d9©Êo¾fyR$Ú9šLvÔíÆ¦nq»º£=ꎠî'U·yëžQÝÑØÔ-oU·ä7ÕMiP÷xՏMÝêvuË=ê–P÷xÕMk×ÈÔ}à¼Ûí93qP÷S«;~>u‹±©ûÀyw¼GÝ1Ô=âµ[ŽMÝλŞ3uXÝjlê>pÞ­ö¨[AÝ#V·›ºq½ûE©ûY¯wK36uãz÷‹R÷ó®Ý£»W‰ëÝP÷VÝ£»W‰ëÝP÷VÝ£»W‰ëÝ/MÝÏx½{t÷*q½û¥©ûùÖn5º{•¸Þ
-uoÕ=º{•¸ÞýºÕ}—ÿ÷>ÿÿÜçúÿs¡LïÿOÿãlçÿoüÿ‡ÀGŸ.ÛdyÔ¯N’+i´f_ßM(ç§Úû£Í©
-9ïV''´1¶9ÌFŠV%Êyt<¿Ìˆ¹ˆ]Wçø[R]Ïe<äü˜¶ÙÙe7t„5Bv9¿ÉN^¤
 ¬âzÓÚ•a“t´Ž·ý\vȪËùí$W:'¬Gý{µ~–¤_¯æöc+ÊâWÚ™¶s„v]IUíÌE‰õv;^&³nœ¡	u9Ÿ|ºL²<™-ûñimu×Ïñ—¢îóÖ5ú~BïŸC…Ë!ÄýÖùïOÇÓ/amÛ´¶õ»rU¤~wª}Îv¦Ÿój·Îû2ϳö?}u³‘ÜÙè2§õóéÇ]q«ºÁ}X-|·y¦WŒÁ¯$_±ÄÕäOÍÙ|Oòñª®v’«L«_Ÿ¨y¼1¤O[2@´1¥ë6KY’–uVyîýì¥bßú_ÐéLóˆO>èù?Eå„¶Bàù¿!p»ýç|Ü×þá4!øéøo9ì?î²ÿc<zøüO(eÜöüÏ©pþç¤Àùß ÀóŸð‡yþ0xþê×µ<ÿ	˜W¢îÑÝS…?ԍç?áó
-üaFwOþ0/MÝxþþ0P7žÿ„?Ô}PÝÃ_`á¸ëþÏcøÝåÿ£¼¼ÿ#\¸ÿ#(	÷À5ÿÁ…•k—kþ?ZZ)£½þ?J‹Þ5㺇6<Ž¢‡ùÿîŒÝëÿ£E$ŒÜãÿ#¸‘RG{üBßú†\÷ÿYúþ?š»Þ›è†ÿ0®ßn7ü”s½ßÔ
-ÿ)•Üïÿ#Œîû¹éÿ£µ}zÿŸp~í9sÃÿ'æJtcû-§£K™®
-¡´2±S‘²îJæ—f½•¤Lo¢uÎûÓUñu]MÛØFjx—"Éõ5¿¡ÜzöÛÙy	®¤è½Æž{Ï}ܵþ“¾Ú?ÚÇáõ_
-ç®ûXÃ-Öÿ!ΆYð½¢£™ÑqDme³VP-DRÐNÍûËz´ïéèÔ˜–/Ë´ã–È„³ŠQ
-¹-FE¸¤bÔ2ýOå\hMj:(0‰m9êÏ:ºDL(¤¥\R¢–LhÁèø±)3G¿95ÒuìddX¦bÖñM)ZQi/eš†Ã£®˜£*ZuÍl‰pœ¡E)|õ£#Ò,ÄN)A(B}H)º±iiS”!£ÐŽ·eC´¥LL‹§êçk&¢˜…ytŲ¢­Ãá Š¹àq(Å–:,^w½Ââ\m~ȽE@AAAAAAAÁÿ—Òr»=‚I÷ã¬Î!Ö7¡9‹ƒÃçô!•e"ÒÑ¡.&i{ÞRcTC5™µY<–Úª×¾o˜Zòîw3­WE‘&Ö¿gË2ýêçÔÜÆÿç°ÿ—z†ø?¦ÿcÿgÜeÿAâÿØËø.¤'¹‚ÿßÀû°ÿçuÄÿÁû° îQ=ˆ÷a!þÏkQ÷èb·!þԍ÷a!þÏ+ˆÿ3ºØmˆÿóÒԍ÷a!þԍ÷a!þÔýÇÞ‡õÚp×ýŸÁãÿHÞÅÿ±÷† âÿ þâÿ þÏmëÿðñtÿG þÛ xxü©ïÿGšûÅÿ¡6îÿ‡z½OüŸè>ñâûÄÿQüþñÂ<ÿAAAAAAAAðOÊqÅÿyŸ¯«¸Ãÿ‹Æo/ý¿Tˆÿ£•ÓðÿxÿÛ€ïƒ÷¼ç@AAAAAAAGÈ?¯÷                          Àóá­ñ
-  
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-2m4c2t.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,35 +0,0 @@
-System (phys=0 total=2032544KB) "Kerrighed"
-  Machine #0 (phys=2 local=1016272KB total=1016272KB)
-    Socket #0 (phys=1)
-      Core #0 (phys=0)
-        PU #0 (phys=16)
-        PU #1 (phys=20)
-      Core #1 (phys=1)
-        PU #2 (phys=17)
-        PU #3 (phys=21)
-      Core #2 (phys=2)
-        PU #4 (phys=18)
-        PU #5 (phys=22)
-      Core #3 (phys=3)
-        PU #6 (phys=19)
-        PU #7 (phys=23)
-  Machine #1 (phys=3 local=1016272KB total=1016272KB)
-    Socket #1 (phys=1)
-      Core #4 (phys=0)
-        PU #8 (phys=24)
-        PU #9 (phys=28)
-      Core #5 (phys=1)
-        PU #10 (phys=25)
-        PU #11 (phys=29)
-      Core #6 (phys=2)
-        PU #12 (phys=26)
-        PU #13 (phys=30)
-      Core #7 (phys=3)
-        PU #14 (phys=27)
-        PU #15 (phys=31)
-depth 0:	1 System (type #0)
- depth 1:	2 Machines (type #1)
-  depth 2:	2 Sockets (type #3)
-   depth 3:	8 Cores (type #5)
-    depth 4:	16 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,53 @@
+Machine (phys=0 Backend=Linux)
+  Socket #0 (phys=0)
+    L3Cache #0 (4096KB line=64)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (16KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+            PU #1 (phys=8)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (16KB line=64)
+          Core #1 (phys=1)
+            PU #2 (phys=4)
+            PU #3 (phys=12)
+  Socket #1 (phys=1)
+    L3Cache #1 (4096KB line=64)
+      L2Cache #2 (1024KB line=64)
+        L1Cache #2 (16KB line=64)
+          Core #2 (phys=0)
+            PU #4 (phys=1)
+            PU #5 (phys=9)
+  Socket #2 (phys=3)
+    L3Cache #2 (4096KB line=64)
+      L2Cache #3 (1024KB line=64)
+        L1Cache #3 (16KB line=64)
+          Core #3 (phys=0)
+            PU #6 (phys=3)
+            PU #7 (phys=11)
+      L2Cache #4 (1024KB line=64)
+        L1Cache #4 (16KB line=64)
+          Core #4 (phys=1)
+            PU #8 (phys=7)
+            PU #9 (phys=15)
+  Socket #3 (phys=2)
+    L3Cache #3 (4096KB line=64)
+      L2Cache #5 (1024KB line=64)
+        L1Cache #5 (16KB line=64)
+          Core #5 (phys=1)
+            PU #10 (phys=6)
+      L2Cache #6 (1024KB line=64)
+        L1Cache #6 (16KB line=64)
+          Core #6 (phys=0)
+            PU #11 (phys=10)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	4 Caches (type #4)
+   depth 3:	7 Caches (type #4)
+    depth 4:	7 Caches (type #4)
+     depth 5:	7 Cores (type #5)
+      depth 6:	12 PUs (type #6)
+4 processors not represented in topology: 0x00006024
+4 processors offline: 0x00006024
+4 processors allowed but not online: 0x00006024
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,39 @@
+BZh91AY&SYäÞÍN Taÿ¥ÿüï=ßÿô½ë^Àÿïßð @  ø`_Ü 
+„zÀQÐÜt2T%cw ÜŠ@¥³R›5«)€¤É        Œ“Õh!“™2 € Èh4ÀCT™£*~ª"jƒC@  
+A È     ЧúÕHÄÈÀ˜  ™211110 Ä12`I¤„B™*4 @È ¦Ò ÐÐ  8€h 42h¦€h †  Ð*H @‚i£SLˆÈ†Mhê2É4ômA=MˆÉ‰êOÿáÎCðü'ù‡ä%„¡”ÐH’ÂÃü‰ ¡/`þƒYz°.,(‡íÓ?-
+î±ü_søÿ“ù›V£]u×]Ÿþñû¼ÒºÓµ}Ðë$Hà ‘ògÄH’‰"Z$‰D)T ó$#½ÍJ)J~+¤HN»øq§…ÕU^–—¯Û=trÞ²£ÍÓC‰‹Í)‡êŠg5wU—aÕæ5£G7IÒ‰7w˜Ek­yºxÐ,Ùyˆµ§˜q¶Ø|Z›m“øÓn6ØÆê¨Scuë·VÒÔ-Õ½NËÖxµ¶ÛÅÍ;­¶¦Ûaª¥wwwTÛy™UƒSªuOoOÌÌIº!…B³‹Smµƒ*ª†7hÃ2אּ“¼}UgT‰Dá–kF«Ì±‚¬ÖœËÊÝ̲ê“̶ˏ¾ôk.=5á®S­w ‰\H’Ô"FA5
+tÙU{UwÞ‡2æõ¦f‚l†	$9¨¤Iª1EÕ°X*)!X0ÉЁBÛÅÖJáµÕ™­¸¡¾fÒ­q(1b±ˆF,IÞä$FÅ2+²rŒ“£,wËž,
+òÈNÎ*¶–¶ÝeÌÃ-¥¥JŠCI£F°$Ü’pÅXª¢È¥’ÈDb¨(¨ŠII*( Á$I½ ’T’DŸlH’Ò$• ¤ˆ‚±„‘‚¨‘bU	æ =¡àÐüÁ¡5ô˜n~k=žð®²-pª
+Ö¹ߐ) d>@íñW›­WŒ^=ª²©Eh­dWBºƒõ|?Œ	ý¿;ç[m¶Ûm¶Ûm¶Ûm¶Ü	ÖbV¥jV¥jV¥jV¥jV¥jV§ƒÊù6FÌ3D1Ð F"F4H€ƒht9¡¦‡F´¸hu«¢´ÐêÜÓK«
+ÃaXÃWaX¬aÿ€óè'AúªL‡ç, ÷Òü9ü:ç?=ó¨n]J¥)SځTœr
+nè†þRNqmjÖ—YwÀ4Ï<禼ôΜõÓ®¸ñIH©"I=¢D”’OP+߁=žìŽ}»¹¹t«÷1ÛNí³ñiëå$„²9ÔôµRm¿_’Ù¹¦t¼×¡ö òÞ¤ë]ñÃYg»s«ë 1›hélT·vþþ6Ï_â1°~ Û¿
+¹wìöΕ™˜ïÆqzÛu»¶ÞÐ^‚ÙÖÙk½}àÛŒõãfû\9c‹ÀÎ1®÷·,ôÇyå×\ ` Ã]™žj±Oc/7ƒì  VCÌ,Œ¨5…é
+äxlì@üÁ€è‡0Ð=áËŸYU{Ýz«òa¸X6ç笁ýAÐ2‡´,ðÀy†€ñ
+BÁñ°x„ø‚\>@üAøÃ`>âK"¤‘È$IÔ蘭 €{„û¯‘ÊÛm¶¶¶¶¶´DDDS¸ … !D•kž hê™Å6™eÃçïá$i»r'ݹóy”$‘I’I$‘I’I$‘IQ>¡’:NE$I$R at d’E$I$R at d’E$I$R at d’E$I$RA©r at c]H¤€É$ŠH’H¤€É$ŠH’H¤€É$ŠH’H¤€É$ŠH#qÉr at crE$I$R at d’Fê]]ÝÝÝÕÝ]ÕÝZÛm¶¿'Ä'¼„›ø„
+ (@QE
+(@P€¢ª!TB¨‡kv‰+$MŽËm¶”µijÕ¶Õ/D†¡
+h¢"*§¿½øìÞ-¶ÛKV–­-¶ÛWÐOѳfå«m¶ÚÕ­¥ÚP¥h¢"*§­’$%è2yyyy) 2I'ˆ}»v·nÝ»vS©FI×QI‹§%ÉŽN¥I§Ô¹UUUÐUUUVÀª«BÕDEE >ß„$0òèKߟX>&Ýñ3[Ý·ÇT]áªky–­Ë‰º„I.ö^¹Ñ' ˆBI!Øœ\ž£,,¿>x9 0å$	 Ò’iÊÓ•*¦Šrçb5>ÅiûŸ)=\sªUUUUUUUUUUUUU\	„" 1UUV=á '%ÐùÒ{‰>ÿßþªú>¼Ÿ|)õgïRO–(|²]d”u½]:ÜC£ë@ê}iú©î‡õI§15–·nˆ8}á9N\jüÀ´ÿÔ6…ÿ¬LNC=¦âÂÚ…ÖK…=='!È´ü?áçiwÇé?²Oðþï€ÏÐ&“°×ñ}^Nnäw%ÉUR¾ÔI)$DŸÃÞÛíÀ’ý¤ð¢›ú_•×_D¦ÀÎì›9â£Ë$$×]fNŽþι®ÇÈa`Keî%î¹.B‚¡
+%¤‰˜k	$:0¤ž"ššSA30§š%dz'Z fµ)ÙG·j[NéȱÜ(ɲJl€Dd’ —¬òh7Ý‹ÑhºÕ§Zï_Oƹ;gyÃV¸ïyEáMj“;Ù4Ƹb‰7¢hýªß~†‚î…Ѫ'%*£]3U^’JVƒ™f½5:7²{HC0úp8ÃνkÓá<ù?0&mUUUUUUUUUUUUUVÕUUZ|| \	ÄéÓmyQöÒÝÚ˜Nìbrú+‘9Ø—ÍK­~þü- —ÍfÎÛã9Ö56ªwí§†Úö¶ù¢êRh/d8ZÒOãç…á²@ÛÛ£oŒÀøk›„ì“
+VT7=¾¾ s¾õ¾ÎrgNüíĐ^¶×¯W
+q4ÙÐH“®á}¹q¾ü³&¬An—ÌC^[Ù‹</µ}lÛ„qäítò
+×€H! ùÈ2 †ÉtŸt£Ì`±,‹aB+&X‘™’ŒÈ¸Eðhw˜÷.ÙÝvRG'„_‡yrí×e$q"xEÝsC³rí×e$q"xEðhw˜÷.ÙÝvRG'„XºªC³rí×e$q"xE‹ 4;8÷.ÙÝvRG'„_‡yrí×e$q"xE‹ 4;8÷.ÙÝvRG'„_‡yrí×e$q"xEðhw˜÷.ÙÝvRG'„_‡yrí×e$q"xEòùÁÿh×sÿ{Ï]ç[ÀH“ÇÀöcI-§¯\aîÏ•zráÆ÷Z°Í«;òm.ºÝÖÃ{Ýôã×.:S†j¼NM«sûä:Œ`$„‘FR¡J‚Œ¢äꉮøæEª«;_{gß\ôæ½4ÿ nÐ|Dãz$±QIBo×—:Nu]ËÛž-ÃâGïd–ß:[Y,nטÏvwÝÔ“½=†Gða$Þ=³Ö<g]9Ù}hÕ….ëuÅfÞ±rZ¥ƒß³k­me¦qKQ:g7Z'ój°e­¡
+¢i,³^Þ°$˜žÞ ÷Ù¹cíNo at K©8àªI'~;ï{3Å5ëÎI%|©ãᨪց;€sXzMfòqŽÜϏî!'ÔBNþcèéó~šŸñ.¸o™Îx¦÷­älÆêÜõŠõ^óÄÍë‡_6Oš†Ïp¯}y¾¾9×X ê,›ç
+|.º2mý¦,°˜¢k©X¼Åk獫£s-U{,~:ñ¯=÷ˆšÂèNƒ·©®¶äð½rw¿YÞr²@†ÐÖjSÂs^  Lä<Y
+µµ£
+kÖmGÖ¢÷ÝKÆ¿5¸X xà®ý(¨w±hW‚ó#ÙŽÈUXðV-UùÙ¢¦ù³zä:ÞŽ›ÇYÒs€	u§âl!9_0×ys^»ø|w¯ï¨H²u½sÒ뼕UÇ ñšË‰\kžòPQ5_;ë	ŸŽN/sÃÖüo½‡|wvOsßÎ@ TÍ4È‘&¨…T!*’$Î3Ì£Z¯˜Þ÷swIÆ-jÚÖA9e›8ç±›¼;;²I ï;ë® {¼öììÎuã‹$d…š’›ì’µÄï¬ÒUI6֐ï¥üƒ~›àŸæ$IÌH’þ;rÛlºâØÆ´¹©àl=ã¡¡òèk,:³®žª+l 0$Òk…“Œ„’| ,„ï <:¦aÇ›Îõ¯>r¡"É|®ó:À$$¹Éö¨j«䗝¹m¾-k-¥õÇ(§~è¶mO®€0ÖÑ.»+ÝNƒÀ£ªeS®¶žè!<؏UbùmXíÙ®€„2 žWÖÀ:õë³°ÙzÍß^¸^Y›ëP…&Æ7Ýo (s¶fmÖë`ÐÞh»º«Ü\¹O7×ͳyiB"¨‰:¦Ô‡Boà[1œ[m¹_Ž[ì
+¶PjCv¹µ¥±–&¬­ÕÓ> Ó¥wËÌ¡xÁ°5¥ ª“},-›_YZËšßR˜ñ!€ÆšG>Ä$c[‡þD‰.n®ì¹âËie¶,¥+M0E™{kÎv&uÉDN¯o8ºÙ	ÚUèåß¶_Iñ玵/£ÊróœÛÅ/[6\×W\éw7Ò@Í€:_:õë{ÎÏ]ç†I½']ˆå:‹=/ƒ6ºÐä±TÃ%³”¥)Bó0ºÈë6jï$ól6Zwa:7<JvnÙ¦%%G—!«'NÕéËr3˜ÆÂD™‹¯bÉ›ZYÐË8Öì8Ã9£
+æZQJÇmŠ-Mˆ^yñãE,¡–Ë%¡`	ØZgk4âÜù‹§Q2Î¶Åùg\ñlZ¯Ç \6\†‰®èg>IÑ8í¶z«zé{O*UÄw¾y³œæ0Öл 5ÌK|3Äî¥Ýï}ëfL€@Å,µëÀ <+Î)A:ž·{À&(7¬æÄ­Y­Ðµ¯µ´ÏÞ¿éíyu×[ö~ÏëÇØ
+ #Îvh-z
+ø‰oÓ\ñê€ù@?,= | 3ïUUUVªª&é
+ˆÿ¸H[_£ýCéÃõUÃ=ßHx‰¯ëư_@ý$=Ð{ˆ}pÿFa?|„>6
+k®šlBÄ,Mˆ|¿Ãœ·!±4	Z‰¨{„‰(›Y‹ÛÏ$}Oó'xyò'´0¿¨L…œÐx‡ éPN‚zÂÁ¨w†0TC |.$IùHt!¹
+0¸~¡ÿ7í!í¾Ä<ĉ:Q¼ Ü¦}‘"MàÈ}!A’Ñ4¾àbB$Ì‘¢Ä9â[¢á¸PpB‚Áa,L‡0ù2ÐI!,X at X°€°€±aaaQ°Y«?ïȦ!!($4%Pj†B¤Ci“Bªx`IP¢Š(P{rw…Á¤¬ƒä¤9CÚ øÉb^ıYpvýY®-Ì+}ƒ6'É
+%¢gâ·éñåçß’”äC¨Pn
+A$ýÑ"O„êÔ,²°9†áà tùÈYb¡2$IÀy‡×	}½bD”„I××Z…àÉ<$ˆ'¼>oŒ‡0¢à»êÜH“ÐO€`H“puo€Ø((/ {ä“q"Màò$°eAbIÔƒ²Gªä(L‡%ˆplØE‚=²&¢h
+‡Î„ØO‡p~÷¸:ºàH“å Š7
+·`ßuPx¶"j­o?7³B‡¬ºCÈI<|‚¢x‘  ìÁ`º$~ïj·“ÙÖÞD4
+¸z	wÁBD›È\5^=¤“@sðuäDIzžÉná8D0«˜gÔýƒpÈW@Û`ì
+ð õPpa©bD”5ëæ…vèCR ¨$‡¬?ü'väp÷;äGÖÕ dœt5ÃÃë×Áæòžu‘Yáö‰@ñþ"O!"O@Ø’{H{	&À‰àpÆ¡èI;ÆßAûþ¯?^	ÀvCÙùðyÌ(…ÌCK  ï	ÀnÜI4
+šná¼Ï¥Aäƒ@ðPJ
+„”‘9DœX9†ê  À^HP”ž½ˆ}\d…˜~ËÂp‘°œ‚âD›íŽ{Q:‰PhëY¼ª¤"J„DŸÄ$IS¿¨`…¸h‡­°n/|¢D˜Ø…¡	æX…ÈhÚ=í†C°P+Ä…³ĉ1Ç$"Nab"M‚‰4&T·¸yˆ‘'ð	h(2N¾Ê‘Mð ’Uø!Ü'É¡öõ¸!ë¼7$š‡xsêD<à Ô:‡a:L·"D’GîP!Ô(:Tªˆm¥ô	}@~ÙG:‘"¥Q*	Oâ'°*B$³¸0BØ†ˆh è	¼(‘((>߸Q¡ñ’KhC,C̈“©
+@ŠB$ÿw	'®ÿø»’)„‡&öjp
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,53 +0,0 @@
-‹ GwdK í[s#9r…çÕúõhGØcÜ
- ÷Í뎵ŽÝpxwÂ~ST“Õ£y²ÔÓ½¿Þ@QҐ¢ÔuÉBöÊy>Î¥[*²Hf •8Hh_o¼kþÉÍÂ4ÿ´ûôi½ÚÖÇþiBT$”eú¿¥:ÿÿ?im”)•rZÿ¤´uÁýT”S¾‰·x86Õ¡(~:V›oß;®ë÷ïýFüß¦»úÅ_y«}ÖÄø;k=âÏÁ÷⿬¿¬´Ãã_¯úÄ?þ¹©7ã/ƒ~ñ¾5F‡ãLüâÏÀ€øowËzÔEÐSÿÆ9ñCý³04þé?jàUÐ_ÿ¥VÎÇøkcÐÿ³0.þ‹ýƒV½ÏÑÆ?µëߍ¿µZë\¼Nb7àõO…ù9ãñÿâU"þŒ×¿é}ŽQú·ˆ?£ã?ëŽ1ñÝâÏÀxý÷ï Féß#þŒ¿í}ŽQñwˆ?£ãß?üãÆèÿYßÿ£âöŸ…Ññïû?.þÿ±0:þ®ÿ9FÅý?£ãßÿö\ü
-âÏÁèøÏûŸcÔý?ò¿,ŒŽèŽQúˆ?£ã¿©ö}Ï‘ìœ{;þƼ˜ÿ3.Íÿ
-bŽGxüŸBðé?Ÿ"7?úNÆçÿúŸcTûþŸ…qñ߯æ?~oM¿stµÿ:Æü²ý·*åÿÐþç'Eòö~Õ:;wÖØ›öG›ÕñX¨ÓŸ?íõênÿºÚ6õa]W_êö9&†Î߬w‹j}›.Œ³Ù5÷õáôC….åo—qúßÔ›ÕöÓ®ç9:ôïõõËñ_ nþÔJ´øc½ùË®©Ö¿+Ɉm\é‹Ï¿?;à‡º>ý¾ÐV…¹7³Ë~9ÖËÇ
-ëçfvqÀ¿,šÕ—§ˆ/¡5ʝðÛêü=/]iÔÙV‡æÛóœºx“ÿsX5õÇjñùü óWøÃj]ÿWuWO˜ù̪‹Sü±Úïû7›»ó7ù/ÛÝöìŠbnK~@úå_ªëߎpáâ€?ýáÏ·¿lãeùÝkoò÷»‡í¢¾üœüy]}<ÿµqÚø‹þ»^¬«ÕæézîÂŧøó/ÛÃéÇ×q¾Ôí7ù£/HÀÊøñÿ€1ãü/ããßhTüáÿda\ü—«ø­Å>ªß9:óñfïÅø/-Ãø»3ÑÐlôÇ­lÛÿÎõ?í0iý—òXÿÃÂÀø·†^ýâÛ‚MëÿSúëÿYÿf·ß­wwßz^½ãÿ[ÿï=Öÿ²@‹ÿbw¨o«ñ9wÇ7Ï‘ì;çM#{€ÿÒYÌÿ²p1ÿ#€á ,húßß;®ÒìϾZ|®îêÛÕò•stê_½ôøÒ•Ð?z
-MÿÍý¡®–]#€Aý¿³©ÿOÃE蟁ý¿Bÿ/‹	Æÿ¯öùçïÿQÿ³ ½ËfœþïëÃ&Žúc÷¿kšuWU°áùgQÿ“‡iâ¿Ø=lß6ƒoÿËx ýç í¿lFéQ-ì×þ?ÖÔ*åÿU‰ü?„ø¯¶Ëú«îqïÿ­q˜ÿeÿãê¯> îþß¿ÿiôÿ<¤f÷?1]ÿÛ‡ÍÇúp»ût{¬›WSÀÝú¹þËë€üIÿ¿\èúžNO¼ÝW‡fÕ¬vÛ³s¾ÿ·i¼ýs€ù_ÙÐõß|ÛSÇÿú*ÿ«†þ9øe»ú´ª—h„B×ÿbw_êíâÛi ðJ: »ÿ¹þ'…õ?,xŒþEC×ÿ¯Õ·cºû¯ŽÇÝbU5«/«æR)Ãçÿ‚Gýf¿h&ÈÿßW‡zysûFMÀNýÿæÿ,•·mþãžB ÿ§Lèú_×_êõwÏ1¼ÿw&(èŸäÿdCÕ¿Éåÿ€ÿ‡züóø?Úœš{ø?äB×&ÿü_,$ýCþr¡ë?“ÿþ/4Ä/ºþ3ù?0ÿËü²¡ë?“ÿó¿,Àÿ!ºþ§ð\éß+ø¿YиûÍùÿiýAüÈÿ³ðÂÿúŸÂ ë?“ÿþ/,ô.ªþûl0ÊÿQÂÿÁ=þSø?Üuý‡öŸ
-÷‡hèúŸÂÿñ2ÿã5öåÁ ,ºþ3ù?Ðÿ³ ÿ‡lèúŸÀÿqåÿtÚAÿ,|¨š
-M€\èúÏäÿ@þ—ø?dCצúð²€ú²™ ÿ?qý“ÿÃÂÿÅÂÿꃮÿ<þõŸ, ÿ'›áú/ûoüóH?ÿ‡µZ낉úW!­ÿ‚ÿ#?câ¿Û¦cúŸ£_ûƒúoL`¼'›ã¿>%Ÿ.è×þ«2”>þ/ÕÔJcÿ/FÅÿyÿç~çèÿ§ñ™ÚŸêÿ!þù¡Å¿Ýÿû¸úŸs÷ªõ«¥_þç<þ¥3¸ÿcá"ÿƒ€ûAYÐôÿìýÚW‹ÏÕ]}»Z¾rŽaùŸ¤_:ÔÿaãÙÐôßÜêjÙ5Ñÿ蟇Ëþ?>Јb‚ñÿ«}þ9ÃûgÆÿ,`¼/›qú¿¯›8êÝÿ®iÖuGhxþÇÙ€õ¿,LÿÅîaÛ¼yŽáíéPÿ…Œ÷d3Jÿ'ÿOïsôœÿ1Îytòÿå5ÚñÜÿ©ûÃûìÿÂ=þSïÿRbÿFR³‹
- r¡ëêý_JìÿÂHÒ?ä/ºþ§®ÿQbÿFPþG6týO½ÿK‰ý_Áþ/²¡ëêú%öaõ?dC×ÿÔõ?ÊSýÔÿbõ?d3Aþ¢ú—ù?‹ûžB ÿ§LèúŸºþG‰ý_AþO6Tý÷Y>ÆÿQbý/ôøgò ýgÁ©9v€]ÿYüFÁÿÅBÒ?ä/ºþ3ù?àÿbëÿdC×&ÿæY€ÿC6týgò`þ—ø?dC×ÿþ+ý{…ù_4îþE3Aþ?ÿ÷ÿ,\ú?PÿStýgò`ýz
-Uÿ*WýÔÿgÿ)üî*ÿ‹ýÿxÐpˆ†®ÿ)ü/ó?^äY°0 ‹†®ÿLþôÿ, ß#ºþ'ð\ù?vÐ?ª¦B ºþ3ù?ÿeþÙÐõŸ©þüŸ, þ‡l&Èÿçñ`üÏÂ¥ÿõ?¤A×&ÿÖ²€üŸl†ëÖãŸGúù?Î÷ÿQ!­ÿ‚ÿ#?câÿ¼ýgÏsô‹ÿSûïÓþO^ÃÿÃ)þíö¯›?ÿ4tüŸâ_Úã.ÇÿðKƒ¤ÿç©ÿ}µø\ݽµô°ñÒÀÿÃî÷eCÒs¨«eç`Dÿï¡.úÿ” D{ 
-úøÿõ>ÿœáý?üÿ\ ÿ—Í(ýßׇMõÇî×4ëΝÀ‡çœ5Èÿ±0Iü»‡móö9†·ÿ¥õ¨ÿÁÚÙŒÑÿiú·ÿ9†Ïÿ˜Tí?ããÿ¸ýGsïÿ­Nëÿüãß½ü{`ýÿvü§Ðÿóš]¬ —YÿÝË¿®ÿjç´Aþ‡…¤È_.dýw/ÿ~ÿoãO0ÿÃÊ?Ȇ¬ÿîåßëÿŸÆÿðó€úÿ²!ë¿{ù÷ÀõßIÿA[ìÿÇÖˆ¬ÿîåß#æÿBiQÿ¬ÿ–
-=ÿß¹ü{„ÿÓÇ㡞B ÿ§LÈúï^þ=Æÿi4öÿ`ù?Ùõo²ù?àÿaÿ\þ´ÿ,¤ýßáÿYÿ¹üð±ôùË…¬ÿ\þø¿X@¾G6dýçò`þ—ø?dCÖ.ÿæY€ÿC6dýOâÿ¸Òi1ÿË‚ÆÝ¿hèùÿLþÜÿ³páÿ@ýOqõŸÉÿa°þƒ½‹†¨•Íÿáàÿà€ÿIüîÚÿýßXÐpˆ†¬ÿIü/ó?^äY°0 ‹†¬ÿ\þôÿ, ß#²þ§ð\ù?
-Ð?ª¦B ²þsù?ÿeþِõŸ«þüŸ, þ‡lèùÿLþŒÿY¸ð þ‡8ÈúÏUÿë?Y€Þe3\ÿº°õOKÿ‡!¶ÊèøüŒŠÿó ýÎÑ?þ©ý/ÓþO>`ÿ?hño7€íÚþyàø?Å¿tXÿÅÃÅøÁx@4ý?Oþï«ÅçêîÍ ‡ÿ“þ}Y"ÿÇüß²¡é¿¹?ÔÕ²kзÿ÷eP^µýð˜ÿcá²ÿ´¢˜`üÿjŸNßþ?é¿ôæ´þùÿ“Í8ýßׇMõÇî×4뮽À‡çœ‹?Bþ‡iâ¿Ø=l›7Ï1üþ¯tí?ïÉf”þOÀ½ÏѯýO­¾wA«”ÿo÷AûŸBü7 é>ÇðþßšÒ þÐãß½ ¼»ÿ÷/Çý?©ÙÅ
-p¹Ðõß½ ¼[ÿåËù£0ÿËBÒ?ä/ºþ»€¾ÿ·Éˆýs€ò²¡ë¿{x§þõUþW;ÔÿdõÿeC×÷ðîþß¾Ð0
-ë?XÀúoÙÐõß½ |øü_ð
-û² ¿·l&Èÿw. ïÔÿ™ÿ³´ª­ÿˆñ?O!€ÿS&týw/ Þÿ;°ÿÈÿɆª“Ëÿõ¿,ÐãŸÉÿöŸ…´ÿ;ür¡ë?“ÿþ/’þ!¹ÐõŸÉÿÿXÿ'ºþ3ù?0ÿËü²¡ë?“ÿó¿,Àÿ!ºþ§ð\éßkø¿YиûÍùÿÉügù?ípÿÏÂ¥ÿõ?¥A×&ÿü_, þ§l¨úW¹ü¨ÿÏ=þSø?Üuþõ_YÐpˆ†®ÿ)ü/ó?^äY°0 ‹†®ÿLþôÿ,Àÿ!ºþ'ð\ù?.¡>TM…&@.týgò ÿËü²¡ë?Sýø?YÀ|¯l&ÈÿO[ÿÜòÿópéÿ@ýiÐõŸÉÿõŸ, ÿ'›ú?Fá/o›æv¿ûµ>Ü«/ßÝú½e˜þ}Òиÿgý½lFôÿ¶ÿÎ_'úù¿¬Õ*XÒþ¯:þÿ£â¿Û¦ƒzŸ£_ûÿîÿX@û/›áúÜüðÿꔍú
-A@ûÏÁ˜ø?oÿÞóýãÿ4þ7íúOÄ??¤ø/v‡4áûqýý{À¾ùßßâ_Zäy¸ÌÿbýŸ4Hú¶~î«Åçꮾ]-_;Çðüwþo°þO6$ý7÷‡ºZvŽ Fôÿúçá¢ÿOÀhDAÿ¿ÞçŸ3bþG[ŒÿY@þO6£ô_6qÔ»ÿ]Ó¬ë®<Ððü³Ú#ÿÃÁ$ñ_ì¶ÍÛçÞþ—Ö£þhÿe3Fÿ'û_ÿsôkÿc«ï¼:íÿgâhÿ9ÿÇíßzœcxÿouPˆ?äøw—ÿ¸ÿS;þSèÿyHÍ.* É…¬ÿîò?×ÿ·ó?þ/’þ!¹õß]þgøý¿M@ÿ ü—lÈúï.ÿ3pÿ§Çñ?Öÿ±€ýŸdCÖwùŸõ’þƒ6Øÿ™Ôÿ‘
-YÿÝåFÌÿ…Túg ~/ÙÐóÿåFø?½*qÿÏÂSàÿ”	YÿÝ寸?Æþo, ÿ'¢þM6ÿü?,ãŸËÿöŸ§æØJ0dýçòÀÿÅBÒ?ä/²þ3ù?àÿâõ_eCÖ.ÿæY€ÿC6dýçò`þ—ø?dCÖÿ$þ+ý—ó¿,hÜý‹†žÿÏãÿð¸ÿgáÂÿúŸâ ë?—ÿë?X@ýOÙõ¯rù?<êÿ³@Žÿ$þw•ÿ-±ÿ/îѐõ?‰ÿãeþÇkìÿǃ…X4dýçªÿþŸø?dCÖÿþ+ÿ§SúgáCÕThäBÖ
 .ÿò¿,Àÿ!²þsÕÿ€ÿ“Ì÷ʆžÿÏTÿã.ü¨ÿ!²þsù?°þ“äÿd3\ÿ~ÀÎ?'úù?Î÷ÿQÁ¡þcâÿ¼ÿgÏsô‹ÿyûo¼vˆ?¤ø·û¿víþÜwüo”sÁ_žöÿÃú.ÇÿÎa?@Yôÿ<÷¿¯Ÿ«»·ö‚>þã ÔböِôßÜêjÙ9ÔÿGáÇþ?(äÿY¸ìÿúaÐÇÿ¯÷ùçŒÈÿi‹ùÿ“Í(ýßׇMõÇî×4ëέÀ‡çœ5Èÿ±0Iü»‡móö9†·ÿ¥Eý/0Þ“ÍýŸæûŸcøüIKBÑþ30>þûô8Çðþßê`ÈñÏUÿý?©ÙÅ
-p¹õŸ«þ?ò?,$ýCþr!ë?WýÌÿ²€ù_ِõŸ«þ?Ö°€úÿ²!ë?×úoø?YÀúoِõŸiý·Eýo°ÞS6ôüÿTë¿[ÿgl ©þ?ê?²ðø?eBÖ®õßÐ?ÈÿɆ¨“Íÿÿäøçò ýg!íÿÿ‡\ÈúÏåÿ€ÿ‹…¤È_.dýçòÀÿÅÖÿɆ¬ÿ\þÌÿ² ÿ‡lÈúÏäÿÀü/ðȆ¬ÿIüWú/-üß,hÜý‹†žÿŸØÿ¡íÉÿû.ý¨ÿ)
-²þsù?°þƒ½‹†¨•Íÿaàÿà€ÿIüî:ÿ‹ý_XÐpˆ†¬ÿIü/ó?>Þ
-BÿX€ECÖ.ÿúàÿ
-YÿSø?®üŸN蟅US¡	Yÿ¹ê ÿËü²!ë?SýÔÿáõ?dCÏÿO]ÿÝüÿ³péÿ@ýiõŸËÿõŸ, ÿ'›áúïeù¸ ŸÿCYëËöÆ_œ‚ÿƒƒ1ñÞÿ³ç9úÅÿ¼ýO@ÄŸRüÛý_»vî;þ¿ÜÿÏ¡þãÿŒdAÒÿóÜÿ¾Z|®îÞÚzøøß;ìÿÅî÷eCÒs¨«eç`Dÿï¡.óZ¡ÿ—}üÿzŸΈüŸ6ÿ³€þ_6£ô_6qÔ»ÿ]Ó¬;·žÿqVcÿg&‰ÿb÷°mÞ>Çðö¿´%ü_, ý—ÍýŸæûŸ£çüqλ ãύùÆÇÿqÿçÞÿ[ê¿#þù!Ç?Sýôÿ<¤f+ÀåBÖ¦úÿØÿ‰‡¤È_.dýgZÿ
-ÿ'(ÿ ²þsÕÿGýPÿ_6dýçZÿõ_,`ý·lÈúϵþõÿYÀúoÙÐóÿS­ÿ¾Èÿ©÷ÿ,<… þO™õŸiý·Býÿ“
-Qÿ&›ÿþÈñÏåÿ@ûÏBÚÿþ¹õŸËÿÿIÿ¿\ÈúÏåÿ€ÿ‹ä{dCÖ.ÿæY€ÿC6dýçò`þ—ø?dCÖÿ$þ+ý—ó¿,hÜý‹†žÿÏäÿÀý?þÔÿYÿ¹êÿcýz
-Qÿ½6åÿpðp@Žÿ$þwíÿ°hÿ9Ðpˆ†¬ÿIü/ó?^käY°0 ‹†¬ÿ\þôÿ, ß#²þ§ð\ù?òÐ?ª¦B ²þsù?ÿeþِõŸ«þüŸ, þ‡lèùÿLþŒÿY¸ð þ‡8ÈúÏUÿë?Y€Þe3\ÿnÀÎ?'úù?Î÷ÿQÁ
 ø?8ÿçý?{ž£_üÏÛãÓü/âŸRüÛý_»vµÿsüú.Æÿð‹ƒ¤ÿç¹ÿ}µø\ݽµôðñ ÿÏöÿ”
-IÿÍý¡®–#€ý¿‡þy¸ìÿãí(èãÿ×ûüsFäÿ´ÅøŸŒ÷e3Jÿ÷õaGý±ûß5ͺs+ðáùg5ò,LÿÅîaÛ¼}Žáíi=Ö°€ñžlÆèÿ4ÿÛÿÃçLjÐþ30>þûô8Çðþ?vÿñç€ÿLõÿÑÿóš]¬ —Yÿ™êÿÃÿÍCÒ?ä/²þ3­ÿÆú/PþA6dýçªÿú¿, þ¿lÈúϵþõYÀúoِõŸký7Ö±€õß²¡çÿ§[ÿíË •±íúoìÿÅÃSàÿ”	Yÿ¹êÿ£þÈÿɆ¨“Íÿÿäøçò ýg!íÿÿ‡\ÈúÏåÿ€ÿ‹…¤È_.dýçò ÿÃÖÿɆ¬ÿ\þÌÿ² ÿ‡lÈúÏåÿÀü/ðȆ¬ÿIüWú/-üß,hÜý‹†žÿŸÚÿqªÿñ?—þÔÿ”Yÿ¹üXÿÁ‚…ÞECÔ¿ÊæÿPðp@Žÿ$þw•ÿ-Ú4Ü¢!ëÿÇËü×ù_,À¢!ë?“ÿC£ÿgùِõ?…ÿãÊÿ锇þYøP5𠹐õŸËÿü/ðȆ¬ÿ\õ?0ÿËêȆžÿŸÚÿ¡ZÿG	ý³péÿ@ýiõŸËÿõŸ, ÿ'›áúïUòã‚~þkµ
-Öõÿ€ýßXÿÝ6ÓÿýÚÿóø›8DûÏÆ{²®ÿy¦ö_Ùö°õÿÇñÿcâÿ¼ÿsÏsô‹ÿùøßxìÿÊ)þíþßÇÕÇø”»×­_-ýò?F9ª\»ÿ+ò?<\äbÃ;˜,Húö~í«Åçꮾ]-_;GßüOêþµ.Sþ7¶Ð?ÈÿȆ¤ÿæþPWËÎÀùmSý÷2@ÿ< ÿ—
-}üÿzŸΈùäÿ˜@þO6£ô_6qÔ»ÿ]Ó¬ë®<Ððü³Éÿ‰üO~&‰ÿb÷°mÞ>Çðö¿´ðÿó€ö_6côòÿô?GÏùãœwA'ÿŸ‰O@ûÏÁøø?îÿÔãÃû«ƒGü9 Ç?×þ/èÿYHÍ.*€È…¬ÿ\û¿ ÿÃBÒ?ä/²þsíÿÿ˜ï‘
-Yÿ™ö	Øÿ‰ìÿ"²þ3Õÿ°XÿÇêȆ¬ÿLõ?,öfõ?dCÏÿO\ÿÃ)ìÿÂÈSàÿ”	Yÿ™êø¿Y€ÞeCÔ¯b £üðÿ°@Ž&ÿG@ûÏ‚Ssì #²þsù?àÿb!éò—Yÿ¹üð±€õÿ²!ë?—ÿó¿,Àÿ!²þsù?0ÿËü²!ëÿÇ•þK‹ù_4îþECÏÿOåÿ8ÕÿL‰¿äÿèÿY€ÿC6dýçò`ýz
-Qÿ*›ÿ£„ÿƒrü'ñ¸ëúØÿ—
-÷‡hÈúŸÄÿñ2ÿãµÁý7|¢!ë?—ÿý?ðȆ¬ÿ)üWþO§ôχª©ÐÈ…¬ÿ\þäY€ÿC6dýçªÿÿ'¨ÿ!zþâú¶<ù?°þ“ø?dCÖ&ÿ‡ÆúOÿ“Ípý‡;ÿœèïÿÐ!¨´ÿ«
-ÎÂÿÁÁ˜ø?ïÿÙóýãÿÔþ¯áÿaÿvÿ׮ݟûÿÏ÷ÿ+‘ÿgábü?‹`< 
-’þŸçþ÷Õâsu÷Ö^ÐÃÇÿÞaýðˆ¤ÿæþPWËÎÀ€üŸ*CÊÿÅ?àþŸ…Ëþ?>Ј‚>þ½Ï?§oÿßêß§úßN;Ìÿ±€üŸlFéÿ¾>lâ¨?vÿ»¦Ywn><ÿãl ÿÃÀ$ñ_ì¶ÍÛç~ÿWZìÿÀÆ{²£ÿÓüoÿsôkÿc«ï¼:ÿL²„£ýg`|ü÷ÿèqŽáý¿ÕÉÿøç‡ÿLõÿÑÿóš]¬ —Yÿ¹êÿcþ—…¤È_.dýçZÿù_à÷–
-Yÿ™êÿ{Ìÿ²€úÿ²!ë?×úo¬ÿbë¿eCÖ®õߨÿÀüÞ²¡çÿ']ÿ­JmÛõßÿóðø?eBÖ®õߨÿ“äÿdCÔ¿Aýÿ÷
-9þ¹ühÿYHû¿Ãÿ!²þsù?àÿb!éò—Yÿ¨ÿÿ®Áú?ِõŸÉÿúŸ<Àÿ!²þQÿÿ]ÿ‡lÈúŸÄÿq¥ÿÒÂÿÍ‚ÆÝ¿hèùÿéügù?ìÿËÄ¥ÿõ?¥AÖ?êÿ¿kPÿS6Dý«lþÔÿgÿIüîÚÿú,h¸?DCÖÿ$þ—ù¯
-ò¿,X€ECÖ.ÿúàÿ
-YÿSø?®üŸN蟅US¡	Yÿ™üù_àÿ
-Yÿ¹êÀÿÉæ{eCÏÿOçÿÎh]>ÖÿÀøŸ…KÿêHƒ¬ÿ\þ¬ÿdù?Ùׯ-_.èçÿP6 Ó&é_§áÿà`LüŸ÷ÿìyŽ~ñ?oÿã 0 þâßîÿÚµûsßñ¿QÎŒk÷ÿ+Ñÿ³p1þ
-/ì ² éÿyî_->WwoíÝwüŸº­ÓþïÞaý7ÿˆ¤ÿæþPWËÎ@ßü_«›ò¥‡þy@ÿ/úøÿõ>ÿœù¿”€þ@¾_6£ô_6qÔ»ÿ]Ó¬;·žÿqVcÿg&‰ÿb÷°mÞ>Çðö¿´%ü_, ý—ÍýŸæûŸ£çüqλ ãύùÆÇÿqÿçÞÿ[ê¿#þù!Ç?Sýôÿ<¤f+ÀåBÖ¦úÿØÿ‰‡¤È_.dýgZÿ
-ÿ'˜ï‘
-Yÿ™êÿ{ÔaõÿeCÖ®õßXÿÅÖˆ¬ÿLë¿
-êÿ³€õß²¡çÿ§[ÿüŸÊ©vý7Öððø?eBÖ®õß𳠽ˆ¨“Íÿÿäøgòx´ÿ,¤ýßáÿYÿ¹üð±ôùË…¬ÿ\þø¿XÀúِõŸËÿù_àÿ
-Yÿ¹ü˜ÿe
 þِõ?‰ÿãJÿ¥Áü/wÿ¢¡çÿ§ò´õ?KeÍÉÿûàÿ
-Yÿ¹üXÿÁ‚…ÞECÔ¿Êæÿ(áÿà€ÿIüîºþ‡Cûρ†ûC4dýOâÿx™ÿññoÐ?7|¢!ë?—ÿý?ðȆ¬ÿ)üWþO‡þ9øP5𠹐õŸËÿü/ðȆ¬ÿ\õ?àÿdõ?dCÏÿO\ÿöû?bý'ðȆ¬ÿLþ…õŸ, ÿ'›ú?Få/o7‹Ûýî×úp{¬¾|ë÷–ú/áÿâûÉfDÿßkϧs’Âûù¿t*ù¿u[ÿþ¯üŒŠÿóÀýÎÑ?þ©ýO÷Æ£þ´ø·@wmÿÞûþÿ·ø—û?ópqÿ?‹`< 
-šþŸÍ?ûjñ¹º{c3øaãÿ6ÿW:¬ÿdë?dCÓs¨«e×`Dÿ .óÿ3…þ_Œÿ_íóÏÞÿ;£0þgù?ÙŒÓÿ}}ØÄQìþwM³®;ò@Ãó?·üÓı{Ø6ožcxû_Æ í?hÿe3Jÿ'Hïsôkÿc«ï¼:íÿdZÿÚÿüâÿ¸P÷9†÷ÿÖ8øs@wˆîþß¿ÿiôÿ<¤f äB×wˆný—/çt@þ‡…¤È_.týw€|ÿoÓxúç ë=dC×wˆNýë«ü¯vð³€ý?dC×wˆîþß¾Ð0
-ë¿Y@ýÙÐõß] bøü_ð
-õY€ßK6äÿ;@têÿÊÿéµÅý?O!€ÿS&týw€Þÿ;Pÿ…äÿdCÕ¿ÉåÿÀú_èñÏãÿphÿYpjŽ@C×&ÿü_,$ýCþr¡ë?“ÿþ/PÿO6týgò`þ—ø?dC×&ÿæY€ÿC6týOáÿ¸Ò¿W˜ÿeAãî_4äÿóø?pÿÏÂ…ÿõ?ÅA×&ÿÖ°€úŸ²¡ê_åò þ?ôøOáÿp×õ?°ÿ3îÑÐõ?…ÿãeþÇë€ü/`ÑÐõŸÉÿþŸø?dC×ÿþ+ÿ§ÓúgáCÕThäB×&ÿò¿,Àÿ!ºþ3Õÿ€ÿ“Ì÷Êf‚üÿÆÿ,\ø?PÿCtýçñx¬ÿdù?ٌпë¿óω~þkµ
-Öõ¯Ó þFÅ·Mõ>G¿öÿ<þäXÀþo²yKÿûÃn1´‹~íÿÓøÏÿ¤´s¥EûÏÁw㿚·wõìÏ÷Ûm¼
-/â_Úãb‡^¦œÛÒšÂÄ„BÏÓö»¾Ðffçaæ}9+¬õ¥*’-7Þ›¥73W¨›ødUèÙlnlᜏOÑ¥Wºó¹
-ÆÍ]a¼3åóóLP³ùéyºÐAY7+â?aâ“fÊ«fñd¥.T:ûéÈø4å}(¯f6´GªÒ*Sèø¦ã¡ZµñÐxíèÂÎoýìt¨v>¾7OGªÇ#]|R|ÛóÂj[e|'>;‹#y|ÙôéŠy8[³yü`…™ÇƒÜLyÕ¿›ÒÇ÷Þ¾}:4½ˆŽÔêøm9“¾¥thiãRØYú\óÇ/ ÄoÉÆs›Yü‰óΞÞ@©Mü\îôªæt謘—j?¤oMÙÒ˜t¬š{cæ>~֐¾¢ÄNÇÇ×›Ÿ7›ŸÞí<¾íY¡Ë2ê¿ÙøŠe{ú.
-ëMÙ~]³Ù,Æ!}ƒªß@ü}éæ³ø–â æ1¢í6¤oÅ¥O5{:2½C=óe1÷ñm”eü2Ú/K»xúxq¥åµEÐ:¤(ÆxíÂé+p.ž+Æß©ô±¬}<Ú¥ÏÛ‡ø=Æ7Ò†wîBéâ%Ö^4êéµË"Í!êq_ÌãÏÛƒgºté=ÏÚ7¢Ò›^m›C: ¨}ûfçÁÇi‘¾Ôø=þûôHFü†ìÌ¥7Ö>¢4\úÊž1áìøiÚÍç^Ÿ™ýÒ’^˕韩ß!xàxàxàxàÇÿ£ÇÍ¢ùÚÁ„r¦æ®47›Õ¦Ni)k½*Ãì&%Ïëã±>)©­JÝþäx{xØnWÛ»âéï×»ÅçzYüÀI¸ïæÿû‡ÕöÓŽzŽïçÿ5Þ¿Èÿǯþ_/ÕÝáï~/Ã/õv¹;Ü®–ñoÿVocôëÿØ6õ:¥T‹OÕfµþ£Ë›ÍnY¯ÿ.þÙŸþXl«MÿzMûü¿ÿï(þ·Þmÿþ/ü‡â_ÿë—ÂüìÕ¿ýû_oŽM½ßGIħÎÚ“üñßÿš^6ÍHüìæñgÉjV¤E%ñ§©X}ñŸ¿¿yZrZ´oTÝWãU{wL‡Ü,v‡:ý¢ýMzÉôƒô+sóiÿ~ü­>¦?ÞÖ_õ>­U}üYºÜ—Eëgk?Ù¯ûç£×U|õø—ø´âKû².öǺhŽ‹bs<ûª.6‹ºX|Õ~µ(Žõ¾Ø4‡ø›»ô›ªXlv_âaMzšõÅbýiýp¼/–ͱ¨ûU±Ù|->}/›ô¯‰ÿ)ÙÇoÇøYãWüµXoâ§ÙÆ+vÛܦsï·ñ™»íªÙŠåñv±_Çw÷µXď±øª}ñµÙŠuuÿév½¹ù¸»ÛmVûôU”zn~.Ë›§·ñøýzwú¾o«õên»©·Mж™ÝTËeüíqí·¬Š«øÖŸñiÆ¢ýÉ—Õ¡y¨Ö7ûݯõ¡ØTÛê®N/ô»››óKM¿ÏKMãR~©ÍÂÏFý¸KͼÏKÍàRw©…w©Ù÷y©Y\j£.5mÜ¥æÞç¥ööXMãRûÎ¥¦Ì»ÔÊ÷y©½=VÃ¥öÝTÿ¸KÍ¿ÏKíí±.µïv ów©…÷y©½=VÃ¥ö·:V›½ÏK
-yµ÷—옿ÏK
-yµ‘—šû)Üw:]€ÄÚÈôG^kït¾ ™µ‘×ÚLwèw:a€ÔÚÈkíæ;ô;1 at níýåÖô;2 at rmd»æàµöNç]{÷ü>9              
         ø[ãÿ ^¹‡ à 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,53 +0,0 @@
-Machine (phys=0)
-  Socket #0 (phys=0)
-    L3Cache #0 (4096KB)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (16KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-            PU #1 (phys=8)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (16KB)
-          Core #1 (phys=1)
-            PU #2 (phys=4)
-            PU #3 (phys=12)
-  Socket #1 (phys=1)
-    L3Cache #1 (4096KB)
-      L2Cache #2 (1024KB)
-        L1Cache #2 (16KB)
-          Core #2 (phys=0)
-            PU #4 (phys=1)
-            PU #5 (phys=9)
-  Socket #2 (phys=3)
-    L3Cache #2 (4096KB)
-      L2Cache #3 (1024KB)
-        L1Cache #3 (16KB)
-          Core #3 (phys=0)
-            PU #6 (phys=3)
-            PU #7 (phys=11)
-      L2Cache #4 (1024KB)
-        L1Cache #4 (16KB)
-          Core #4 (phys=1)
-            PU #8 (phys=7)
-            PU #9 (phys=15)
-  Socket #3 (phys=2)
-    L3Cache #3 (4096KB)
-      L2Cache #5 (1024KB)
-        L1Cache #5 (16KB)
-          Core #5 (phys=1)
-            PU #10 (phys=6)
-      L2Cache #6 (1024KB)
-        L1Cache #6 (16KB)
-          Core #6 (phys=0)
-            PU #11 (phys=10)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	4 Caches (type #4)
-   depth 3:	7 Caches (type #4)
-    depth 4:	7 Caches (type #4)
-     depth 5:	7 Cores (type #5)
-      depth 6:	12 PUs (type #6)
-4 processors not represented in topology: 0x00006024
-4 processors offline: 0x00006024
-4 processors allowed but not online: 0x00006024
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+-p -v --of xml

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x00009fdb" complete_cpuset="0x0000ffff" online_cpuset="0x00009fdb" allowed_cpuset="0x0000ffff">
+    <info name="Backend" value="Linux"/>
+    <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111">
+      <object type="Cache" os_level="-1" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101">
+              <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
+              <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100" complete_cpuset="0x00000100" online_cpuset="0x00000100" allowed_cpuset="0x00000100"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010">
+              <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
+              <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
+      <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
+              <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
+              <object type="PU" os_level="-1" os_index="9" cpuset="0x00000200" complete_cpuset="0x00000200" online_cpuset="0x00000200" allowed_cpuset="0x00000200"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="3" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888">
+      <object type="Cache" os_level="-1" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808">
+              <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
+              <object type="PU" os_level="-1" os_index="11" cpuset="0x00000800" complete_cpuset="0x00000800" online_cpuset="0x00000800" allowed_cpuset="0x00000800"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080">
+              <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
+              <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000440" complete_cpuset="0x00000440" online_cpuset="0x00000440" allowed_cpuset="0x00000440">
+      <object type="Cache" os_level="-1" cpuset="0x00000440" complete_cpuset="0x00000440" online_cpuset="0x00000440" allowed_cpuset="0x00000440" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040">
+              <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400">
+              <object type="PU" os_level="-1" os_index="10" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</topology>

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16em64t-4s2c2t-offlines.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16em64t-4s2c2t-offlines.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
--p -v -.xml

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines.xml.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE topology SYSTEM "hwloc.dtd">
-<topology>
-  <object type="Machine" os_level="-1" os_index="0" cpuset="0x00009fdb" complete_cpuset="0x0000ffff" online_cpuset="0x00009fdb" allowed_cpuset="0x0000ffff">
-    <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111">
-      <object type="Cache" os_level="-1" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101">
-              <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
-              <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100" complete_cpuset="0x00000100" online_cpuset="0x00000100" allowed_cpuset="0x00000100"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010">
-              <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
-              <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="Socket" os_level="-1" os_index="1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
-      <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
-              <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
-              <object type="PU" os_level="-1" os_index="9" cpuset="0x00000200" complete_cpuset="0x00000200" online_cpuset="0x00000200" allowed_cpuset="0x00000200"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="Socket" os_level="-1" os_index="3" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888">
-      <object type="Cache" os_level="-1" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808">
-              <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
-              <object type="PU" os_level="-1" os_index="11" cpuset="0x00000800" complete_cpuset="0x00000800" online_cpuset="0x00000800" allowed_cpuset="0x00000800"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080">
-              <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
-              <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000440" complete_cpuset="0x00000440" online_cpuset="0x00000440" allowed_cpuset="0x00000440">
-      <object type="Cache" os_level="-1" cpuset="0x00000440" complete_cpuset="0x00000440" online_cpuset="0x00000440" allowed_cpuset="0x00000440" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040">
-              <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400">
-              <object type="PU" os_level="-1" os_index="10" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-  </object>
-</topology>

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.options (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.options)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+- -v --whole-system --cpuset

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,53 @@
+Machine (phys=0 Backend=Linux) cpuset=0x00009fdb
+  Socket #0 (phys=0) cpuset=0x00001111
+    L3Cache #0 (4096KB line=64) cpuset=0x00001111
+      L2Cache #0 (1024KB line=64) cpuset=0x00000101
+        L1Cache #0 (16KB line=64) cpuset=0x00000101
+          Core #0 (phys=0) cpuset=0x00000101
+            PU #0 (phys=0) cpuset=0x00000001
+            PU #1 (phys=8) cpuset=0x00000100
+      L2Cache #1 (1024KB line=64) cpuset=0x00001010
+        L1Cache #1 (16KB line=64) cpuset=0x00001010
+          Core #1 (phys=1) cpuset=0x00001010
+            PU #2 (phys=4) cpuset=0x00000010
+            PU #3 (phys=12) cpuset=0x00001000
+  Socket #1 (phys=1) cpuset=0x00000202
+    L3Cache #1 (4096KB line=64) cpuset=0x00000202
+      L2Cache #2 (1024KB line=64) cpuset=0x00000202
+        L1Cache #2 (16KB line=64) cpuset=0x00000202
+          Core #2 (phys=0) cpuset=0x00000202
+            PU #4 (phys=1) cpuset=0x00000002
+            PU #5 (phys=9) cpuset=0x00000200
+  Socket #2 (phys=3) cpuset=0x00008888
+    L3Cache #2 (4096KB line=64) cpuset=0x00008888
+      L2Cache #3 (1024KB line=64) cpuset=0x00000808
+        L1Cache #3 (16KB line=64) cpuset=0x00000808
+          Core #3 (phys=0) cpuset=0x00000808
+            PU #6 (phys=3) cpuset=0x00000008
+            PU #7 (phys=11) cpuset=0x00000800
+      L2Cache #4 (1024KB line=64) cpuset=0x00008080
+        L1Cache #4 (16KB line=64) cpuset=0x00008080
+          Core #4 (phys=1) cpuset=0x00008080
+            PU #8 (phys=7) cpuset=0x00000080
+            PU #9 (phys=15) cpuset=0x00008000
+  Socket #3 (phys=2) cpuset=0x00000440
+    L3Cache #3 (4096KB line=64) cpuset=0x00000440
+      L2Cache #5 (1024KB line=64) cpuset=0x00000040
+        L1Cache #5 (16KB line=64) cpuset=0x00000040
+          Core #5 (phys=1) cpuset=0x00000040
+            PU #10 (phys=6) cpuset=0x00000040
+      L2Cache #6 (1024KB line=64) cpuset=0x00000400
+        L1Cache #6 (16KB line=64) cpuset=0x00000400
+          Core #6 (phys=0) cpuset=0x00000400
+            PU #11 (phys=10) cpuset=0x00000400
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	4 Caches (type #4)
+   depth 3:	7 Caches (type #4)
+    depth 4:	7 Caches (type #4)
+     depth 5:	7 Cores (type #5)
+      depth 6:	12 PUs (type #6)
+4 processors not represented in topology: 0x00006024
+4 processors offline: 0x00006024
+4 processors allowed but not online: 0x00006024
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16em64t-4s2c2t-offlines.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16em64t-4s2c2t-offlines.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-- -v --whole-system --cpuset

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t-offlines_noadmin.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,53 +0,0 @@
-Machine (phys=0) cpuset=0x00009fdb
-  Socket #0 (phys=0) cpuset=0x00001111
-    L3Cache #0 (4096KB) cpuset=0x00001111
-      L2Cache #0 (1024KB) cpuset=0x00000101
-        L1Cache #0 (16KB) cpuset=0x00000101
-          Core #0 (phys=0) cpuset=0x00000101
-            PU #0 (phys=0) cpuset=0x00000001
-            PU #1 (phys=8) cpuset=0x00000100
-      L2Cache #1 (1024KB) cpuset=0x00001010
-        L1Cache #1 (16KB) cpuset=0x00001010
-          Core #1 (phys=1) cpuset=0x00001010
-            PU #2 (phys=4) cpuset=0x00000010
-            PU #3 (phys=12) cpuset=0x00001000
-  Socket #1 (phys=1) cpuset=0x00000202
-    L3Cache #1 (4096KB) cpuset=0x00000202
-      L2Cache #2 (1024KB) cpuset=0x00000202
-        L1Cache #2 (16KB) cpuset=0x00000202
-          Core #2 (phys=0) cpuset=0x00000202
-            PU #4 (phys=1) cpuset=0x00000002
-            PU #5 (phys=9) cpuset=0x00000200
-  Socket #2 (phys=3) cpuset=0x00008888
-    L3Cache #2 (4096KB) cpuset=0x00008888
-      L2Cache #3 (1024KB) cpuset=0x00000808
-        L1Cache #3 (16KB) cpuset=0x00000808
-          Core #3 (phys=0) cpuset=0x00000808
-            PU #6 (phys=3) cpuset=0x00000008
-            PU #7 (phys=11) cpuset=0x00000800
-      L2Cache #4 (1024KB) cpuset=0x00008080
-        L1Cache #4 (16KB) cpuset=0x00008080
-          Core #4 (phys=1) cpuset=0x00008080
-            PU #8 (phys=7) cpuset=0x00000080
-            PU #9 (phys=15) cpuset=0x00008000
-  Socket #3 (phys=2) cpuset=0x00000440
-    L3Cache #3 (4096KB) cpuset=0x00000440
-      L2Cache #5 (1024KB) cpuset=0x00000040
-        L1Cache #5 (16KB) cpuset=0x00000040
-          Core #5 (phys=1) cpuset=0x00000040
-            PU #10 (phys=6) cpuset=0x00000040
-      L2Cache #6 (1024KB) cpuset=0x00000400
-        L1Cache #6 (16KB) cpuset=0x00000400
-          Core #6 (phys=0) cpuset=0x00000400
-            PU #11 (phys=10) cpuset=0x00000400
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	4 Caches (type #4)
-   depth 3:	7 Caches (type #4)
-    depth 4:	7 Caches (type #4)
-     depth 5:	7 Cores (type #5)
-      depth 6:	12 PUs (type #6)
-4 processors not represented in topology: 0x00006024
-4 processors offline: 0x00006024
-4 processors allowed but not online: 0x00006024
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,57 @@
+Machine (phys=0 Backend=Linux)
+  Socket #0 (phys=0)
+    L3Cache #0 (4096KB line=64)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (16KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+            PU #1 (phys=8)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (16KB line=64)
+          Core #1 (phys=1)
+            PU #2 (phys=4)
+            PU #3 (phys=12)
+  Socket #1 (phys=1)
+    L3Cache #1 (4096KB line=64)
+      L2Cache #2 (1024KB line=64)
+        L1Cache #2 (16KB line=64)
+          Core #2 (phys=0)
+            PU #4 (phys=1)
+            PU #5 (phys=9)
+      L2Cache #3 (1024KB line=64)
+        L1Cache #3 (16KB line=64)
+          Core #3 (phys=1)
+            PU #6 (phys=5)
+            PU #7 (phys=13)
+  Socket #2 (phys=2)
+    L3Cache #2 (4096KB line=64)
+      L2Cache #4 (1024KB line=64)
+        L1Cache #4 (16KB line=64)
+          Core #4 (phys=0)
+            PU #8 (phys=2)
+            PU #9 (phys=10)
+      L2Cache #5 (1024KB line=64)
+        L1Cache #5 (16KB line=64)
+          Core #5 (phys=1)
+            PU #10 (phys=6)
+            PU #11 (phys=14)
+  Socket #3 (phys=3)
+    L3Cache #3 (4096KB line=64)
+      L2Cache #6 (1024KB line=64)
+        L1Cache #6 (16KB line=64)
+          Core #6 (phys=0)
+            PU #12 (phys=3)
+            PU #13 (phys=11)
+      L2Cache #7 (1024KB line=64)
+        L1Cache #7 (16KB line=64)
+          Core #7 (phys=1)
+            PU #14 (phys=7)
+            PU #15 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	4 Caches (type #4)
+   depth 3:	8 Caches (type #4)
+    depth 4:	8 Caches (type #4)
+     depth 5:	8 Cores (type #5)
+      depth 6:	16 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,52 @@
+BZh91AY&SY"ÿ gx¥ÿ°þwÞïÿñ?ï~Àÿïßð @  ø`">8 WÀIÝ¢|¼p ×ÀzÚ\ž}÷­Î ÕÀdåÉUÎcRÈtíÎuց- t       :§ïÕ?ÉOÚªPÔÿT           
+0T“Ôjc@É“ Œ  !“10	¦ jŸ½UJzš
+¨@   hh  €  %?T¢M2š¡¦CF@         P¦!™<“ Aê ÄP bx£j4 êR@‚ÔÓM2ˆÅ2zš4Ð 2ê zƒÊl§ê$ûD7@¯ê ó 2 (spBîˆH¬?ˆÀ'pBàÀ­H¤0	t¨„‘ µH÷`L@úN¯[Õõ®%ï{Þþ¿±ìñj	¶:éx€;ÄQuXQÆ¿ $(„-…HH¨${DDâ¤$HSÃÍÝu×]J]uÃ1ùw fúÿ?°ô2Ið|z´MŠh©Vˆ7€³•íî³»·yfŽpá´È4 Ő$> ”²‚á©Èõ¶’‘çVMa$uïs|ÃæÉ¬:Ó²W{^KÖí´\½ÁVíµ¼v…­ÛjX»‚­ÛhÛĐm\¸ƒëݽ)–]¢âºƒw·k–×—¸*ݶîæÈ·m¢åî
+·m¢ÒjI$M“R[ºN“¤é4šM&èZÀ뻨ìÑÛ{TRËÜnÛd’D”RdAQ]LÞS©2žo›ŒH™Ñ¼¤B[ñ$PïHƒð4|uÈ»  £¾×c“À€£DGÀ3à5Z·cVmŽ ÄÀ$6@Г4 ;h%’üXIE=(€@`ÎT#AYP@#¶ AfrØ€DfI‚ºµ–qqºH®«®ñÂq»uo6Åœo½8陘ˆ˜èçå HŠuÜÒÝÖf`Œa™„À˜FfbFs¥žÓ,ÅLÊñºEÆ–Ι—LfgÄVæå)!ÀŽOÂÁ›Ë3 ñœI Ÿ
+(c	–Â	$@I20“‘ ¹²Ë¦XªÏà"""­³u2Ü­ÌÊdDDDBE"TBB¢„ºC"ȐÈ"’”‘"$?ª	YòÉÂÃ,AŒ«$Ë*°«2Åë꿜> ô~€×Ö¸7?E…‹XSæÀ`¶BÅ®A µƒnCoû…4 P;ý•èÞyçÃч§A8‡â ‡Ht…õ»Õ_zªý½=Ý     1I&V,V*ÅX«b¬UбV*Å-jÖ­jÖ­jíÞ;Ý'¥ÍÉÅÌå!(@b‚@Á‚BX€Èˆˆ@a 1'
+…R		b"ˆ¡„8P€Äœ(0`0D 2KV+”=º×R`?Hq`溗åק϶søïƒ€ÊêU)JŸ  ú‚¨7
+9èáØ6=dœ²æÛU­.²ï˜k=sžÛuÖu×mwÛà>BJ’I!ò…$“Þ
+û°$Iñû2:ùyõtíWócË^{çë×ä`’{±du¨%éj*¤ßŽu~‹_36ªÖ:+°r>ÊM±¾ªì^Ó½Zû[¥Ã¶­Šƒ6ßîãlvôÞ#àÿ oã
+úxÜ8òΫ31ãÆvïnó߈3Azgke·ü¿9î$œîã{‡LsxÆ6À^öéžØéÇ–ûÁ…×âõÎ×uçlgVc~>[ã
+h+!ìFÞƒõƒèpnP|AØ?@`;Ô4ptëéÞU^÷^ªý¨p
+ÁúAúCñ‡@d?œ(;C`ù‚Áà0Á ÀzÁ`Èz!ä>´\>ÿ0ü၀þ$¡H©!]!Ü,O¶IóÁÞI6[‹‰@)J  Û[÷Ã|ýy¾¾x¯nsôÛ~œûþ•xðG^½:yùç9m㡎2XÚ@”6“ ’À¦Ò`XÚLK›I€HHfTGxB£)´™€I`Si0	,
+m&%M¦ I€:m&%M¤À$°)´˜–6“ Ì¨…á±Ói2–6“ ’À¦Ò`XÞf$Àe6“ ’À¦Ò`XÚLK›I€Id)Pa±Ói0	,
+m&%M¤À)Yjª¨R”   ¹$’d’M^!Ÿ*ˆUª!TB¨YEe”VQYEe”¢D*ˆx·‰!Y	›·ZÀˆˆ´  c*a„Ña0·3›˜Û-´ ÛtÝݵ   t’I“
+,Ç1Ìx Z(UªˆÃ@Kl¶Ð ·JÌË+µ–eÿdÈ–…ã6“Çq’À¦Ò`2dÈgÏž›IçÏŸ<€›m’Y
+U˜ÀRˆR¬ÁÛÇ·mñíãÏn9Þ{xöñíÛ|@Ön€ ™h¶n‚ FÙ=O· fÅG–¤üæï¤DGË	”mO´iàA³C ƒ^C7ÕSt“·‡„ld€ Ì…3ÎųÀ(®„¶líi¦škÍ$˜fÚ²BH5I5ÖÓšUM)ÏkuªõþÃÞûj¯]ßÈ      Š®,¥RUW Õ]ºùÙꬪÌÌðYU™™î¥à !“–$³êã@H™ì…ãZ8Ç#ŒÃUUDDBmfÙ`äBÏ#Ù¨_hÄ1˜Bg`™»WCŒQã؆ÍpâD0ï	O(®Hj%ç1 n2$¸¡‘ H+Ëë‰×k­Òª`íxOІ¯o§â‰g˜Vès„ÃÅÜç‰Ï%ê $"¨‡ ¡¿Œä9u'¾´œ€®®)”Ïzµ+‹J…C<_wÜ6N¸Åö¤¾âôBU!"‚‘*H©
+
+½,L€B&£Õdà”*5©	 ƒR	±%ZçF‘–eEb4ÈpÔ# ¨
+½í`Ú«@lZºodƬœc8bÅƒoËPÕ_†øÛA0BÈ#Ý+
+ÑÜÍûH±7Ê£ƒf «ç›ƒ6xª:¨bŠ­6åäò]ûß
+«Ž€      Ufè mTëŒE«ªGæ·líÒˆ_5‡úSÉ<ñÏæ®Ci"‚Þ<bÍRÒ˜^Ìxʯ“ø±lݾc®aåÚÉVËݬæÚÍÙiœpí${ªYSÓFº²)HH)¦fcZÖ_ØÓQ¬)$ʐU–Ã	l&‚°ÂbvÆù™‹mh«sÛxvűÛh«Õ‹1º±‰r˜½±ºÕÚ“Í«Í!ÆwåœÄ/¦Õ1R©§<YŠ$ëœXFüÚ¶ÄBú¦¹µWPH^÷íAÍÖÇKÎüó~»j¤Þ› VUtBîÍ%Òe’mTÓ¿$º^ŠyqŒ18Àé<•øÛÔ8·Õ*§^/uï{Ø`¢bXÄKГPB9ÑÛ‡´Ó_Þëe3º­mÓW¿9ÜÞ0°hªK±*÷j}ÜçsxÂÁ¢©.īݩ÷sÍã	ÑS—bUîÔû¹Îæñ…ƒER]‰W»Sîç;›Æ
+Iv%^íO»œîoX4U%Ø•{µ>îs¹¼a`ÑT—bUîÔû¹Îæñ…ƒER]‰W»Sîç;›Æ
+Iv%^íO»œîoX4U%Ø•{µ>îs¹¼a`ÑT—bUîÔû¹Îæñ…ƒER]‰W»Sîç;›Æ
+Iv%^íO»œîoX4U%Ø•{µ>îs¹¼a`ÑT—bUîÔû¹Î½SD²§ý
+áÝÒðw÷à8wÞ”Êtf[X,C9e%!k¥Q³ÍfIm|vÆn}–€<1à¿3~m^Ò¨wF­Þ;Æòò.":
+RÎ¼¶vhBãÏýÌ Œ œD©)©I%")QREÓ܆Üc©ª¬ñ~-Ÿu×Ué¯ñ‡µìj»ö       Ú«7@j®¼wïo˜vìžlÛU%¬Ç/±7ú%m·ÛjnÕ±,g/¡iÖ,ç©2ÊÄÀÙizh	h‘Ê ˜T¡ÔEª”n²™ùôß5³XÛ-FRV$„­–›QLLN¸$ºòÉKÚÓyS§,o©®Ë`ï£fléñHh@`†Làe€
+›™:N[Ó®Ù›¤B©#9½àç˜30ÚÓ;ÙÅÀÀ­àCK7"+eåV!C=³¥ËCXFy»Šbù¼ÕJÍ^þÈ	å†þþ–×+Äm'ë½B}0ꁾ‡gBà¤JÙØU5¶Eõt‹2
+ÙËÖÀXhô€¾mòó¸ë׊§         3Œ¼Þmëã¹äË|Z3·2™¬a¾/j2ͤ‰Ój±;ªI73jSmƒth©ÅMéKËLXŒ)/*JVTœ8ºûbÉ©1¶¥¯—]r©D€ ¸ÊLFò"MÌÀ  ½T¢Àð˜u{ÛÕfAc_‹yj•1[Ü.ìæ×æqj¢ôw¦€:ˆ¼‘1Èùˆá¯—wH^€n§„R'º„êZÒg§Hï€30 8y…&ÁÀZºA]v½¯Ž»véZß-¾Õ@       æí—K—†WêºùX¯BͳMµŸAA¶ôÍ­©ªµNÔòZì©«ZÕ|ôãf՝1»0îïi ¾œZlÖ¬	
+eDЍ€ªAçHÍޤâñ'JLsj¦œßšA/¥=6b³-³U2I:i(‚5m-€Î:1|LÉ%µÆÖÒõI’Ô¥nÛÅæÛR)Pß¶øã‡@H_Óq$³>]ïJ_N,®2¤9 êD®ÐP›D„ý„"è+"
+àÎÆt¹Ì¡™»ÈD*ÑWw;qÅÕ×§¹çÍۍ        ½Ïµ–Öt	
+ÇDh·<Þ\3ZZ[«ã@(Of¡Ö¢9¨Z“`Ãj½Œ;ä΀°ã8ˆp ÁR¤à©qxÎYªŒ3Òö¿ó³Yµ‹5°’yc‡
+$ŒäÙSm#I“KÕÛ^ ¦Ðå‰Là¾Ûz)¾êÒC,J·LæÚÛ}›¶ÂËU¯{¥)O!ÂïR¹°Ã·ë8D‹{[gµéRø–H’U#º^‘;†ðc´tÖ3‹tß­úõãp°oºƒbµìTÖûÜ¾ÛæýÃmT¦:Z¬’^õ*nÅöÈZ›ß\Lí{)âõ'YНpL¯–j©\Öõ܈“V—’?˜mL<íÛUºII0m[VuHm×ûÚtcYí{opÐI€zwÏÃϾ`¼¹ñ!iï.iAMÖæéˆ÷
+ †o&fr/ÔFî <hÀWϾFíøuâüT’ä0èpÅÚIª•Rªªff‡"E2ÖÅ¡¦Ë8È.k5$˜¨Æo|ZÒjY“›0]mUKÆýl	uNs»öᕌ7Ûf/‹µªËÁnl±G6RÍ—®BÃmk‹7âÝz‹§pd4µ¾/×;g›bÕ~~ ¸n¹
+&Ü!œú§tçË|÷WÚöžUªš¾zc¾$˜Øf³B¹ÛŒkYëŽ×Îu®›g¦wÏã8æ·VÙ¶Üï~:‡Z÷ßZáÆüv¿=-€ÅœØ+fk„-kïmgùƒüÿWÉëþë®·íý¿êÇå
+ #àòh?8Z¬+Õn·÷…Âßààô+øÕz   W5]ÈU¢?0ì-¿ü3þûòýupןÞ€Ûöch/ ýA>È>ÀŸ?ôÌÎ@Ÿ0›†‚m¶µ¸K°nð[9ppа6@HPnæ/olIøòÛ |ƒðü!³ª@䪰>`Ø<0T°|î	ü쀚Âá÷‡è	ãÙý>WÜ'°$;`=`à¾~PHqCù@’ƒ! Ðzh+øƒ$C0r	&–	Ð/».!(,‚ƒ!Ô>™	‚UD*¢Q
+¨”e”e”e”e”e”e”e’ª!UªˆUD*ˆ\%‚Í™ÿî6P9@©	 ª
+ÈTˆo"D4%P}Á€}á=䤤¢QŠEòð`µ\,@ûàd>Aè´,°X$K"./ךæÝ¸Ü3`ä2‚‚Pgë·ëôàëã!:)Ð'p à,ˆýàH|çp÷l`°?(~Ðê¸>Ûñ²Á1@È$9`ü/¼‰íëZÁ€˜ĈÜ»ö„èì¿sä˜p±ÅÃ`  ¼P}ÒA!¼ °e‚ÁÂ<I=÷	@ÈtX'!ÈI¸lp—
+ùH‘
+ Pd?yƒp|üÃ÷þÀîï€H~ ‘8fÞAÆÝAèÜ
+ƒøííìøè'ðá.„õzz…Aè	îy…‚èIûÞ¡°làöõ	 Ð8¨M¸X2|‚:ƒ yƒ°y"H…ê|e¼Èt	„%XC>çï!]ƒ}ÃȃßAÈ{Á:‚BƒÒ ýC`¯.Á6	‚¢$|ÿÀóà9
+¼Þ$GãÙ ÈrØWwä®`žAìõžÕ¨KYîþ¢G¨==àùÁžÁ x8
+È#°P}pžT—ÓÀ?f€î‡´÷C¸z¨PJÜ	«@ öà2Ö Ý®Àq3ò¨=C€h=ÁÒ	AR… tA!̓¨h=áî
+ä%úÃpŸ‡	Aì¶ð9HÜàÜ'”˜	òAÜ
+
+
+‚w¬…‚‚‚‚Þ¤‘
+Dˆ$*xî	nZÃàÜ8
+
+§¨}!ÂX	`{à–	pš	mõõݐò
+z øâƒ¨$1ÏDH‡P±$Cp¤H†ƒ*
+œ\=CÐÀ	
+j‡HI0"$*ü„óÓA=âàä'À€ƒÀuî¡=ƒ Ø;‡;l„·@È$Ÿ’‚HUA7Õé‡áôA$ëRTª%H‰0ï0>!R$BÏ0ÀJM! ÷°nx
+PP|ÃÇA;‡ÚmÀKö$ˆw	AõR$CöƒÌ!ð€@ñw$S…		/ð
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,88 +0,0 @@
-‹ øÓ9K í]sIr®ukýо´#ì9õ]ÀÞybm‡c7ޝ8çŽÑ[‚ø
- ©‘ö×»
- 9 1Ct%»R–ò}°;ú`‹
-"ûíªÎz3K‡n\ÿ/nof¦ÿ?ïj Ñûü«Ž^þ¬;üúÈ;­2^)§õ;¥7þ]㫼›<ìûv×4ï>Þmî–‹õ+Çu»=ÇâEŸÇ»ÛÌF¿†Å_[g½V.¤ø[¯âÏÁoŶ}X¬?mF;Gp8Æû7âo¬	áEüÓ¯ö]£F{¯ <þ9àÝ~¿ÙýÃõþs·¾Ýìn·éOÿÖ­ÓeÐýǺï–ïÓ%Ñ|jW‹å×ôí߯6·ÝòÒïÃñ·Íº]u鏗þý?þ÷?5ÿ¿Û¬ÿñoþ§æÿþ×ύù)¨û÷¿¿ß÷Ýv»Xߥ:9œäÏÿþ÷ümŸÚŸÜ4ý];›wÍ~ñ÷üݝš†æ?ÿø~;ÿº_ÌÚesx£êý~ñ1…înŸy?Ûìºü…ÃWò·Ì‘¿dÞÚ>ä¿þÚíóooº/³nÛ/6ëÇ¿Ë×ým³ì>§-ÿd¿lŸ^¶é»§?¤Ö|^uÍm×l÷]ÓïgÍj¿k¶m׬f]3û2iÚíbÖì»m³êwé+wù+m3[m>§ÃúüÏlhfËOˇý¼¹í÷M;Û.šÕêKóéKúVûômÓÿMúO3ï›~Õì¿îÓÏš>â/Ír•~šuºb×ýM>÷vþåf½è7»æv3Û.Ó»ûÒÌҏ1û¢Có¥ßîše;ÿt³\½ÿ¸¹Û¬ÛüQx=5?yÿþém<~¾Á?ï›v¹¸[¯ºuŸ£m&ïÛÛÛôîÇ>eÕ|\¤·þˆnÜäø7Ÿ»þ¡]¾ßn~évͪ]·w]þFxÿþôRÓß祦q©•_j“ø“QßîR3ßç¥fp©Ñ.µøí.5û}^j—éRÓöÛ]jîû¼Ô~®¦q©½r©)óí.5ÿ}^j¿?WÃ¥öê ª¿Ý¥¾ÏKí÷çj¸Ô^@§ßîR‹ßç¥öûs5\jÿ[çj“ïóRC^íûKvL¿ÏK
-y5â¥æ¾a
-÷;]. at b8‚~Ëkí;]/@fx­}Ãt‡þNZ#^kß0ß¡¿ÓäÖ¾¿ÜšþN—\#Þ×Â7¼Ö¾Ó5d×¾g~ŸÜÊoù?ÓEяyŽ×ýŸÚ_ø?Ó
-þOò]íp‹ôÖ4&Å 6zêlt!«ÕNã$?i¬
-^5Ö8oœi|0w|„UžL¦Æ6Î…ôO´J7q:µÑ¸©kLpÆ?ÿ;ÕdzüwºÑQÙ$õô¿8‰éM”‰VMÒɼnT>ûñÈôÏTÑ7A7!Nl<©¼U&ÍŸM>T«ã¡6ª½Õ6Á†ÉñPíBz'nšTGºôÒÛž6V[ßøôNB>v¢¢¦o›ºfÇúf2M?Xc¦é 7QAMŸé½Þ€>š¿‰N?¨ÕéÓr&JùPoÓÒØIþ¹¦@LŸ’Mç6“ô7.8{|>×Aä%Ws<tÒL½š¤2¤·¦¬7&›0cÒ –ÞGþLL;Ÿ¾ßÔ„ô¯Ò×&Ó㻝¦·=IíO‡†ÇO6}GŸÂž?‹Æã×d2IqÈŸ jâã'¾îÓšÞRÈgŠèá@ó§âòO5y:2¿C=	¾™†ô6¼OÆáÃÒ.>]\ùÇ
-ÇÚ&jsÓ	‚vñø8—ΕâŸF†ôcYûx´Ë?{º?¤¯èi:0½‘Cx§.z—.±ÃE£ž¾·obºtŽxh¦éïO´wù=OoDå7½X÷»|@:P‡Ã›Æ Rò‡š> Çÿ?½ò…‘>!;qù^I.dO‡˜xrü8/í¦Ó RÜLо·oú^ÎçÿýñÂ/¼ðÂ/¼ðÂ/¼ðÂ/¼~ ×ûYÿ¥o¢‰~¢¦Î›÷ûŪËi)kƒòqò´Ö훜ÔV^þf³{X¯ë»æéÏ—›Ù}w›¾å7Ëÿ¾Èÿï¿îÇï3¬ÿ‡
-V‡­Éý?lˆèÿÁÁoÄÿ¶û¼H—ïx×Ayü½Òñçà•ø§ß÷Ýj„Ë`xÿctŒ)þÁZ…øsp=þ³íñ>jòúoÔèÿÅðøç¥MúE0ðþoœ.j•ã£Aü9(ˆ¿Ùn–›»¯ÅBqÿ7£ƒƒþY Ä¿ŸïºööæÉ*wõ¯ûr8ó"þ.ôcá)ÿœÿãÒÞ:QPôÿdÕ¼Ù¶³ûö®»YܾzŽ«úW/õï=ôσÞECÑvÁ_Óü)åú·iýs ¡ѐõ?xöOšÿ;ý³p>ÿOà~ ŠýÏ»Ý*ÍúÓãÿ¦ï—Ýà<PyþÇZüo‰ÿló°R(V>ÿsN{Üÿ9@¾G6ú?ÔóRVŠ×L®rÃýŸƒâø/Ö·ÝSt”ÿ	ÄŸjüsùþÐs\ÿÃEþGŒÿä>ÿ‰9€X¨ú^Jšén¶í®_äö'¿yŽòùTùÿ•
-Uÿý×íx㿾Èÿhƒþ/,ü¼^|Zt·¸…ªÿCk³ç ¬ÿ¡,”/ªþg›y·ëÖ³¯Ç€WÓ×õo_è?è ¡|ECÕÿ/í×ýÍæÓM»ßof‹¶_|^ô_çýû ÿ':@ÿ’!çÿçí®»½I_¸YµÛ×ÏqUÿþ/¯5ò,<… þ/™Põ¿~X}ìvy°ïú+º¸>þûý{øXÈ됼\húWõýþ¨ñ×ÿá.ý÷4Ü¢¡ê¿ºÿúgþÙPõ?ªÿãâùÏjý³ð¡í[ÜäBÕuÿò?,`ü—
-Uÿµýþ/àÿ
-Uÿãú?^ŽÿÁø¿Y˜@þ¢!çÿkû?ðüϹÿý?¥AÕÿ¸þ—ó¯=üß,X4 
-Mÿº¾ÿÃÁÿÁ5þÕû ÿËBn»ˆ\¨ú¯îÿ@ý˜þɆªÿÚý?4ÖX@ÿÙPõ_Ýÿþ,`ü—
-UÿÕû`ý—ø?dCÕuÿÖX€ÿC6äümÿò,Àÿ!ªþ«÷ÿ@ÿòú$/—Áú/ÛòåŒÁþ£Õú]:*† ÿñÞÿ³ôƒãÿ|ÿ×ÁiÄŸJüûù®ko‡ï [>ÿwë<œÍÿó &¢ èÿÙû³mg÷íÝÕ½àËóÞCÿ<`ýO6ýö¿¢ùSÊõo±þÇò}²!ëðìŸ4ÿw
-úgá<ÿþßÒ(Ñÿ¼Û­Ò¬?=þoú~9|+ðòüµù?ÞÿÙæaÝ8GùüÏ9
-ÿ˜ÿɦ@ÿÇõ_Â9†Ýÿ³êƒ‹Zåü¿²Èÿ³PÿÇý?JÎQ>þ'¨ñ¯^ÿþ?,äý_Pÿ-ªþ«×#ÿÃúÿʆªÿêõßð²€úoÙPõ_½þõ,X(_4TýWïÿþo, þ[6Tý[ÿ}¡ý?xÐØýY4äüíúoäÿXx
-ü_2¡ê¿zý7ü?,äõ?H^.4ý«êþ\ÿÿG}¨ñ×ÿá.Öú² áþ
-UÿµýèÿËü²¡êTÿÇÅóŸÕúgáCÛ·¸È…ªÿêþäXÀø/ªþ«û?àÿbþÙPõ_»ÿ?úÿò€þÿ²!çÿ+û?ÿçáÌÿþŸâ ê\ÿÇËù¿×þo,€Š†¦]¿ÿ‡‚ÿƒjü«÷ÿ@þ—…Üv	¹Põ_Ýÿú0ý“
-UÿÕû`ý‡ôÿ
-UÿÕýèÿÇÆÙPõ_Ýÿõ_àÿ
-UÿÕýXÿaþِóÿµýÈÿ± ÿ‡l¨ú¯ÞÿýXÈ됼\ëßSvþ92Ìÿq²ÿŽ1bÿ
-âÿ¼ÿgé9†Åÿôþ¯ópø3@‰?ßuííð`‡Îÿƒé¿1ïÿ-ü?,œÍÿMza2 
-ŠþŸ½?ÛvvßÞ]Ý~hþï £óü߬ÿ±€úoÙPôØÿýŠæO)Ïÿ[àÿaú—
-Yÿƒgÿ…óåû+¬ÿ³p>ÿOà~ ŠýÏ»Ý*ÍúÓãÿ¦ï—÷/ÏÿXë‘ÿcá-ñŸmÖý€s”ÏÿœÃþ< ß#›ý×	ç(^ÿ1ZYäÿY(Žÿãþ%ç(ÿˆ?ÔøW¯ÿ†ÿ“…¼ÿê¿åBÕíúoôÿäù_ÙPõ_½þþoPÿ-ªþ«×£ÿ'Ê
-Uÿµë¿ê?X@ý·l¨ú·þûBÿ>ÀÿÉ‚ÆîÏ¢!çÿ+ÔUþPÿi1þ³ðø¿dBÕõúoøXÈ됼\húWõýþ¨ñ×ÿáÐÿÿ¡áþ
-UÿÕýÐ?ðȆªÿQýÏ6·€þøÐö-nr¡ê¿ºÿù0þˆªÿêýÿáÿbþÙPõ_½ÿ?üß, ÿ¿lÈùÿZþë¿úgáÜÿþŸÒ ê\ÿÇËù?úÿsaaø
-Mÿº¾ÿÃÂÿÁ5þÕû ÿËBn»ˆ\¨ú¯îÿ@ý˜þɆªÿêý?°þÃúȆªÿêþôÿcã¿l¨ú¯îÿÀúðȆªÿÚþôÿáþِóÿÕú˜£ÿùàÿ
-UÿÕû ÿ7yý’—Ë`ý[ÊÎ?G†û?tŒÊ¾KG¥_áÿà  þÏû–žcxüŸîÿ:8ôaÿ~¾ëÚÛá;ÀÿŸìÿ
-žÿY8›ÿ«‰B>@ý?{¶íì¾½»º|yþÏ{èŸôÿ—
-Eÿ‡ý߯hþ”rý[Ðÿ…äûdCÖÿàÙ?iþïôÏÂÙü’Àý@%úŸw»Ušõ§ÇÿMß/‡o^žÿ±ÖEä8xKüg›‡u?àåó?ç4ê?XÀüO6ú?®ÿÎ1ìþŸU\Ô*çÿ•EþŸ…âø?îÿQrŽòñýÿ¹ Æ¿zý7ü,äý_Pÿ-ªþÑÿÿÇ ýeCÕõúoÔ²€úoÙPõþÿ?ðȆªôÿÿ1@ý·l¨ú·þûBÿ¨ÿfBc÷gѐóÿê¿Oë?±ÿ/O!€ÿK&TýW¯ÿ†ÿ‡…¼þÉË…¦Ußÿúo¨ñ×ÿá.Öúÿ± áþ
-UÿµýúgþÙPõ?ªÿãâùÏj
-ý³ð¡í[ÜäBÕuÿò?,`ü—
-UÿÕýð± ÿ‡l¨ú¯ÝÿßÃÿÍÖ{eCÎÿWö ÿÏÙÿý?ÅAÕÿ¸þ
 —ó¯üß,Xl (šþu}ÿ‡†ÿƒjü«÷ÿ@þ—…Üv	¹Põ_½ÿêXÀôO6TýWïÿõÐÿC6TýW÷ ÿÿeCÕuÿÖY€ÿC6TýW÷`ý‡¬÷ʆœÿ¯Ýÿù?àÿ
-UÿÕû ÿyý’—Ë`ýkGÙúçÀ0ÿÇéþ?êÐÿþú”ÄÿyÐÂs‹ÿéý_GãHñïç»®½¼,aþŸSÿ8›ÿ»ôÂd@$ý?›¶íì¾½»¶|yþÏ蟬ÿɆ¤ÿÃð¯kþ”rýcýŸô
-]ÿCgÿ”ù¿súgá|þŸÀý@EúŸw»Ušõ§ÇÿMß/ï^žÿI¿Eþ…7ŶyX÷×ÏQ>ÿs.ÂÿÍò=²)Ñÿq¸üåë?úPÿû}Êãÿ¸HÁ9ÊÇcâÏ9þà×ÇÿËúïÿ7yÿÔË…¬ÿ‚ðòùÔùÿ•
-YÿàWõÿõßýÿX@ý·lÈú/( '¬ÿZƒú/,”/²þ
-À¯ëÿ¢þÛ8Ô±€úoِõ_P NÐÀþ?<hìþ,zþxøUýÿFýwDþ…§Àÿ%²þ
-À¯ÿõ߯ÂÿÃB^ÿƒäåBÔ¿ªîÿ0ðp@Žÿ¨þw¹þƒþ,h¸?DCÖmÿôÏü²!ëLÿÇÅóŸ5
-úgáCÛ·¸È…¬ÿÚþäXÀø/²þ+û?,ü_,Àÿ!²þGõ\ôÿþoÐï[6ôüeÿžÿY8÷ ÿ§4ÈúÕÿñrþÿ›‹ ¢!ê_W÷Xø?8 Ç¿vÿäYÈm—à ‘Yÿµý¨ÿaÓ?ِõ_»ÿÖX@ÿِõ_Ûÿþ,`ü—
-YÿµýXÿeþِõ_Ùÿþ?<Àÿ!zþ¿²ÿù?àÿ
-Yÿµû ÿyý’—Ëpý6þyd˜ÿCY|Ô&é_ÇÑÿƒ…‚ø?oÿYzŽañ?½ÿëÃóâ_Jüûù®ko‡o ;tþŸåŸ7þHCR4ð³p6ÿWFa=@ý?[¶íì¾½»ºüÐüßAÿÚçù¿‡þy@ý·l(ú?lÿ~Eó§”çÿ­öXÿcù>ِõ?xö_8ÿW:Ïÿ-öÿäálþo¸ˆ¢Dÿón·J³þôø¿éûåðÀËó?Ö:üo‰ÿló°îœ£|þ眆ÿƒÌÿdS ÿãò/á×’ꃋIøÊhe‘ÿg¡8þÛ”œ£|üO þ,Pã_PþMªÿÖÈÿ²÷Aý·\¨ú/(ÿ¦Ô+‡ü/Xÿ‘
-Uÿåߤúo
-ÿ'¨ÿ–
-Uÿåß”õ_ƒýŸy°P¾h¨ú/(ÿ¦Ôkþo, þ[6Tý”Sôï=ú?± ±û³hÈùÿáåßEþ/åì¡þ[cþÏÂSàÿ’	Uÿåß”úoíáÿa!¯ÿAòr¡é_U÷è ÿÔøëÿpë?
-þ4Ü¢¡ê¿ºÿúgþÙPõ?ªÿãâùÏæ6 Ð?Ú¾Å- at .TýW÷ ÿÃÆÙPõ_Ýÿõàÿ
-Uÿãú?.úÿ{ÿ7èÿ/rþ¿–ÿÃú£ÿõŸ,œù?ÐÿSTýëÿx9ÿ÷ùËÐ?‚
-Mÿe›üþ¨ñ¯Þÿù_rÛ%8@äBÕuÿêXÀôO6TýWïÿõÐÿC6TýW÷ ÿËÆÙPõ_Ýÿõ_àÿ
-UÿÕýXÿaþِóÿÕú¨Ãú¯Bþø?dCÕíþèÿÍC^ÿƒäå2Xÿ޲óÏ‘aþ“ýtŒû¿°Pÿçý?KÏ1,þ§÷œEü9 Ä¿Ÿïºövø°Cçÿ'ûÿEìÿÎÃÙü_§&¢ èÿÙû³mg÷íÝÕ½àËóÞCÿ<@ﲡèÿ°ÿûÍŸR®«ü?, ÿƒlÈú<û'Íÿ‚þY8Ÿÿ'p?E‰þçÝn•fýéñÓ÷Ëá[—ç¬õÈÿ±ð–øÏ6ë~À9ÊçÎaÿGðü'›ý×	ç(^ÿ1ZYäÿY(Žÿãþ%ç(ÿˆ?ÔøW¯ÿ†ÿ“…¼ÿê¿åBÕíúoôÿäùÙPõ_½þþoPÿ-ªþ«×cÿ,”/ªþ«×£þƒÔˆªÿqë¿/ôïüŸ,hìþ,rþ¿Vý·9ÖâùŸ‡§Àÿ%ªþk×£ÿyý’—Mÿª¾ÿCÃÿÁ5þãú?úÿ#4Ü¢¡ê¿ºÿúgÏ{²¡êTÿÇÅóŸÕúgáCÛ·¸È…ªÿêþäXÀø/ªþ«û?àÿbþÙPõ_½ÿ?ÖY@ÿِóÿÕüèÿÏɹÿý?¥AÕÿ¸þ—óôÿçÂbÃÑÐô¯ëû?üPã_½ÿò¿,ä¶Kp€È…ªÿêþÔÿ°€éŸl¨ú¯Þÿë?, ÿ‡l¨ú¯îÿ@ÿ?0þˆªÿêþ¬ÿ° ÿ‡l¨ú¯îÿÀúðȆœÿ¯æÿ°ÇþèÿËü²¡ê¿zÿ蟅¼þÉËe°þuÙž/§ó(}H¿äñ_©ìÿ‚ÿ£>%ñÞ ´ðÃâÿtÿ÷yÿ§ˆþ/<âßÏw]{;xØ¡óÿ_ãïbÄó?˜ÿˆ¤ÿgó϶Ý·w×6ƒ/Ëÿeý{ýó ½Ë†¤ÿÃð¯kþ”rý[ãÐÿ…ô
-]ÿCgÿ¤ù¿Ð?çóôÿ–F‘þçÝn•fýéñÓ÷ËÁ{—ç¬3ùÞ
 ÿÙæaÝ_?GùüϹˆúðü'›ý€ËÏ1pý'Ïú’îsÿ}ðàþ_Ÿòø?n RpŽòñßX…õÈñ/( ¿>þ‡—ó?áÿ`!ïÿ‚úo¹õ_P ^>ÿÚ"ÿÃò=²!ë¿  üªþõEþGGÔ²€úoِõ_P NXÿµýŸX°P¾hÈú/( ¿®ûBÿÁXôaõß²!ë¿  œ ÿ`áÿdAc÷gÑÐóÿÃÀ¯êÿÂÿåuDþ…§Àÿ%²þ
-À¯ÿþ¥þ…ÿ‡…¼þÉË…¨UÙÿa"ê¿Y ÇTÿ‡»Xÿ	èÿÇ‚†ûC4dýWöèŸ<ïɆ¬ÿ1ýÏVG蟅mßâ ²þkû?ÿaã¿lÈú¯íÿ€ÿ‹ø?dCÖÿ¨þ—ãþoÐÿ_6ôü]ÿòÿ<œû?ÐÿSdýêÿx9ÿ÷ÆÀÿ͂ŀ¢!ê_Wïÿ¡àÿà€ÿÚý?ÿe!·]‚D.dý×ö þ‡LÿdCÖíþXÿaý?dCÖmÿúÿ±€ñ_6dý×ö`ý—ø?dCÖmÿÖX€ÿC6ôüeÿò,Àÿ!²þk÷ÿ@ÿòú$/—áú·„Žóœîÿ“îð°Pÿçý?Ï1,þO÷ÿ÷йÿ3â_Rüûù®koï ;tþ|LÿyüÏK‚ÿ8›ÿ›ôÂd@$ý?{¶íì¾½»¶üÐüßAÿFgýÿ¨ÿ–
-Iÿ‡ýß_×ü)eùÿ<ÿ³ÆaýŸè_6týýÎÿ•;ìÿàÿcá|þŸÀý@EúŸw»Ušõ§ÇÿMß/o^žÿI¿Eþ…7ŶyX÷×ÏQ>ÿsþoï‘M‰þë¿åç(_ÿÉwÜÿ9(ÿãþç(ÿUˆ?äøW«ÿØÿ™‘¼ÿê¿åBÖµúïp¨ÿ¶Èÿ²€ü¯lÈú¯VÿÐÿŸÔˆ¬ÿjõßáXÿú/,”/²þ«Õ‡cý7ê¿X@ý·lÈúµþûBÿÁÁÿÉ‚ÆîÏ¢¡çÿǯÿ>ªŽõŸ
-ã?O!€ÿK&dýW«ÿÇúoøXÈ됼\ˆúWÕýþÈñÕÿá.×PÿË‚†ûC4dý×ö@ÿ,Àÿ!²þÇô\<ÿY£ >´}‹[€\Èú¯íÿ@þ‡Œÿ²!ë¿¶ÿþ/àÿ
-YÿÕúÿýþoÐÿ_6ôü%ÿ‡GÿôϹÿý?¥AÖÿ¨þ—óo°ÿ/†/Ñõ¯«û?üã_»ÿò¿,ä¶Kp€È…¬ÿÚþÔÿ°€éŸlÈú¯Ýÿë?, ÿ‡lÈú¯íÿ@ÿ?0þˆ¬ÿÚþ¬ÿ° ÿ‡lÈú¯íÿÀúðȆžÿ¯ÕÿÃýÈÿ³ ÿ‡lÈú¯Ýÿý¿YÈ됼\†éŸ„{³_õ7ÛÍ/Iõûöó°­òÑáùŸŒ÷²<þuü9'+|Àþ_ö°¬Iú×1Fôÿa¡ þÏÛÿ–žcXüOïÿúÿAüëC‰?ßuííð
- ‡>ÿŸìÿ5ÖÿY8{þWZ¡\ý?[ÿ¶íì¾½ën·¯ž£|þï=ôÏæÿ²¡è¶Ù]Õü)„çíñüÏô/²þÏþIó‹ýÿx8›ÿ§ `þ/‹ýÏ»Ý*ÍúÓãÿ¦ï—Ýà<PyþÇÚôeäxKüg›‡u?àåó?ç°ÿ˜ÿɦ@ÿGûá×’ꃋZåü¿2Èÿ³PÿÇíJÎQ>þ£¨ñ/hÿ@êÿ Ñÿ›…¼ÿú?È…ªÿ‚ö”þ
-þ/ï‘
-UÿíHý4üß, ÿƒl¨ú/hÿ@Yÿ5Øÿ勆ªÿ‚ö”þÚ£þ“ô
-Uÿí(ú÷þO4v
-9ÿ?¼ýÁÿ•~Eþ…§Àÿ%ªþÚ?Pú?hÿyý’—MÿeÅà$ÿ‡‡ÿƒjüÇõ¸‹õ…þ¿,h¸?DCÕuÿôÏž÷dCÕÿ¨þ‹ç?«5ôχ¶oqUÿµýèÿÍÆÙPõ_ÝÿÿðȆªÿqýûxÿ7ØÿC6äümÿžÿY8ó ÿ§8¨ú×ÿñrþ﵃ÿ›‹
- at ECÓ¿®ïÿðp@íþèÿÅCn»ˆ\¨ú¯îÿ@ý˜þɆªÿêý?°þÃúȆªÿêý?ÐÿŒÿ²¡ê¿ºÿë¿,Àÿ!ªþ«û?°þÃü²!çÿkû?ÿcþÙPõ_½ÿúÿ°×ÿ y¹Öÿ„²óÏ‘aþ“ýtŒû¿±Pÿçý?KÏ1,þ§÷öÿaÿ~¾ëÚÛá;À–Ïÿ]4˜ÿ³€ù¿l(úöþlÛÙ}{wu/øòüŸ÷Ð?ØÿS6ýö¿¢ùSÊõouÀó?пlÈú<û'Íÿúóp6ÿGÿoq”èÞíViÖŸÿ7}¿¾xyþÇZüo‰ÿló°îœ£|þçœFý˜ÿɦ@ÿÇõ_Â9Š×ŒVùŠãÿ¸ÿGÉ9ÊÇÿâÏ5þµë¿
-ê?XÈû¿ þ[.Tý×®ÿöÈÿ°€|l¨ú¯]ÿmPÿÅê¿eCÕíúoôÿæÁBù¢¡ê¿výw@ý'¨ÿ–
-UÿãÖ_èßø?YÐØýY4äüåúoüO!€ÿK&Tý×®ÿöðÿ°×ÿ y¹Ðô¯êû?<üPã?®ÿÃaÿço„†ûC4TýW÷@ÿ,àyO6Týêÿ¸xþ³Ú@ÿ,|hû· ¹Põ_½ÿ?ò?,`ü—
-UÿÕýð± ÿ‡l¨ú¯Ýÿ?ÀÿÍúÿˆœÿ¯íÿÀó?gþôÿUÿãú?^Îÿ½Æþ?<Xl (šþu}ÿG€ÿƒjük÷ÿ@ÿ/rÛ%8@äBÕuÿêXÀôO6TýWïÿõÐÿC6TýWïÿþ,`ü—
-UÿÕýXÿeþÙPõ_Ýÿõàÿ
-9ÿ_ÛÿüðȆªÿêý?Ðÿ‡…¼þÉËe°þ§”Žó(kƒÚdý	àÿ`  þÏû–žcXüOïÿ:äü/â_
 Jüûù®ko‡ï ;tþŸå¯­ÍûÿE‹õ?ÎçÿFa=@ý?{¶íì¾½»ºüÐüßAÿéÁ?Íÿ=ôÏž÷eCÑÿaÿ÷+š?¥<ÿou€ÿ—ìÿ+²þÏþçÿJöÿVÈÿ³p6ÿÏu7¸ˆ¢Dÿón·J³þôø¿éûåð­ÀËó?Özôÿeá-ñŸmÖý€s”ÏÿœÃþÏ<`þ'›ý×	ç¸þ“T\Ô*çÿ•CþŸ…âø?îÿQrŽòñß‹ø³@íúoÔñ÷Aý·\¨ú¯^ÿü/Xÿ‘
-UÿÕë¿QÿÁê¿eCÕõúoÔ²`¡|ÑPõ_½þýY@ý·l¨ú·þûBÿ> þ‹ÝŸECÎÿW¨ÿÎþ/åì¡þÓ`þÏÂSàÿ’	Uÿµë¿ü?,äõ?H^.4ý+ôÿÿA Æ\ÿ‡»ìÿÿ?îÑPõþÿ?ðȆªÿQýÏV蟅mßâ ªþÑÿÿÇ ã¿l¨úGÿÿø?dCÕ?úÿÿ ÿ¿lÈùÿZþëþÔ²pæÿ@ÿOqPõ?®ÿãåüßkÿ7‚
-Mÿº¾ÿ#ÂÿÁ5þÕû ÿËBn»ˆ\¨ú¯îÿ@ý˜þɆªÿêý?°þÃúȆªÿêþäYÀø/ªþ«û?°þËü²¡ê¿ºÿë?,Àÿ!rþ¿ZÿuXÿÕÈÿ± ÿ‡l¨ú¯Ýÿý¿yÈ됼\ë_{ÊÖ?†û?tŒéY 
-C*÷ÿ…ÿ£>%ñÞ ´ðÃãŸïÿÙÿ«£qˆ?¤ø÷ó]×ÞÞ¶`þ¯‚:ø¿•FþŸ…³ùÿ$½0IÿÏæŸm;»oï®m_–ÿ;è?(¬ÿ³€þÿ²!éÿ°üëš?e¨þóøïƒ9®ÿ#ÿÏú?Ȇ®ÿ¡³ÿáóÿ_Çç°þÏÃùü?û(Šô?ïv«4ëOÿ›¾_Þ¼<ÿ“SÈÿpð¦øÏ6ëþú9ÊŸÿœ‹˜ÿ±€|lJô\ .?ǰûÿaÖç¢Îþ}èÿû}Êãÿ¸HÁ9ÊÇcÖX Ç¿  üúø^ÎÿÒqÿ9Èû¿ þ[.dý€—Ïÿ£¶Èÿ°€ü¯lÈú/( ¿ª}‘ÿÑþOPÿ-²þ
-ÀËÇk
-ê?X€ÿC6dý€_׿}¡ÿ`ú¿±€úoِõ_P NÐpð² ±û³hèùÿáàWõáÿò:"ÿÇÂSàÿ’	Yÿà×ÇÿRÿÆÂÿÃB^ÿƒäåBÔ¿ªîÿ@ý7äøêÿp—ë?¨ÿeAÃý!²þkû? àÿ
-Yÿcú?.žÿ¬QÐ?Ú¾Å- at .dý×ö ÿÃÆِõ_Ùÿaáÿbþِõ?ªÿãåø‚…ÿ›¬÷ʆžÿßÿqèÿeŽë¿xþçáÜÿþŸÒ ëTÿÇËù¿7þo,6ü
-QÿººÿÃÂÿÁ9þµû ÿËBn»ˆ\Èú¯íÿ@ý˜þɆ¬ÿÚý?°þÃúȆ¬ÿÚþôÿcã¿lÈú¯íÿÀú/ðȆ¬ÿÊþôÿáþÙÐóÿ•üVûàùŸø?dCÖíþèÿÃB^ÿƒäå2\ÿE–3†û?tŒ*ïÿª”ðpPÿçý?Ï1<þO÷Bü9 Å¿Ÿïºövð°Cçÿ'ûÿEÌÿy8›ÿç LDAÒÿ³÷gÛÎîÛ»k{Á—çÿ¼‡þy@ÿِôØÿýuÍŸR®‹õ?&ï“
-]ÿCgÿ¤ù¿óÐ?çùôÿ–F‘þçÝn•fýéñÓ÷ËÁ[—ç¬3Øÿ›…7ŶyX÷×ÏQ>ÿs.ÂÿÁæ²)Ñÿqý·üÃîÿYõÁEýén qÿç <þûœ£|ü7Vaý‡rük×£ÿyÿÔË…¬ÿÊõßùÐÿW6dý×®ÿ†ÿ“Ôˆ¬ÿÚõßèÿÂü²!ë¿vý7ú¿±€úoِõ?jý÷…þöÿàAc÷gÑÐóÿãןø¿u@þ…§Àÿ%²þk×ÃÿÃB^ÿƒäåBÔ¿ªìÿ0õß,ã?ªÿÃ]¬ÿôÿdAÃý!²þkû? àÿ
-Yÿcú?.žÿl:úçàCÛ·¸È…¬ÿÚþäXÀø/²þkû?àÿbþِõ_¹ÿ?úÿò€õ^ÙÐóÿ•ýxþgáÌÿþŸâ ëTÿÇËù¿7þo,6 
-QÿE›üþÈñ¯Ýÿù_rÛ%8@äBÖmÿêXÀôO6dý×îÿõÐÿC6dý×ö ÿÿeCÖmÿÖY€ÿC6dý×ö`ý‡¬÷ʆžÿ¯ìÿ@þø?dCÖåþèÿÍC^ÿƒäå2\ÿE-?ÎìÿÐ1Z­“þU¾
-ÀÿÁ@IüŸ÷ÿ,<Çàø
 îÿ!ïÿ
-öÿaÿ~¾ëÚÛÁ;À–Íÿsü]Äþï<œÏÿÂd@$ý?{¶íì¾½»¶|Yþ/ëß{蟬ÿɆ¤ÿÃþï¯kþ”rý[cñüÏöÿ•
-]ÿCgÿ¤ù¿óÐ?gó—Àý@EúŸw»Ušõ§ÇÿMß/o^žÿ±Î ÿÇ›â?Û<¬ûëç(Ÿÿ9‡ú/0ÿ“M‰þë¿åçvÿϪ.j•óÿ鏸ÿsPÿÇý?
-ÎQ>þ«Èñ¯VÿŽõ_¨ÿ`!ïÿ‚úo¹õ_­þ;ë¿‘ÿaýeCÖµúïÇñõ_, þ[6dýW«ÿÇúoô`ÁBù¢!ë¿Zýw8Ö£þ“Ôˆ¬ÿQë¿/ô,üŸ,hìþ,zþ¿Výw8Ö#ÿÇÂSàÿ’	YÿÕê¿ú7þòú$/¢þ‹ŠÁ	þ“ë¿àÿ¨9þ£ú?ÜÅúöâAÃý!²þkû? àÿ
-Yÿcú?.žÿl:úçàCÛ·¸È…¬ÿÚþäXÀø/²þkû?àÿbþِõ_­ÿÿ£ÿþoÐï[6ôüeÿžÿY8ó ÿ§8ÈúÕÿñrþÿ›‹ ¢!ê_W÷Dø?8 Ç¿vÿäYÈm—à ‘Yÿµý¨ÿaÓ?ِõ_»ÿÖX@ÿِõ_Ûÿþ,`ü—
-YÿµýXÿeþِõ_Ûÿõàÿ
-=ÿ_ÙÿüðȆ¬ÿÊý?Ðÿ›‡¼þÉËe˜þ÷Iø·7«ÙÍvóKý¾ý<lçÇ#„üŸwÈÿ³€ý¿d3xü„¿É
-æÿÒ1*û.£ƒÿ‹ƒ‚ø?oÿ[zŽáñºÿëàÐÿ‰Jüûù®ko‡o =ôù?ø¨|ôyÿÏèàÿcáìù’^˜ˆ‚¢ÿgëß¶Ý·wÝÍâöÕs”Ïÿ½GýØÿC6ýÏ6»«š?e¨þãPØÿ‹ô‘
-Yÿƒgÿ”õ?çê¿Y8Ÿÿ'p?E‰þçÝn•fýéñÓ÷Ënp¨<ÿc­·Èÿpð–øÏ6ë~À9ÊŸÿœÓð°€|l
-ô´Î1ìþŸU\ÔùùO+‹ü?ÅñÜþ§äåãñgÿ‚ö¤þþ/òþOèÿ ªþÚ?Pú?(üÈÿʆªÿ‚ö¤þ¨ÿæýdCÕAûŠÿÛxø¿X€ÿC6Tý´ ôÐõ, ÿƒl¨ú/hÿ@ѿ𲠱û»hÈùÿáíHý4ò,<… þ/™Põ_ÐþÒÿA{øXÈ됼\húWõý¨ÿfÿqýîÒÿú4Ü¢¡ê¿ºÿúgþÙPõ?ªÿãâùÏjý³ð¡í[ÜäBÕmÿ‡Cþ‡Œÿ²¡ê¿ºÿþ/àÿ
-Uÿãú?.öÿðþo°Þ+rþ¿‚ÿ#:£µ·GÿžÿY8÷ ÿ§4¨ú×ÿñrþ﵇ÿ›‹
- at ECÓ¿®ïÿððp@õþÈÿ²Û.Á"ªþ«û?Pÿ没ê¿zÿ¬ÿ°€þ²¡ê¿ºÿýÿXÀø/ªþ«û?°þËü²¡ê¿ºÿë?,Àÿ!rþ¿‚ÿã°ÿ›>ú?ðüÏü²¡ê¿zÿôÿa!¯ÿAòr¹®ÿõæ–´ëϯó<îÿ£â»t”ÉÏÿðÔg`üóÊš¾œ0,þ§÷ÿ4DÄŸƒ¢ø§i@ œãÿ¯ÄßêâøºÑÚ¥ù¿ùiô÷Ä¿(þ†pJü­Cü9(?åžLŠDü9(ŠzèkÓÇ5dÏ×Sr€Ý+ÏÚ½|þ3ÊÂÿÅBéÍ|Ñ7iÎm§ÎûþðW«Å~ߨãï?mvÝânþ¸X÷ÝnÙµŸ»Ã¿1)táýr“}€ù
-9ù&›¼[ðñ/‘Rú_LéýßÎAºÿ{Üÿ9(¿våç ÄßhŒÿ,ÅÕ­ëO›Òs\ÿuŠ÷‹ñ_ƒñŸ…÷9ÑÍŸ»Õß6}»üC“Ñ!Fã|hîÿxrÀŸv]wüz£­ŠÓ`&çü¼ïnhl˜šÉÙÿ:럟¾AúÚX£ÜÉÿ±nOÑSï¼Q'|Xìú¯ÏßàxÐÙ›ü»Eß}lg÷§~‡?-–ݵwÝþx€™N¬:;ÅŸÛíö×"á&Swú&ÿu½YŸ|‡¦™ZNÈ_ü[ûqùë.žð—?ýõæçuºìÒ1ø­7ùÇÍÃz֝ÿœgüuÙ~<ý²qÚ„³þ»›-ÛÅêézêâÙOñן׻ã!ßǯŸä·¾ +Åã?á¤ùŸÅøÏAiü	Ó?ZüâÏA±þ		`ÒüÏ,Åÿv‘>¬45)<ǵüߥÿ[Ç€þ?,hdçDS|ÿ'$ I÷Œÿ,”ÆŸrO&ÍÿâÏAiü¯š½ƒ«ãÿÅþÚyÔ²ð‚ƒÿûSÓQ”êB8åþïpÿg¡4þSÂ9HñGþ…âù?Á F™ÿø?Y(Ž?a€ôüÿ'Åñ'LÊIñÇýŸ…ÒøGÂ9Hã¿Fü           à-ü¶Õ§« À 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,57 +0,0 @@
-Machine (phys=0)
-  Socket #0 (phys=0)
-    L3Cache #0 (4096KB)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (16KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-            PU #1 (phys=8)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (16KB)
-          Core #1 (phys=1)
-            PU #2 (phys=4)
-            PU #3 (phys=12)
-  Socket #1 (phys=1)
-    L3Cache #1 (4096KB)
-      L2Cache #2 (1024KB)
-        L1Cache #2 (16KB)
-          Core #2 (phys=0)
-            PU #4 (phys=1)
-            PU #5 (phys=9)
-      L2Cache #3 (1024KB)
-        L1Cache #3 (16KB)
-          Core #3 (phys=1)
-            PU #6 (phys=5)
-            PU #7 (phys=13)
-  Socket #2 (phys=2)
-    L3Cache #2 (4096KB)
-      L2Cache #4 (1024KB)
-        L1Cache #4 (16KB)
-          Core #4 (phys=0)
-            PU #8 (phys=2)
-            PU #9 (phys=10)
-      L2Cache #5 (1024KB)
-        L1Cache #5 (16KB)
-          Core #5 (phys=1)
-            PU #10 (phys=6)
-            PU #11 (phys=14)
-  Socket #3 (phys=3)
-    L3Cache #3 (4096KB)
-      L2Cache #6 (1024KB)
-        L1Cache #6 (16KB)
-          Core #6 (phys=0)
-            PU #12 (phys=3)
-            PU #13 (phys=11)
-      L2Cache #7 (1024KB)
-        L1Cache #7 (16KB)
-          Core #7 (phys=1)
-            PU #14 (phys=7)
-            PU #15 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	4 Caches (type #4)
-   depth 3:	8 Caches (type #4)
-    depth 4:	8 Caches (type #4)
-     depth 5:	8 Cores (type #5)
-      depth 6:	16 PUs (type #6)
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+-v --of xml

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE topology SYSTEM "hwloc.dtd">
+<topology>
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff">
+    <info name="Backend" value="Linux"/>
+    <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111">
+      <object type="Cache" os_level="-1" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101">
+              <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
+              <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100" complete_cpuset="0x00000100" online_cpuset="0x00000100" allowed_cpuset="0x00000100"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010">
+              <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
+              <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222">
+      <object type="Cache" os_level="-1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
+              <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
+              <object type="PU" os_level="-1" os_index="9" cpuset="0x00000200" complete_cpuset="0x00000200" online_cpuset="0x00000200" allowed_cpuset="0x00000200"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020">
+              <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020"/>
+              <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="2" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444">
+      <object type="Cache" os_level="-1" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404">
+              <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004"/>
+              <object type="PU" os_level="-1" os_index="10" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040">
+              <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
+              <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+    <object type="Socket" os_level="-1" os_index="3" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888">
+      <object type="Cache" os_level="-1" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888" cache_size="4194304" depth="3" cache_linesize="64">
+        <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808">
+              <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
+              <object type="PU" os_level="-1" os_index="11" cpuset="0x00000800" complete_cpuset="0x00000800" online_cpuset="0x00000800" allowed_cpuset="0x00000800"/>
+            </object>
+          </object>
+        </object>
+        <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="1048576" depth="2" cache_linesize="64">
+          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="16384" depth="1" cache_linesize="64">
+            <object type="Core" os_level="-1" os_index="1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080">
+              <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
+              <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000"/>
+            </object>
+          </object>
+        </object>
+      </object>
+    </object>
+  </object>
+</topology>

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16em64t-4s2c2t.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16em64t-4s2c2t.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
--v -.xml

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t.xml.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE topology SYSTEM "hwloc.dtd">
-<topology>
-  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff">
-    <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111">
-      <object type="Cache" os_level="-1" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101">
-              <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
-              <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100" complete_cpuset="0x00000100" online_cpuset="0x00000100" allowed_cpuset="0x00000100"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010">
-              <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
-              <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="Socket" os_level="-1" os_index="1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222">
-      <object type="Cache" os_level="-1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
-              <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
-              <object type="PU" os_level="-1" os_index="9" cpuset="0x00000200" complete_cpuset="0x00000200" online_cpuset="0x00000200" allowed_cpuset="0x00000200"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020">
-              <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020"/>
-              <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="Socket" os_level="-1" os_index="2" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444">
-      <object type="Cache" os_level="-1" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404">
-              <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004"/>
-              <object type="PU" os_level="-1" os_index="10" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040">
-              <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
-              <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-    <object type="Socket" os_level="-1" os_index="3" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888">
-      <object type="Cache" os_level="-1" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="0" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808">
-              <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
-              <object type="PU" os_level="-1" os_index="11" cpuset="0x00000800" complete_cpuset="0x00000800" online_cpuset="0x00000800" allowed_cpuset="0x00000800"/>
-            </object>
-          </object>
-        </object>
-        <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="16384" depth="1">
-            <object type="Core" os_level="-1" os_index="1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080">
-              <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
-              <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000"/>
-            </object>
-          </object>
-        </object>
-      </object>
-    </object>
-  </object>
-</topology>

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.options (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.options)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+- -v --merge

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,34 @@
+Machine (phys=0 Backend=Linux)
+  L3Cache #0 (4096KB line=64)
+    Core #0 (phys=0)
+      PU #0 (phys=0)
+      PU #1 (phys=8)
+    Core #1 (phys=1)
+      PU #2 (phys=4)
+      PU #3 (phys=12)
+  L3Cache #1 (4096KB line=64)
+    Core #2 (phys=0)
+      PU #4 (phys=1)
+      PU #5 (phys=9)
+    Core #3 (phys=1)
+      PU #6 (phys=5)
+      PU #7 (phys=13)
+  L3Cache #2 (4096KB line=64)
+    Core #4 (phys=0)
+      PU #8 (phys=2)
+      PU #9 (phys=10)
+    Core #5 (phys=1)
+      PU #10 (phys=6)
+      PU #11 (phys=14)
+  L3Cache #3 (4096KB line=64)
+    Core #6 (phys=0)
+      PU #12 (phys=3)
+      PU #13 (phys=11)
+    Core #7 (phys=1)
+      PU #14 (phys=7)
+      PU #15 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Caches (type #4)
+  depth 2:	8 Cores (type #5)
+   depth 3:	16 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16em64t-4s2c2t.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16em64t-4s2c2t.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-- -v --merge

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_merge.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,34 +0,0 @@
-Machine (phys=0)
-  L3Cache #0 (4096KB)
-    Core #0 (phys=0)
-      PU #0 (phys=0)
-      PU #1 (phys=8)
-    Core #1 (phys=1)
-      PU #2 (phys=4)
-      PU #3 (phys=12)
-  L3Cache #1 (4096KB)
-    Core #2 (phys=0)
-      PU #4 (phys=1)
-      PU #5 (phys=9)
-    Core #3 (phys=1)
-      PU #6 (phys=5)
-      PU #7 (phys=13)
-  L3Cache #2 (4096KB)
-    Core #4 (phys=0)
-      PU #8 (phys=2)
-      PU #9 (phys=10)
-    Core #5 (phys=1)
-      PU #10 (phys=6)
-      PU #11 (phys=14)
-  L3Cache #3 (4096KB)
-    Core #6 (phys=0)
-      PU #12 (phys=3)
-      PU #13 (phys=11)
-    Core #7 (phys=1)
-      PU #14 (phys=7)
-      PU #15 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Caches (type #4)
-  depth 2:	8 Cores (type #5)
-   depth 3:	16 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.options (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.options)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.options	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+- -v --no-caches

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,34 @@
+Machine (phys=0 Backend=Linux)
+  Socket #0 (phys=0)
+    Core #0 (phys=0)
+      PU #0 (phys=0)
+      PU #1 (phys=8)
+    Core #1 (phys=1)
+      PU #2 (phys=4)
+      PU #3 (phys=12)
+  Socket #1 (phys=1)
+    Core #2 (phys=0)
+      PU #4 (phys=1)
+      PU #5 (phys=9)
+    Core #3 (phys=1)
+      PU #6 (phys=5)
+      PU #7 (phys=13)
+  Socket #2 (phys=2)
+    Core #4 (phys=0)
+      PU #8 (phys=2)
+      PU #9 (phys=10)
+    Core #5 (phys=1)
+      PU #10 (phys=6)
+      PU #11 (phys=14)
+  Socket #3 (phys=3)
+    Core #6 (phys=0)
+      PU #12 (phys=3)
+      PU #13 (phys=11)
+    Core #7 (phys=1)
+      PU #14 (phys=7)
+      PU #15 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	8 Cores (type #5)
+   depth 3:	16 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+16em64t-4s2c2t.tar.bz2

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-link 16em64t-4s2c2t.tar.gz
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.options
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.options	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.options	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1 +0,0 @@
-- -v --no-caches

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16em64t-4s2c2t_ncaches.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,34 +0,0 @@
-Machine (phys=0)
-  Socket #0 (phys=0)
-    Core #0 (phys=0)
-      PU #0 (phys=0)
-      PU #1 (phys=8)
-    Core #1 (phys=1)
-      PU #2 (phys=4)
-      PU #3 (phys=12)
-  Socket #1 (phys=1)
-    Core #2 (phys=0)
-      PU #4 (phys=1)
-      PU #5 (phys=9)
-    Core #3 (phys=1)
-      PU #6 (phys=5)
-      PU #7 (phys=13)
-  Socket #2 (phys=2)
-    Core #4 (phys=0)
-      PU #8 (phys=2)
-      PU #9 (phys=10)
-    Core #5 (phys=1)
-      PU #10 (phys=6)
-      PU #11 (phys=14)
-  Socket #3 (phys=3)
-    Core #6 (phys=0)
-      PU #12 (phys=3)
-      PU #13 (phys=11)
-    Core #7 (phys=1)
-      PU #14 (phys=7)
-      PU #15 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	8 Cores (type #5)
-   depth 3:	16 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,117 @@
+Machine (phys=0 total=48346688KB Backend=Linux)
+  Group0 #0 (total=24182720KB)
+    NUMANode #0 (phys=0 local=6045632KB total=6045632KB)
+      Socket #0 (phys=0)
+        L3Cache #0 (9216KB line=128)
+          L2Cache #0 (256KB line=128)
+            L1Cache #0 (16KB line=64)
+              Core #0 (phys=0)
+                PU #0 (phys=0)
+      Socket #1 (phys=0)
+        L3Cache #1 (9216KB line=128)
+          L2Cache #1 (256KB line=128)
+            L1Cache #1 (16KB line=64)
+              Core #1 (phys=0)
+                PU #1 (phys=1)
+    NUMANode #1 (phys=1 local=6045696KB total=6045696KB)
+      Socket #2 (phys=512)
+        L3Cache #2 (9216KB line=128)
+          L2Cache #2 (256KB line=128)
+            L1Cache #2 (16KB line=64)
+              Core #2 (phys=0)
+                PU #2 (phys=2)
+      Socket #3 (phys=512)
+        L3Cache #3 (9216KB line=128)
+          L2Cache #3 (256KB line=128)
+            L1Cache #3 (16KB line=64)
+              Core #3 (phys=0)
+                PU #3 (phys=3)
+    NUMANode #2 (phys=2 local=6045696KB total=6045696KB)
+      Socket #4 (phys=1024)
+        L3Cache #4 (9216KB line=128)
+          L2Cache #4 (256KB line=128)
+            L1Cache #4 (16KB line=64)
+              Core #4 (phys=0)
+                PU #4 (phys=4)
+      Socket #5 (phys=1024)
+        L3Cache #5 (9216KB line=128)
+          L2Cache #5 (256KB line=128)
+            L1Cache #5 (16KB line=64)
+              Core #5 (phys=0)
+                PU #5 (phys=5)
+    NUMANode #3 (phys=3 local=6045696KB total=6045696KB)
+      Socket #6 (phys=1536)
+        L3Cache #6 (9216KB line=128)
+          L2Cache #6 (256KB line=128)
+            L1Cache #6 (16KB line=64)
+              Core #6 (phys=0)
+                PU #6 (phys=6)
+      Socket #7 (phys=1536)
+        L3Cache #7 (9216KB line=128)
+          L2Cache #7 (256KB line=128)
+            L1Cache #7 (16KB line=64)
+              Core #7 (phys=0)
+                PU #7 (phys=7)
+  Group0 #1 (total=24163968KB)
+    NUMANode #4 (phys=4 local=6045696KB total=6045696KB)
+      Socket #8 (phys=2048)
+        L3Cache #8 (9216KB line=128)
+          L2Cache #8 (256KB line=128)
+            L1Cache #8 (16KB line=64)
+              Core #8 (phys=0)
+                PU #8 (phys=8)
+      Socket #9 (phys=2048)
+        L3Cache #9 (9216KB line=128)
+          L2Cache #9 (256KB line=128)
+            L1Cache #9 (16KB line=64)
+              Core #9 (phys=0)
+                PU #9 (phys=9)
+    NUMANode #5 (phys=5 local=6045632KB total=6045632KB)
+      Socket #10 (phys=2560)
+        L3Cache #10 (9216KB line=128)
+          L2Cache #10 (256KB line=128)
+            L1Cache #10 (16KB line=64)
+              Core #10 (phys=0)
+                PU #10 (phys=10)
+      Socket #11 (phys=2560)
+        L3Cache #11 (9216KB line=128)
+          L2Cache #11 (256KB line=128)
+            L1Cache #11 (16KB line=64)
+              Core #11 (phys=0)
+                PU #11 (phys=11)
+    NUMANode #6 (phys=6 local=6045696KB total=6045696KB)
+      Socket #12 (phys=3072)
+        L3Cache #12 (9216KB line=128)
+          L2Cache #12 (256KB line=128)
+            L1Cache #12 (16KB line=64)
+              Core #12 (phys=0)
+                PU #12 (phys=12)
+      Socket #13 (phys=3072)
+        L3Cache #13 (9216KB line=128)
+          L2Cache #13 (256KB line=128)
+            L1Cache #13 (16KB line=64)
+              Core #13 (phys=0)
+                PU #13 (phys=13)
+    NUMANode #7 (phys=7 local=6026944KB total=6026944KB)
+      Socket #14 (phys=3584)
+        L3Cache #14 (9216KB line=128)
+          L2Cache #14 (256KB line=128)
+            L1Cache #14 (16KB line=64)
+              Core #14 (phys=0)
+                PU #14 (phys=14)
+      Socket #15 (phys=3584)
+        L3Cache #15 (9216KB line=128)
+          L2Cache #15 (256KB line=128)
+            L1Cache #15 (16KB line=64)
+              Core #15 (phys=0)
+                PU #15 (phys=15)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 Groups (type #7)
+  depth 2:	8 NUMANodes (type #2)
+   depth 3:	16 Sockets (type #3)
+    depth 4:	16 Caches (type #4)
+     depth 5:	16 Caches (type #4)
+      depth 6:	16 Caches (type #4)
+       depth 7:	16 Cores (type #5)
+        depth 8:	16 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,48 @@
+BZh91AY&SYü+ËoÇÿÐÞóßÿö=ïÿ€ÿïÿòÀ   kø`&þù\ |ó Cnø ^óK–óÎÉŸAOCËÄ À )w0 rË(Œº\šèÈ"…€       $ýSOÿÕUÿõUH?T           S0T™TSôÕ?JhÓFš €      i§êƒSÙR§§ªž©é?J  
+42
+      SõISM5&“Ô4Ð  h Ð      "¤¦†€ € € Р4    TP‚ š 4£LÈL‘¡ê 2oTш=Mš† 6ˆi´`3@ ’Àœpy `sÍ…J•2#(ÂI'õÔ~a7Bˆ¤“t¨JÀ'4GC	ùÆDBO Ý0‰Fl€_ª€IUX*ªù<D“Æ$	Œ$‰!$©$80s€p{89ÁÀ9ÎøŸP_«õ½}T’ŸZÉ(’DW0%%I%mM§Nœ&éz•Ó„Ý4ͦ$©lkz°—¥%.œ%iÃT)%Kæ%›š®Ó·Nt•¤éÍQE°Ã
+ÁEL—c›[‡0QDVÃ7ETÞ–q¢N`BŠ(­†nŠ(¤Ù‚R©¼¶
+mŠkm[hRÀd•$¥°C£dµ$¥³2MÁ-µ(^m³waEf-›vìÔÞ½²"nÝ»$9RF[&¤JU»™^eY•fE™S²æE˜ÖeUU™VeY•:
+¶¤”¶f[´‰#‰#-‹$‰%-›‚IjIKf7f`ˆ(­†BŠ •·˜bŠ+a†¢Š)Òmµ$¬²<¤!z Q`Ë£Cê*s2Ap‚
+¤m ƒi° ÚAÒ.B‘$‰ ¬Ib“îߍøåHÌHˆ&Iq$’rŒFb),`©‰[PÄ©Vn0Èö¶Z¶SÅ$“
+­ÊÓ32dI0̵*·s2!2µ†,Û@0©•‚ÊÜ«m2,µ"ÌÝÌÈÌÉe`‹3R2ÍÜ̐„˜ªM&“éœôÄM™ÆÃ-ìͶ‹L&‡Lï[®Æó9ÝŒôˆâ³¤µ$èÛ9ΑKmÓDÊ22¸—€3&ªÛºÝ€”%Hq%²ÙP RÅX &Ót–ØÙl¶[I-DC»2ºåÑ›º\ÌË•ÄNm»»¦nZ’FJ$’F]ÙZÂ£!uÊÎfwC¾&ìæÛ»»wå]iœD;²®¹tNn1lÄbªØÒbËV×D:‡ßÂvF1&1Q„GL&"FBTˆ%‰c!ÂX©VÔ°©A`²-²*RÙ*TT¡d¶RD¶Ê•,BY
+*JhŠ*D-ˆÈžáÌ6N‰‚Sò&v³økˍ¯}boùƒéΤý¡×ÿÃ_cs•W‘U^EU@UV ભ•„@„@„@„	ÄÅ‹!!!p›÷ïx^-ò[%§e8gV0rÆÓ–0ZZZZ`€fŸì Õ”Ö§Œ²׌·©ã-êxËzž2Þ§Œ·©ã-êxËÐÊx‹ãÔñ—âxË¢2؅̆z¹Äg}ˆ~M¸ [£G ¾w ƒé Ym…SÆÄ˜¤÷åƒ6&ʼn…1baLX˜S&ňûâCó†á€¡ã|üwòÚìÆvÏ—žr¶íõŸ=\scùé¿N˜`;É> èÖý5ÏNœq×·=3Ÿš@ƒÕƒøâ@–æŸÈö>ÀØ0Dö
+‡Ä,‘ûü!AÕª•ÆEB¥É ŒÈ>a `<Wµ˜q¿LãïÆpÍÖ8Îv¸ÕÛÐjÁ±
+ÞÕ͘¸¸ÅÅ«—S[mH¨YJX)ä’Iœ‘e#ž—9#¥“ÓLãëÁ°FáCä÷{~oÍì÷jr›jrܲI[I~ ΟRޝ¶Ûd¶Ûz }u×Þ Ý `}uÕë×p´í©£-ºµ«nM®[Ѝí«mu×mŽ»-SUrÉm¶ô ¾ à Û|„··ÒÕ·)‘ÉZ)e+L2åÎfIsssa\%¹L93\Ê`d0ÌÍLfÉr.RÂÛ-³4™Qj«[ˆ? {½Ä$$„ÞsÖßÝºÜā;`8H¡¸_KŒcÓ*ªª¨UU¨*ªªUUI;¹öÀí Ûëåïå¶Û[m»|ùýüÝóýØ>!Ë<¿, òY䳜  9eË###j«qÄ
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€
+ª *¨ ª ª€Ã0Ã0;v 9À œ Û|Âw‚$yHòãŽ8ññññãŽ8ãŽ8ò&$“Öµ­k\“I‰5«n€ÒªªÅU¶ *¨Z¶ÕUBئµ­nßÇ‹,ñUg‹·nݼ] ÙÒÎp -¶Öb3\¹$¼xÛk6!³ŠªUjX¬H-ŠÅbB­¶Ûm­œ³œ  9eË.ꬪÎúª«9“UY98âU T UPU@U víÓ§N:víÛ·^ …¬ç  b8Ä¶Ô  ,fh nnîî8>aÎpÁQõë™xÙÝgzŸR—rÌoS%¹Ä3%y—Iáeí‰u‹5­·In“#f""¢,*D“ïÂnœ§dÑ<ìã~…îk/'å` Õ]¼*º<<7Ç麠Áø=g»™»ôóؼ-ézN½Ö¦š×¥üE¶q¨ÝHxYˆûy ü@Ú½Ä 7@        6«˜ªJ¬ç ¶Ûp)›&Éâ"X$"Iîîž	‘7M“–<xÛ Ô‘!MÓ)¤ñõÀ5†½‚;²@… „”5‚J'íµd,‘`ì?rGîÂpJ0™Jc6,SB¦Ÿj5µ¶Û_oåö£öæòI’~ÚƒݼŸj}¯·m‘´#R4p›
+ÇÓñ÷Çî÷qÕË(ð&£I¤v&ÃFFÒwL£rhÒMGbHÑ2ev¹v¸U [Ñ	 jBq'm}äԇ£0~o»©÷ª%…J"T’BB~¸‰€‘#èúâBLhë<>[;ÀÆ:‹©²òd¸É²jr˜Ù$\Lb	¿;ã	ÍÚBÑ$¶—8D1ƒYH#Z3dÃ}¸Õòç‰Æ1&ÌÛ×8pàëRÌn1‹r8ݽՙßUÒñ¿
+¶c~8ñ†ú³Ä3·;óuŘ.8+4Ömž”ÄIêî÷Ô 
+½AêzAa‚Þ´+4E5Ö•¹Q»‹€s-¹™£4Q‚ní]o´ÆÆÛãm¿|3ûÉÓõ×’Àü íߦUÕYyÕ^<þUn€        mW1T•YÎ Õ^Oܽ?jÙ¬Ïà÷¯w1eë3ùàL›7qÕé7¸¦4÷]x»ÖÅ™ï1¬õêãÆ$rß8範HZõÁ‹}{å||k­uq1=ÙzNêéÛr»w‰þO/‡¨ÄyQА'|bžqÎîzƒ]òñé¿—}®«vìLzôg¯”Hé‡NÞ³†»Üû¾ÚNžxéqå{ùxxc~1\a¬$õ'[å6t©éÞ5áÓG´HZ{{lž6x¶ëßløoªºÄéØ=¼›õò‰O;'^ݽ´èåásãwã¾¼8Û}驜O+«W.A¹éR9±<-ܐ'·äßo,ºãsbg8‘íÙ` ©ƒòÿßGùûÿ€{ÿì‚߼ϡ“ëíÿÞ„Sì|µ[ts=h~[¦y“ͽô"Ÿ%ªÛ ƒ™êâHg<ÛßB)ÙòZ­º=°Ã<€¹ò'›{èE;>KU·G Vl3ÄÏ 2y·¾„S³äµ[tzfÃ<@Éò'›{èE;>KU·G Vl3ÄÏ 2y·¾„S³äµ[tzfÃ<@Éò'›{èE;>KU·G Vk9áºg<ÛßB)ÙòZ­º9ž™Ï-Ó<€ÉæÞúNÏ’ÕmÐAÌõñ$3Èžmï¡ìù-VÝÏPÏ2C<€ÉæÞúNÏ’ÕmÐAÌõñ$3Èžmï¡ìù-VÝÏPÏ2C<€ÉæÞúNÏ’ÕmÐAÌõñ$3Èžmï¡ìù-VÝÏPÏ2C<€ÉæÞúNÏ’ÕmÐAÌß{c¿ëϰÛoÿ›ºúmÝKR>ÿcn¶Ûu¶Ø÷}/£öø>ŸýôwÇÍÂ>ªDïQqöm~ΞAúûnñúò×ÙÓëòëÇÄGÞç=‹ã±yÖü¥ÄsPŽ]
+ÂF5Œ¡‰©€ÜŲŒƒ£d¨ê¼S^1Y¤T%žIÃ'’bnã’KSp¼H[±$ž’x9ïÚ­Ð        
+ªæ*’«9Ëm¶ÛmÀ<¼{ß*í5ê˜ØDõNÞÁ϶Øt©;½wí·…ãUœáv¯ÚÐÖp"ÉF1ér#OO×N8«7ÇF}DOvü5-—‹‰z\Œ—	bc	#9g"X&rU—7œ‰7K]«k¤C>ÃmË*íxÌD&Kœw
 ©ãÓáŒD[!íß f‰á×=ô½‹jÝ[‰$‡ŠyÔ¶Z˜Ô['1RÅ$²–JT±ápœ÷çE¦ª§Z˜y\*'lLH²v¸0ìÁ«"ŤéZå¼bÙ×q•#*±š5I<,Åñ›f3sˆâÄwâkZ$	˜½ñŒbãœoŸxÁš'cµ®1μ5½ü Mú]±×Á¾3yÓCs_«’¡šѐišÛn3ÐAææM¢LÝZ¡ÂÔÃe¼˜¬@psäœàù7ÍüUÝãÓã]â=ƒáŸ†C¶Ûm¶Ð       Ú®b©*³œ 
+ª¶;W—”Ïã~
+óm­ñŽ|~Õ¶õ¾&¸s[c ¯åøõ»ò|…íæ;õ{íõë6žztâã;33¬óXH‡[sÙ€¹Øô7n'<ö¼k†sjÛo~qžíœþ;Öt¼s™­`ÅÕëЄ²Bú#3—uf÷É·‡  Q¡{%pë7ZÅ‹Àv…šæÑ¤A@‚iNGKÖXA̯31è×Û¾XÛmµ±Æó{®	!#1Ÿ¤¢Ù%ŠJ–JN‰äÓ¡&ÊCº
+4ð
+†7¤tðã.Æq‹¥­ü;²ÌªÏ7žh        ¹n€¶ÛßVçéTí·GgªkÝ'Žüõá:ù^áwÞ›rºg…,»÷,Þ‰«e’‚”ÆàxœM)vëÆXÞO\±+:¸®«¾Æªç9é[kUæÄ*H"ïÒó[g™±ÄG<íÇEqoc|‘Ú­’I°Ú«eÍcnºvÜïÓf¹]K3·<3m[,²·Áƒ0nó@Ù¤€¶ü6ô1ÌÕñü?9Îs“¹àëàïrA¡n,	ö
+!ŠÝ!<¤—$^2‚з#¹™ƒ6cKÝšÞÓÃO9Îs›Îsœ Ç« ¨¨RÆýöšøWšë®þâ#^g<À        rÝ |ʯ‡x'=åŒïMøÝ©6±‚È¥’Ë'l0Zž¸ÁlÖÖí[ËqÎv:R;¼]v€Ìæg3®T·ž–õ¦|ÄOkëÀX÷=jmÒÆ
+]ëÝX¼\®XºÇ6o[nÆë,ÛKeŽÖȶXF±–P„¹HÊV+YÆlÞ¥»¼d’M³+lLç½Ó,Õ™œD˜*JYÏ=4hÚN˜«ÆÓm\³Ic›Ñ…%³Ìd1&s7«ƒß
+1í\ùW^ü~›58#:
+ÅÞY.Ùåï	æhX®f]ÞE·8Æøk|a¾±ï›”:VÙÐ=m¾9HøØÙ‹Û9ͺ¸béq¦œû{$,Y6U±vߌêæÜhо—Ö¥v±‰åG>S®Û&ØbU3³3&ÄÄÂL6¬Ívh&¦¹í­÷Äcvõe—ã5‰½ˆÃ5¡"dÁˆˆM²ÊÜÉ$8Î,ÊÜbawçls´sӏ<âjºÓÂÌ»bf·£Ž19éyž`{Ã|ÿÒ$	†:ãžq|ÒA›ïîº™Úe«^
+wºëÆ8æl`Æüä2ž{N€:ÜÖ4t u‚ôZÝܾÈ~B'^$5YÀÃz  3ƒœÝŽÎnJ0Ó‚t+B(I2LÛŠŒÝˇ9%£
+˜ánØšÖ,Öøß;½·ç·‘æÏOHod…‹'wg‡Ž\xIޝ+*­²ìåÎ'ز–spYÝq)V[¶°›oÄÆ&ÎJÚyÖ1âÀÓꮇ3Šú`|ìåÃÌõëƒ×0©ƒ›ç}Ù)Òš\ā8ð’I7‰s±Åùæÿ+6в¦'0×V6‰­LIµq¶u‹onÛû“®îÀà=Ë›{xnÎ;Ý®nXÆ®qYÂç8‘æ7Ûv*±‘=£MüyÛ;xí¿	\ºØ>/CpëÒÙ×£ZÞ’J‚„{Öý1Åfã>è'óg^9É'œHÏ-›]³o‹ÇpÇ@í·^=/NqµÛ¦™qßw£ÁÛ:s¾ye¿ã>üžß•îgòãV]a>ÁΛµs¢D³1Ò®ræt5™¶ô  fg?Ú¯Û•·EŸ‡+¥•ù¿?[Ê©ó…ab°¤3•
+µô‡nùi
+¦ƒæ‡þ‚ÿOñjÉÒA ÈdW¥þ*ú‚è<(Û˜{áë7À´Uþ@ÀPÆ!Ô>€=¿T6ñ…,-“Š¢‚:<ÉÔY)&~Hwþ ýîÊ?šÀڝy„÷ÃÝ´=Ð÷ùƆt:M‚uÅ’ÑòüI9‡õŒøÇŒ[e¥õ ~ >­…þ[%“P r…
+ëùÃôā<Äâ†!þ¨z‚Cô?˜Z }0ðÜŒ>€±#o:‡‰8΁è¡¡띡¨'Îü |@Üh@{Àü z‰ÔžC€–$	¾¤Jõïõ½?áç3€ð‡!‘CÚ
+ L¸; Ð`2P5â†á'Ÿ¨L@‰Áú¡¼>¸urƒôT0`uˆä@›†ôô!P©R¤–"رJT|ãè×̬>PÀbP!PMü|E·ˆ`bNa˜|€èÏÈn0Á6ƒâÐÌ?¦ úû¨ó†ûȉØ,õ=°ÿËî‡a@ r;D<°!è N<ê*[bØ“¸
+â L 8:|Þ öGÎ(d“愵$Pâ$	°¡çØ'È	<ƒÈ<€ù˜A!è6À2°>Ϙ±Ð `(>QzuÔÀó üCè‚ýùâ@žð!{a‹€˜{ÃÈ>Èy‡Ð`_¤2ä=È܈GH´#ÓÝ Œ"z‚z?2‡Ó!ñ÷ñ‰uù@ÐE¼~ÓÚ{‡Ô{ÃÄ<䀖‘1ÿÕ; N¡åà8†W`múÚ$	 z
+_÷â@˜‡öaò€ï
+@è(Y7
+ý@Û=ÃÊ!?1²AÀä<‡ìŠ9@ýd|CÐ=óä‘CâöÄ}4‹H²PŠHŸ(= qýä$ú€ûO¾÷°u†áåÜ$û¡°t	æ8ïÛâG¸z‡”> >:‡0Ôö—û@v‡PõˆIx…Ÿ>¤ž’'„›D7A#õƒ ÈO¸Xd¿!ñ
+‡ z‡Ø>P?JÃ9
+Èi$	ôC€Þñ
+	Rˆ¨øD(08¾ÿîÑR@˜D	½’7¤ž|î܇h'ÊÊlÐ(7pÀ×p4(ïÔ
+D{Bޱ M’@M¿c @¸£H`1„X’	”#ˀ̐Ž€l8ʃ=ᐓ9 /]Â(Üd LÑü‘'€~Ÿ ÞJ(‘˜|Ã¸~DHúâ@Ÿ=C×ÑQ>P¢A23Ü@‡P=ßx>€“0ø@í°`ĐÞ˜  âîH§
+ƒey`
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,59 +0,0 @@
-‹ ãaJ íÝ’ÛH’¥ëZO¡ØšEüdßu¬wd»56;¥Ú½¤AL	EÐHdÍæ<ý¤²
-²„'xÈI?ßLw»”T2΃@Dœp7i‘§þÇÙÎÿûW"©ÉBhþ×d!9ýÙxúßoü`Œu‰©M݉±õÿýð>\ëjóx¬òÃû÷?|^—ëm±ûÎëV‡#âÂbZùßÊå5>#óo³šÔ6ùwI–0ÿzù_î‹Ýoå”ïÑ$8=çû…üSg½“ïëÛÀûdÊâ¯Pžÿ&ç«ã±¬/ÁßÞ'ï~_íšø}óÇÿ±ÚÕŸ…ÕÇ]µÚ¾ËËÍû÷ß¾òñï?¦þÝoù×bûôí¯œy÷µ|XmŸ_b¿ýq—]Õü9(Žåîýãþ}U¾Ÿÿü~™/7«w‡Õïű¨ÿ¾ù'æô&õ_¿Còî·U^=VÇÓ?òÝr³-wëwõgôýîñëçÕáô²æ‡Õúü2úãÏÿòŸçobÒ$ù§úSö®¨–ý¿m¾ðS¹.þøo¿œj7·ÿ”¤ïŽÅçúÃðí[šwûÍÓ±XæÛ÷ÅCó†ï.®šáU\5Ë«6âªc;×Íñº‰®›çuqÝLb}çÂ^8Ù…KyáÆ\¸àÒÎ…ËxádnÆ7âÂÙÄÏ:nÎ'»p†S†QW.¤½Y§
-Ò+ǩØ+ç’¬ûl8y^9NF]¹0ë>ÎÆ_9üú_oý÷ëê+vý·	³Þúoàú/„ŸW_?•U¾ýÛIa~fëÏá<}ÿå§wõWþqX­þöMŸÁ3KfÍW~züí·úb<¥ÁØÓWþ¹ÑßÃóÜ,µIæNßí—ÿÈ÷í¯š,³³¤ùÊß—UñûocBæ|Nÿæã.o}Íúlüù'h¾ÛŸ?¶Ÿ97ÏŒ}þÊŸ?¶Og³$KOÿæCq¨žÚ?s˜ÛäôüßCQ­>çË/í¯ž¶]¹û·|½úö»šYýC»Óûüœï÷þ¦õ—¼KÏ¿Ï/ÛüsëçoÎ×àßWËm^|Í?o›ŸÏÔvóí§þuw8íùêÌ\⛯4ïþ©ùÏ?Bxþ	þ÷c±ü²-ŽÕ·¯Øüìô›þë?~Yüº«?×ç÷iý>?•»åªýk>åkðéëþòßüsùõkQý¯¢þ¯ú™­¯éü[¶O_©V‹¿ÿRif²tžžþÍÿùšo·åò[ŠšOŽwažÍÓoŸ†o_ÿõøíšÌÎç¶õ•Þ<î¾üù/S3OΙÿ—ÇõꔑEëc›´þºõ™mÿõ¿xá¯y<ì/þzßüuñŸçoaëùSn-ӫѾÿŸ®ãˆßÿµ™wÜÿEÐÍÿCýìT?¼Mú9ˆÏ}3
-Ì?‚¿Ê
 W«¯Ó|âó2Cÿ„ü×Óž×â󟆄þ#ò_ÿ'}Õ‡ .ÿõëLæBÆü#›ÿªÜ—Ûrý$ù Dëßëxÿ‡ÿjsXå‹çµ¬1ï1°þcm/ÿÞ%×<ð¿1`À€2ðÉÛ]Xû/Bôøÿ¼kµØçË/ùzµ(†Þ£IõwÆÿšÐÿCýGŽÿN.²[ÿäfDëYÆh¾Í°þmGÿ6Ô/£þp֍Lÿ1³Éüßeõá¦0Ppþs^»þ¿hhïѤ:îù?8Ïñ'ÿºyÝóÿõ‹ôŸ4õ¨ÿëCýëf¬þO'k„. FáQþ›xkéÿ@—ÿb÷°ú6öcŸ“ú¿!ˆòߐˆxáñ?tò_? ðüÒÿÉG ½ˆôŸWÕ¡øüX­Æ	bPÿÆvôï2¨§s?åË/¼	¨D¤ÿêi?éøoºÏõøŸRÿ~Ý¿«ª_)"ýoW¿¯¶ãß#nýï¤ÿÔqü‡`©|Õˆô¿,7«Ãj·|ZÔŠiv¾¿0¬ßÑ ÿ„±3Þ#ÒÿäOÇEùÛ"?Ëe‘WÅïEõô×ï?þ§†úÇ@õëF¶þ¿É«‡Eý…Å×|?øúïøýûðü„ç;ð]ø0` ' ÿ÷æˆÆÿs™Üfp\UÃb“ê¸ù¿žã?è ÔŒ@ÿ	ÄÿÅúODùŸÜÿÕ½ÿÛSý?Þÿ¯¡ýK5"ýOîÿêú?]fèÿ€pò}ÚÊÇõ†7}ˆô?µÿëÿ·áøáC^åÔ½^DúGø¿xþ‚¡øU#Òÿäþ/×óyú?!¤ž7 ͈ôðyÎÿ!Pþº‘­ÿü_œÿCè820`À ÐÿusDãÿäþ¯îüßÇþO8ÿ׍@ÿâÿòô!årÿWÚ÷qýÂÜÒ¦‘þõ¿¸þõ¿t#Ò?¢þçXÿK7"ý#ü_ÿ!8*_5"ý#ê±ÿÖÿҍHÿ“û¿ºû?©	<ÿÁPþª‘­ÿü_<ÿ¡ãÈ`À€L@ÿ×͍ÿ“û¿ºç¿}¨¿Ìñ€Oæ, ¦þ
-ÄÿÅþŸDùGÔÿâú/º¿t#ÒÿÔþ¯Zì=ÿ×!PüºérÿWü7ÿ!|Ü«Ãã²*Êo
-éáÿâúÖÿҍHÿˆú_ôBàù_݈ô¨ÿÅó(ÝÈÖÿþ/Îÿ!t0`€	èÿº9¢ñPÿ˳þ'Îÿu3Nÿ6ÖòuA£ðñþ¯úïMæý_Ææ¿*÷å¶\?I>qùwÿÏÖà ó :ÿÕæ°ÊÇâs}µÖ£®ÈÀøß™ÿ7ù÷Žç¿0àú0`À “[=þï7OÇb™oû|ù%_¯ÅÃÐ{4™ïÿoÆÿ`XÿC0–TL´þ—åaŒæÛëßvôoyþWàu#ÓÌì_2ÿwYJýC¸‹i œÿßš×®ÿ/¶Å±x&ÓqÏÿÁñüÎþuóºçÿ1êé?1\ÿƒ@ýëf¬þÏþ?Ù{4
-òÿØÄú? ÄåÿäÿŒ6ƒÅçߤIÊü#åòú_¡“ë3žÿ…`€iF¤ÿ«öôçú_ôÿC`ÿG݈ôÕþžõ?°ÿ£nDú¿jý/®ÿÅñ×ÿt#ÒÿUû?úsý/žÿÀþºéÿªõ¿ü¹þõê׍lýÿšõ¿ý{ŸqÿÂóø>ü€0ÐÐÿ{kDãÿäõ¿ºóÇ6°ý£fúO þ/OÿQþ¯Úÿñ›ÿ‹ë?ØÿQ7"ýOîÿêú?]ÆþoNþ¯O›Cù¸ÞðF ‘þ§öõý߁õ1|È«œº×‹Hÿ ÿ—åùìÿ¨‘þ¯Úÿñ›ÿ‹þOìÿ ‘þþ/Îÿ!Pþº‘­ÿü_œÿCè:20`À ðéãÖˆÆÿ«öüæÿ²ÿpþ¯þÄÿ•Ñÿ…@”ÿÉý_iÿ—ë¿æ–0͈ô¨ÿÅõ_¬ÿ¥‘þõ¿8ÿƒÀú_ºéQÿ‹ã?Gå«F¤Dý/öÿÀú_ºérÿWwÿ'5žçÿ!Ê_5²õ€ÿ‹ç? t0`€	h>¹5¢ñrÿW÷ü·.ãøÀ's SŒ@ÿâÿbÿO¢ü#êqýÝ_ºéjÿWbzþ¯„ë¿(~݈ô?¹ÿ«7þ‡„ã?„»cux\VE¹ã­@!"ý#êqýëéF¤Dý/ú?!ðü¯nDúGÔÿâù”¿ndëÿ ÿçÿºŽ0À|ú¸5¢ñQÿ‹õ?!pþ¯›qú±–¯…Gù¿Læý_Ææ¿*÷å¶\?I>qùwÿϺ„ùGÿjsXå‹cñ¹¾ZëQWd`üïÌÿ›ü{—ðü„<ô3`À€A}çO8ù¸1Ñãÿ~ót,–ùv±Ï—_òõjQ<½G“êñ翚ñ?ÖÄ`ê‡-ŠP/Ñú_–‡1šo3¬ÛÑ¿
-žþ?u#ÓÌì_2ÿwYJýC¸‡i œÿߜ׮ÿ/¶Å±x&ÕqÏÿÁ±þ†@ªæuÏÿcÔ/Ò=4Pÿ¨ÝŒÕÿÙÿ'{FáqõŸoéÿ€—ÿ“ÿÓ"ê5û?Ìÿõåòú_Ýúõ ÷ÿ ØÀ`šéÑÿ‘þìÿ¨‘þýyþû?êF¤DÿGŽÿ,•¯‘þýyþû?êF¤Dý/êÕ¯ÙúÿÕë…„ûÿžïÀwádÀ€ž€þß›#ÿ'¯ÿ՝ÿûà9þC°í5#Ðéÿ˜Ñÿ…@”DÿG®
 ÿ@`ÿG݈ô?¹ÿ«ëÿt™¡ÿÂÉÿõis(×Þô!ÒÿÔþ¯—üßÿ!|È«œº×‹HÿÿÏ@`ÿG݈ôèÿHÿ'öЍHÿÿçÿ(ÝÈÖÿý9ÿ‡Ðqd0`À€& ÿëæˆÆDÿÇÀñçÿºèß]×ÿÎõ¿ý_DùŸÜÿ•vòÏú(æ–0͈ô¨ÿEýC`ý/݈ôÕú_þ/ ¬ÿ¥‘þ¯êÿ
-gÿ× 8*_5"ý#ê±ÿÖÿҍHÿ“û¿\güOM ÿ‚¡üU#[ÿ¿¦ÿ+œëYêAÇ‘Á€˜€þ¯›#ÿ'÷…ÞøÏó_|2g0Åôo ýÙÿ‚(ÿˆú_\ÿ…@÷—nDúŸÚÿ•˜¾ÿ‹õ_!PüºérÿWoü	ÇwÇê𸬊rÇ[BDúGÔÿâþÖÿҍHÿˆú_<ÿçu#Ò?¢þýß(ÝÈÖÿõ¿8ÿ‡Ðqd0`À€& ÿëæˆÆDý/žÿ†Àù¿nÆé?ºä׍£ü_&sõ¿ ŒÍUîËm¹~’|âòïÿŸµ)ó :ÿÕæ°ÊÇâs}µÖ£®ÈÀøß™ÿ7ù÷Žõß0àú0`À ‡ÏoMôø¿ß<‹e¾]ìóå—|½ZCïÑdz¼ÿ¿ÿƒaý7ÁXjP1Ñú_–‡1šo3¬ÛÑ¿
-ÜÿÇÀxÝÈô3û—Ìÿ]–RÿîbÀ€…çÿ·æµëÿ‹mq¬Þ£ÉtÜóp¬ÿŒõŸuóºçÿ1êé?1\ÿƒ@ýëf¬þÏþ?Ù{4
-«ÿ”xCÿ„¸üŸüŸQÿ«©ÿÀü_Qþ'¯ÿXÿëFØÀ`šéÑÿ‘ý °ÿ£nDú¿jÿÇoõ¿Xÿû?êF¤Dý/ŽÿèþӍHÿˆþ<ÿýu#Ò?¢þõê׍lýPÿ‹ûÿžïÀ÷ádÀ€ž€O·F4þO^ÿ«;ÿgý/6°ý£fúO þ¯@ÿQþý¹þýu#Òÿäþ¯®ÿÓe†þ'ÿ×§Í¡|\ox#ЇHÿSû¿úþïÀú>äUNÝëE¤€ÿËòüöԍHÿˆþôB`ÿ݈ôðqþò׍lýàÿâüBבÁ€˜€þ¯[#ÿýÇœÿëF ÿèfÂcý_&¡ÿ(ÿ“û¿Òþþ/×!Ì-`šéQÿ‹ë¿XÿK7"ý#êqþõ¿t#Ò?¢þǬÿ¯‘þõ¿ØÿëéF¤ÿÉý_ÝýŸÔxžÿ‡`(ÕÈÖÿþ/žÿ€Ðud0`À€&àÃÇ­ÿ“û¿ºç¿}ð	Ç>™³ ˜bú7ú_ìÿ	A”Dý/®ÿB ûK7"ýOíÿJLÏÿ•pýů‘þ'÷õÆÿpü‡ðqw¬Ëª(w¼(D¤„ÿ‹ë?XÿK7"ý#êÑÿ	çu#Ò?¢þÏ@ üu#[ÿø¿8ÿ‡Ðud0`À€& ÿëÖˆÆDý/Öÿ„Àù¿nÆéßøXÏW›FáQþ/“yÇþFç¿*÷å¶\?	>qùwÿϱþ†øüW›Ã*X‹ÏõåZ¹$ãgþßäß»”þ7xègÀ€_ÿ‡“?þï7OÇb™oû|ù%_¯ÅÃÀ{4Éþ«ÿƒÉXÿ‚3® (&^ÿËò0Bóm†õo;úgÿOu#ÔÄì_4ÿO<õáöÓ (8ÿ¿^½þ¿ØÇêûïÑ${üþÿiþï-Ïÿ@0œý«æ•Ïÿ#Ô/Ò¿aÿ'Ô¿nFëÿl ½G£ð¸úOIHèÿ€™ÿ“ÔF~âóoÒfÿ‡ù¿>²üÇ ÿ»õmqüGP_i SŒLÿqÀõÿBÿÇŒç!°ÿ£ndú+ 6¬ÿ~ÿÇ”ç °ÿ£ndú+ 6üüß«ÿ•Žÿ,•¯™þã
-€
-ë¿×ÿ1µ<ÿýu#Ó\°øñ?µÔ?ª_7Âõÿ¨`ú©þWHéÿð|¾? ôôÿÞ²ñ?® X“ì¸ù¿OéÿÅ`Û?jF¢ÿàÿJ3ú¿Èò?µÿ«ßÿ)pýû?êF¦ÿ©ý_]ÿ§Ë2ú? œü_Ÿ6‡òq½á@2ýOìÿzÉÿÍñ‡¼Ê©{½ÈôðñüöԍLÿSû¿zý›càÔ? öЍLÿ ÿçÿ(Ý×ÿ¯îÿâú?†G`ú¿î Ùø?µÿ«×ÿ15ìÿóÝHôïõ¿,ý_dùŸÚÿ•ö÷¹þané ÓŒLÿ€ú_\ÿ…Àú_º‘éPÿ‹ó?¬ÿ¥™þþ/Žÿ•¯™þõ¿ØÿëéF¦ÿ©ý_ÝýŸÔ:žÿ‡`(Õ×ÿ¯_ÿ‹ç? ¼lÍ`À€ƒ«ôݲñjÿW÷ü·O­åøÀ's SŒDÿáÿbÿO²üêqýÝ_º‘ébÿWbúþ/®ÿB øu#ÓÿÔþ¯þøŸrü‡ðqw¬Ëª(w¼(D¦€ÿ‹ë?XÿK72ýêÑÿ	çu#Ó? þÏ@ üu#\ÿ¿~ý/Îÿ!\820`À ÐÿuÈÆ@ý/Öÿ„Àù¿nFê?ÒñuI£ð(ÿ—É\0ô!›ÿªÜ—Ûrý$ù Äåß5þ¿SýwæÿúDç¿ÚVùÃâX|®¯Öz
-ÿOgþßäß»„ûÐý0`pÆròqc¢ÇÿýæéX,óíbŸ/¿äëÕ¢xz&Óã÷ÿšñ?Žÿ¸§›hý/ËÃÍ·‰×¿
-žõŸ!Pÿº‘é?fö/™ÿ»Œõß1ÜÅ4€
-ÎÿoÍk×ÿÛâX
-¼G“éÈù¿sÿ!ðün^÷ü?Fý"ý'¬ÿށú×ÍXýŸí²÷hWÿ)ñ†þqù?Ù?mìÇ >ÿ&Mó@”ÿ¸ò_‚úÖg<ÿÁ ÓŒHÿqå¿DýžÿƒÀþºé?®ü—¨ÿcÂúØÿQ7"ýÇ•ÿ’Ôÿbÿ7܁ӍHÿqå¿$ýƒ§ÿû?êF¤ÿ¸ò_’ú_†úÇ@õëF¶þUþKRÿËgÜÿ‡ð|¾? ô\}¸5¢ñ?®ü—`þïƒãøÁ¶ÔŒ@ÿ	ÄÿåèÿB Êÿäþ¯^ÿ'Ÿqýû?êF¤ÿÉý_]ÿ§ËýNþ¯O›Cù¸ÞðF ‘þ§öõý߁õŸ0|È«œº×‹HÿÿÏ@àùO݈ô?¹ÿ«×ÿ18ú?!°ÿƒnDúGø¿8ÿ‡@ùëF¶þðqþ¡ëÈ`À€L@ÿ×­ÿ“û¿zýƒ3ÿpþ¯þÄÿ•Òÿ…@”ÿÉý_ißÿÅõ_sK˜fDúÔÿ¢ÿëéF¤Dý/Îÿ °þ—nDúø¿ÇŽÊWHÿˆú_ìÿõ¿t#Òÿäþ¯îþOÚ|™ú`(ÕÈÖÿþ/žÿ€Ðud0`À€& ÿëÖˆÆÿÉý_Ýóß>¸”ã?ŸÌY L1ýˆÿ‹ý?!ˆò¨ÿÅõ_téF¤ÿ©ý_‰é÷äú/Š_7"ýOîÿêÿ!áøáãîX—UQîx+PˆHÿˆú_\ÿÀú_ºéPÿ‹õ0ðü¯nDúGÔÿâù”¿ndëÿ ÿçÿºŽ0ÀôÝÑø¨ÿÅúŸ8ÿ×Í8ýûXË׍£ü_&sþ/có_•ûr[®Ÿ$„¸ü»ÆÿWÿùGÿjsXå‹cñ¹¾ZëQWd`üïÌÿ›ü{—ðü„<ô3`À€AS÷‹“=þï7OÇb™oû|ù%_¯ÅÃÐ{4©þ«ÿƒaýG¦~Ø¢õ­ÿey£ù6Ãú·ýÛàéÿƒÀX72ýÇÌþ%ó—¥Ô?„{˜0`À@aÀùÿÍyíúÿb[«÷hR÷üë¿`àä_7¯{þ£~‘þëRÿ¨ÝŒÕÿÙÿ'{FáqõŸoèÿ€—ÿ“ÿÓ"ê5û?Ìÿõåòú_Ýúõ ÷ÿ ØÀ`šéÑÿ‘þìÿ¨‘þýyþû?êF¤DÿGŽÿxW7"ý#ú?òüöԍHÿˆú_Ô?ª_7²õ@ý/
 îÿCx¾ß…zúoŽhüŸ¼þWwþïƒãøÁ¶ÔŒ@ÿ	¤ÿcJÿQþý¹þýu#Òÿäþ¯®ÿÓe†þ'ÿ×§Í¡|\ox#ЇHÿSû¿^òsü‡ð!¯rê^/"ý#ü_<ÿýu#Ò?¢ÿ#ýŸØÿA7"ý#ü_œÿC üu#[ÿø¿8ÿ‡Ðqd0`À€& ÿëæˆÆDÿGÏñçÿºèßAêú¿ˆò?¹ÿ+íïÿrýÂÜÒ¦‘þõ¿¸þõ¿t#Ò?¢þçXÿK7"ý#ü_ÿ!8*_5"ý#ê±ÿÖÿҍHÿ“û¿ºû?©ñ<ÿÁPþª‘­ÿ_ÝÿÅþ :Ž0ÀôÝÑø?¹ÿ«{þÛo8þ#ðÉœÀ#пÔÿbÿO¢ü#êqýÝ_ºéjÿWbzþ¯„ë¿(~݈ô?¹ÿ«7þ‡„ã?„»cux\VE¹ã­@!"ý#ü_\ÿÀú_ºéQÿ‹þO<ÿ«‘þõ¿xþå¯Ùú? þçÿ:Ž0ÀôÝÑø¨ÿÅúŸ8ÿ×Í8ýëùjÓ(<Êÿe2ßœÿ¦ÿëúŒÎUîËm¹~|âòïÿŸcÿOñù¯6‡Uþ°8Ÿë˵sIÆÿÎü¿É¿w)×ÿ àú0`À žý'œÿßšøñ¿y:Ë|»ØçË/ùzµ(Þ£Iöøó_ÍøLJÿ/—d–"ÔK¼þ—åa„æÛëßvôoSËõ?u#ÔÄì_4ÿO<õáöÓ (8ÿ¿^½þ¿ØÇêûïÑ${üþÿiþï
-ýgÿªyåóÿõ‹ôŸd\ÿƒ@ýëf´þÏ@Ñ{4
-«ÿ”œüÿô\ŸÈüŸ ±f°øü›4eý/²üÇ ÿ»õmÿ!ØÀ`š‘é?® Ø þ_èÿ˜±þöԍLÿqÀ†õßïÿ˜²ÿ3öԍLÿqÀ†Ÿÿ{õ¿2Ãñ—ÿt#Ó\°aý÷ú?6ÿCý`ÿGÝÈôW ,~üO-õê׍pý?ª Ø€þ_ìÿèÿð|¾? ôôÿÞ²ñ?® X“ì¸ù¿OéÿÅ`Û?jF¢ÿáÿ
-ô!åjÿW¿ÿSàúöԍLÿSû¿ºþO—eô@8ù¿>måãzÁ>dúŸØÿõ‚ÿ›õ1|È«œº×‹Lÿ×÷±ÿ3öԍLÿSû¿zýSKÿ'öЍLÿ ÿçÿ(Ý×ÿ¯ïÿâüÂ…#ƒ0ý_w€lüŸÚÿÕëÿ˜Çñçÿº‘èßü_YBÿYþ§ö¥ýý_®ÿB˜[:À4#Ó? þ×!°þ—ndúÔÿâüëéF¦@ý/Žÿ•¯™þõ¿ØÿëéF¦ÿ©ý_ÝýŸÔZžÿ‡`(Õ×ÿ¯ïÿâù/[30`Ààªý_w€lüŸÚÿÕ=ÿíS›püGà“9€)F¢ƒ¨ÿÅþŸdùÔÿâú/º¿t#ÓÿÄþ¯Äôü_)×!Püº‘éjÿWüO9þCø¸;V‡ÇeU”;Þ
-"Ó?ÀÿÅõ¬ÿ¥™þõ¿èÿ„À󿺑éPÿ‹ç? Pþº®ÿ_ßÿÅù?„G`ú¿î Ùø¨ÿÅúŸ8ÿ×ÍHýÇ–üº Qx”ÿËdÞyú¿ŒÎUîËm¹~|âòïÿŸkú¿0ÿ×'>ÿÕæ°ÊÇâs}¹Öc.ÉÀøß™ÿ7ù÷ŽûÿÐý0`PSßö9ÿ¿5ñãÿ~ót,–ùv±Ï—_òõjQ<¼G“ìñ翚ñ?˜Œþõƒ¶¥õ¯ÿey¡ù6Ãú·ýÛ”õ_0p֍Pÿ³Ñü?ñÔ?„ÛO0` 0àüÿxõúÿb[«ï¿G“ìñûÿ§ù¿7¬ÿÁ° ´j^ùü?Bý"ý›„ë¨ÝŒÖÿÙÿ'zFáqõŸŸÑÿ!2ÿ'ÿ§eÿÇ7ƒ,ÿS×ÿêÖ´!åø¡¾Ò, ¦™þÙÿñ­Àþº‘éŸýß
-ìÿ¨™þÙÿñ­@óŸndúgÿÇ·û?êF¦@ý/êÕ¯áú?û?¾žïÀwàdÀ€ž€þß;@6þO]ÿ«;ÿ÷)ý¿l`ûGÍHôŸ°ÿã›A–ö|+°ÿ£ndúŸÚÿÕõº,£ÿÂÉÿõis(×Þô!ÓÿÄþ¯—üßÿ!|È«œº×‹LÿìÿøV`ÿGÝÈôÏþoöЍLÿìÿøV üu#\ÿgÿÇ7Â…#ƒ0ý_w€lügÿÇ·çÿº‘è?¶d£ðèú_†þ/²üOíÿJûû¿\ÿ…0·t€iF¦@ý/®ÿB`ý/ÝÈô¨ÿÅùÖÿҍLÿ ÿÇ,ÿ¯™þõ¿ØÿëéF¦ÿ©ý_ÝýŸ´þõÀPþª®ÿ_ÝÿÅþ^¶f0`À€ÁUú¿î Ùø?µÿ«{þÛ§ÖpüGà“9€)F¢ƒ¨ÿÅþŸdùÔÿâú/º¿t#ÓÿÄþ¯Äôü_)×!Püº‘éjÿWüO9þCø¸;V‡ÇeU”;Þ
-"Ó?ÀÿÅõ¬ÿ¥™þõ¿èÿ„À󿺑éPÿ‹ç? Pþº®ÿ_¿þçÿ.0`€	èÿºdã? þëBàü_7ãôÛññ’Fáãý_î‡úUÎÓÿalþ«r_nËõ“䃝kNõß™ÿëÿjsXå‹cñ¹¾Zë)ü?ù“ïîÿA@?ô3`À€ÁºnMôø¿ß<‹e¾]ìóå—|½ZCïÑdzüþ_3þÃñWàt­ÿey£ù6ñú·Á³þ3ê_72ýÇÌþ%ó—±þ;†»˜0`À@aÀùÿ­yíúÿb[«÷h29ÿwŽã?>ÿëæuÏÿcÔ/ÒÂúï¨ÝŒÕÿÙþ'{FáqþÄKÿ‚¸üŸìŸ6öcŸ“&ôÿ@å?®üWdýÇÓú¿gÿ76° ˜fDú+ÿÙÿñ¼þŸÐÿýu#Ò\ù¯ÈþßÆžÿ…Àþºé?®ü—Äÿ“ZŽÿ,•¯‘þãÊEÖÿ>­ÿÏþOØÿQ7"ýÇ•ÿŒÿ©¡þ1Pýº‘­ÿG•ÿ’œÿõý?žïÀ÷ádÀ€ž€þß[#ÿãÊ	æÿ>Ðÿ‹Á¶ÔŒ@ÿÑÅÀ…Gû¿ý_DùŸÜÿÕ½ÿ[Ÿqýû?êF¤ÿÉý_]ÿ§Ëú? œü_Ÿ6‡òq½á@"ýOíÿêû¿CÂñ‡¼Ê©{½ˆôðñü®ÀêF¤ÿÉý_®çÿrôB`ÿ݈ôð9Îÿ!Pþº‘­ÿü_œÿCè:20`À põáÖˆÆÿÉý_Ýù¿6ãø€óÝôï þ/OÿQþ'÷¥}ÿ×!Ì-`šéQÿ‹ë¿XÿK7"ý#êqþõ¿t#Ò?ÂÿÅñ‚£òU#Ò?¢þûÿB`ý/݈ô?¹ÿ«»ÿ“öÿÅ`(ÕÈÖÿþ/žÿ€Ðud0`À€& ÿëÖˆÆÿÉý_Ýóß>8ÏñOæ, ¦þ
-ÄÿÅþŸDùGÔÿâú/º¿t#ÒÿÔþ¯Äôý_\ÿ…@ñëF¤ÿÉý_½ñ?$ÿ!|Ü«Ãã²*Êo
-éáÿâú®ÀêF¤Dý/ú?!ðü¯nDúGÔÿâù”¿ndëÿ ÿçÿºŽ0À\}¸5¢ñPÿ˱þ'Îÿu3Nÿ³XË׍ÂÇû¿êי̥ìÿalþ«r_nËõ“䃗ÿ“ÿÏ:Çü#ˆÎµ9¬ò‡Å±ø\_­õ¨+20þ¿4ÿw†ó7xègÀ€ƒÄ$	'7&züßožŽÅ2ß.öùòK¾^-Ї¡÷hrwþ+Cÿ›xV€PL´þ—åaŒæÛë¿çÿþu#ÓÌì_2ÿwYFýC¸ƒi œÿßž×®ÿ/¶Å±x&×qÏÿÁ±þ#Nþuóºçÿ1ê鿞Pÿ¨ÝŒÕÿÙÿ'{FáQþ›xËþâòòÚëÖÿ
-§ú_&0ÿDùŸ¼þWèä¿~ `ÿG6° ˜fDú¿jÿÇpZÿ7<ÿýu#ÒÿUû?žÇÃó?ØÿQ7"ý_µþ×Iÿ)ë`°T¾jDú¿jÿÇpªÿEÿöԍHÿW­ÿNõ¿¨T¿ndëÿ׬ÿNõ?žÿð|¾? ôôÿÞÑø?yý¯îüßÏñ‚
-lÿ¨þˆÿ‹õŸ ˆòÕþßü_\ÿÀþºérÿW×ÿé2Kÿ„“ÿëÓæP>®7¼èC¤ÿ©ý_/ø¿
-Çò*§îõ"Ò?ÂÿÅó؁A7"ý_µÿãÙÿåéÿ„Àþºéáÿâüå¯Ùú?ÀÿÅù?„KG`ú¿nhü¿jÿÇoþ/ö‚Àù¿núwÿWJÿQþ'÷¥}ÿ×!Ì-`šéPÿ‹þ/¬ÿ¥‘þõ¿8ÿƒÀú_ºéàÿòÿ!8*_5"ý#ê±ÿÖÿҍHÿ“û¿ºû?©	<ÿÁPþª‘­ÿü_<ÿá/¬0`pÕ€þ¯Û#ÿ'÷uÏûàSŽÿ|2g0Åôo þ/öÿ„ Ê?¢þ×!Ðý¥‘þ§ö%¦ßÿ‘ë¿(~݈ô?¹ÿ«?þŽÿ>îŽÕáqY厷…ˆô¨ÿÅõ¬ÿ¥‘þõ¿XÿÏÿêF¤Dý/žÿ€@ùëF¶þðqþáÒ‘Á€˜€þ¯Û#ÿõ¿Xÿçÿº§ÿy¬åë‚FáQþ/“¹ÔÒÿ…`lþ«r_nËõ“äƒ—×øÿ¬£ÿBtþ«Ía•?,ŽÅçúj­G]‘ñ¿3ÿoòïûa€?ô3`À€AåüÿæDÿûÍÓ±XæÛÅ>_~É׫Eñ0ôM®ÇŸÿjÆÿ`ÏC°‰gÅDëYÆh¾Í°þmGÿ–õŸ@p֍Lÿ1³Éüßeõá¦0Ppþ{^»þ¿ØÇjà=š\Ç=ÿç9þC˜SªyÝóÿõ‹ôŸXžÿ‡@ýëf¬þÏþ?Ù{4
-«ÿ”øúèÿ —ÿ“ÿÓ²ÿãÛA”ÿÉëuë?Ö <ÿÁ ÓŒHÿìÿøf`ÿG݈ôÏþoöԍHÿìÿøf°T¾jDúgÿÇ7û?êF¤Dý/êÕ¯Ùú?û?¾žïÀ÷àdÀ€ž€þßÛ#ÿ'¯ÿ՝ÿûà9þC°í5#ÐÂþoQþÙÿñÍÀþºérÿW×ÿé2Kÿ„“ÿëÓæP>®7¼èC¤ÿ©ý_/ø¿ÙÿǼʩ{½ˆôÏþoöԍHÿìÿøf`ÿ݈ôÏþoÊ_7²õö|+\:20`À Ðÿu{Dã?û?¾8ÿ׍@ÿâÿÊèÿB Êÿäþ¯´¿ÿËõ_sK˜fDúGÔÿâú/ÖÿҍHÿˆú_œÿA`ý/݈ô¨ÿÅñ‚£òU#Ò?¢þû@`ý/݈ô?¹ÿ«»ÿ“šÀóÿå¯Ùú?ÀÿÅóþšÁ€W
-èÿº=¢ñrÿW÷ü·>ãøÀ's SŒ@ÿâÿbÿO¢ü#êqýÝ_ºéjÿWbzþ/Ãõ_¿nDúŸÜÿÕÿ
-ÇwÇê𸬊rÇ[BDúGÔÿâúÖÿҍHÿˆú_ôBàù_݈ô¨ÿÅó(ÝÈÖÿþ/Îÿ!\:20`À Ðÿu{Dã?¢þëBàü_7ãôoB¬ç«M£ðñþ¯úïMæ›þô]ŸÑù¯Ê}¹-×O‚B\þ]ãÿsÆ0ÿâó_m«üaq,>×—k=æ’Œÿù“ÿZþÜÿƒ ègÀ€ƒ$™%œÿßœøñ¿y:Ë|»ØçË/ùzµ(Þ£Iöøó_ÍøLÆý?.̸ ˜xý/ËÃÍ·Ö¿íèߦŽõŸ!p֍Pÿ³Ñü?aÿO·Ÿ0`À@aÀùÿðêõÿŶ8Vߏ&Ùã÷ÿOóÏþL 5óÊçÿêéß$\ÿƒ@ýëf´þÏ@Ñ{4
-òÿØzúOÿ„ÈüŸ 6òcŸ“6û?Ìÿõ‘å?® Øðø:ù·!åø¡¾Ò, ¦™þã
-€
-êÿ¢ÿ£?ÕÿÊxþû?êF¦ÿ¸`Ãúï>ÿÕ£ëÿA`ÿGÝÈôW løù¿;þÛŒõÿ0X*_52ýÇ Ö¿ï连þóüöԍLÿqÀâÇÿÔRÿ¨~Ý×ÿ£
-€
-è¿ãÿõ§ú)ý?žïÀwàdÀ€ž€þß;@6þÇ k’7ÿ÷)ý¿l`ûGÍHôŸ ü_	ý_dùŸÚÿÕ½ÿÛ¸þýu#ÓÿÔþ¯®ÿÓeýNþ¯O›Cù¸ÞðF ™þ'ö½äÿæøáC^åÔ½^dúø¿xþû?êF¦ÿ©ý_®ïÿ¢ÿû?èF¦€ÿ‹ó”¿n„ëÿW÷qýÃ…#ƒ0ý_w€lüŸÚÿ՝ÿû:àø€óÝHôïþ/GÿYþ§ö¥ýý_®ÿB˜[:À4#Ó? þ×!°þ—ndúÔÿâüëéF¦€ÿ‹ã?Gå«F¦ÿë×ÿbÿO¬ÿ¥™þ§öu÷Rëxþ‚¡üU#\ÿ¿~ý/žÿ€ð²5ƒ®ÐÿuÈÆÿ©ý_Ýóß¾iÊñ€Oæ, ¦‰þ
-ÂÿÅþŸdù¿~ý¯”ë¿èþҍLÿû¿Ó÷qýů™þ§öõÇÿŒã?„»cux\VE¹ã­@!2ýü_\ÿÀú_º‘éPÿ‹þO<ÿ«™þõ¿xþå¯áúÿõý_œÿC¸pd0`À€& ÿ됍ÿ€ú_¬ÿ	ó݌Ԭåë‚FáQþ/“ygéÿB0:ÿU¹/·åúIðAˆË¿kü.	Ì?‚øüW›Ã*X‹ÏõåZ¹$ãgþßäß»”ûÐý0`Ð0ãüÿæÄÿûÍÓ±XæÛÅ>_~É׫Eñ0ðM®ÇŸÿjÆÿ`Xÿ
-CsÒ‚"ÔK¼þ—åa„æÛëßvôoÙÿů¡þ#fÿ¢ùâ©w0
-`À€Â€óÿÛóêõÿŶ8Vߏ&×ã÷ÿOóÏúÏ ©æ•Ïÿ#Ô/Ò’qýõ¯›Ñú?ûÿDïÑ(<®þSâ3ú? Dæÿäÿ´€ú_Íþó}dùŸºþW·þ£
-ã?X L32ýú?òüöԍLÿ€þ¬ÿýu#Ó? þÇ–ÊWLÿ×ïÿÈþØÿQ72ýêQÿ¨~Ý×ÿ¯^ÿ+Ðÿáù|~@è	èÿ½=²ñêú_Ýù¿OéÿÅ`Û?jF¢ÿáÿòô!åÿúý× °ÿ£ndúŸÚÿÕõ²ÿ#Š“ÿëÓæP>®7¼èC¦ÿ‰ý_/ø¿YÿǼʩ{½Èô}ÿWÂóxüS72ýú?Òÿ	ýt#Ó?ÀÿÅù?Ê_7Âõÿëû¿8ÿ‡péÈ`À€L@ÿ×푍ÿ€þ
 –ã?Îÿu#Ñ¿Cø¿2ú¿Èò?µÿ+íïÿrýÂÜÒ¦™þõ¿¸þõ¿t#Ó? þçXÿK72ýêqü‡à¨|ÕÈô¨ÿÅþXÿK72ýOíÿêîÿ¤õ€úG`(Õ×ÿ¯ïÿâùaÍ`À€ƒ«ôÝÙø?µÿ«{þÛ§&ãøÀ's SŒDÿáÿbÿO²üêqýÝ_º‘ébÿWbzþ¯”ë¿(~ÝÈô?µÿ«?þ§ÿ!|Ü«Ãã²*Êo
-‘éPÿ‹ë?XÿK72ýêÑÿ	çu#Ó? þÏ@ üu#\ÿ¿¾ÿ‹ó—Ž0ÀôÝÙø¨ÿÅúŸ8ÿ×ÍHýǶ|¼ Qøxÿ—û¡~•w	ý_Fç¿*÷å¶\?	>Ñù·Æ%ìÿ	!>ÿÕæ°ÊÇâs}¹Öc.ÉÀøß™ÿ7ù÷Žõ_0Àú0`À ÆsþsâÇÿýæéX,óíbŸ/¿äëÕ¢xx&×ãÏ5ã0ôÿbh*íR„z‰×ÿ²<ŒÐ|›aýÛŽþmó?Ô? Š_7BýGÌþEóÿÄSÿî`À€…çÿ·çÕëÿ‹mq¬¾ÿM®ÇïÿŸæÿÞÐÿÁP‚ªyåóÿõ‹ôŸd\ÿƒ@ýëf´þÏþ?Ñ{4
-«ÿ”øŒþ‘ù?ù?-ë½dùŸºþW·þ£
-ã?X L32ý_¿ÿcÊúØÿQ72ýú?²ÿ3öԍLÿ¬ÿõV°T¾jdúôäùìÿ¨™þYÿë­@õëF¸þÏú_o„ç;ð=ø0` ' ÿ÷öÈÆÿ©ëuçÿ>¥ÿƒ
-lÿ¨‰þc‹5
-ö9ú¿ÈòèÿÈõìÿ¨™þ§öuë¿Ðÿ…âäÿú´9”ë
-oúébÿ×þoÖÄð!¯rê^/2ý_ÓÿåÎþ/®ÿ@`ÿGÝÈôÍþ§óßu@ý#`ÿÝÈôðñüÊ_7Âõÿ+ú¿ÜÙÿÅþÏ.0`€	èÿº=²ñÿšýÝÙÿÅçœÿëF¢‡ð¥ô!åjÿWÚ÷Ñÿané ÓŒLÿׯÿ•ñùëéF¦@ý/®ÿB`ý/ÝÈôýú_\ÿÁà¨|ÕÈô¨ÿÅþXÿK72ýOíÿr}ÿýßå¯áúÿõë±ÿ„¿°f0`À€ÁUú¿nlüŸÚÿÕ=ÿíyþ„Oæ, ¦‰þ
-ÂÿÅþŸdùÔÿâú/º¿t#ÓÿÄþ¯Äôû?rýů™þ§öõÇÿ”ã?„»cux\VE¹ã­@!2ýú?rýëéF¦ÿkÖÿúæÿ¢ÿÏÿêF¦@ý/žÿ€@ùëF¸þ}ÿçÿ.0`€	èÿº=²ñÿšõ¿¾ù¿Øÿçÿº§ÿ,ÒñuI£ðñþ¯úu&siBÿ‚±ù¯Ê}¹-×O’B\þ›úÆ:Ëü#ˆÎµ9¬ò‡Å±ø\_­õþŸ—ê;ÖÀ ègÀ€ƒ†çÿ·&züßožŽÅ2ß.öùòK¾^-Ї¡÷hR=þüשÿ—1\ÿ‡`‚ãù/ÅDëYÆh¾Í°þ{ý?ÙÿG`ÝÈô3û—Ìÿ]–QÿîaÀ€…çÿ7çµëÿ‹mq¬Þ£IuÜópžã?„Œ
-TÍëžÿǨ_¤ÿzR@ý# þu3VÿgûŸì=…Gùlâ›úïô\Ÿ¸üŸìŸ6öcŸ“Öÿ‚ Ê\ù¯Èý¿pZÿOXÿ‚
-, ¦‘þãÊEö§õÖÅÀþºé?®üWdÿÇoã?û?C`ÿG݈ôWþ+rýï¤ÿÔqü‡`©|ÕˆôWþ+²þw£ÿ@ÿöԍHÿqå¿ãj¨T¿ndëÿQå¿"ý¿áTÿ+áùÏwà»ð2`À@O@ÿï͍ÿqå¿ó<Ç6ðø¯fúO þ/Ö‚ Êÿäþ¯îý߆„ë?ØÿQ7"ýOîÿêú?]fèÿ€pò}ÚÊÇõ†7}ˆô?µÿëÿ·áøáC^åÔ½^DúGø¿xþû?êF¤ÿÉý_®çÿòôB`ÿ݈ôðyÎÿ!Pþº‘­ÿü_œÿCè820`À ÐÿusDãÿäþ¯îüßÏþO8ÿ׍@ÿâÿ
-ô!årÿWÚ÷qýÂÜÒ¦‘þõ¿¸þõ¿t#Ò? þûÿb`ý/݈ôðqü‡à¨|Õˆô¨ÿÅþXÿK7"ýOîÿêîÿ¤&ðü?Cù«F¶þðñü„Ž#ƒ0ý_7G4þOîÿêžÿöÁŽÿ|2g0Åôo þ/öÿ„ Ê?¢þ×!Ðý¥‘þ§ö%¦ïÿâú/Š_7"ýOîÿêÿ†ã?„»cux\VE¹ã­@!"ý#ü_\ÿÀú_ºéQÿ‹þO<ÿ«‘þýyþå¯Ùú?ÀÿÅù?„Ž#ƒ0ý_7G4þ#ê±þ'Îÿu3 ÿ]ù°Šµ{õh>Þÿå~HLšº”þ/còßüW´é¯E|þ³f¸`þŒÏý°-Ž•à=†Ç™k¬çù/öGV€ÐÌxý×ýy­Á
-`Hÿ&3]ý{Ëõ?MV›¢zoœ{—ÌLúîôw_‹ã±þËYirþ›ßÊêXïÞ?ËÜܽ+vÕê°]忯NßÀû¹y·-—ùvÑ|`ꛘ`ƒqóweµ©§‹§¿µs;7Öe¼éÜãõÿuõµØýV
-Þc@ÿÆšþøÏúÞýëI«ï^}ýTVùöoïO¤‰é<}ÿå§ÖþqX­¾}½~…Ÿ'³Ùå~=®ž_Ü<M“öþ¾¬ŠßÿüÍ&Ozñ>îòöKêÏ€™ù¤õ‚Å¡zúã4dé¬ý‚S5ËÏùòKûEíü£Ø®þ-_¯Žç8oæÆ]üšù~ÿç/Ñü¶žŽ¶‹]¹k}ãœiû·h¾ø)ÿ¼}~Åû\Úþþõ¿,~ÝÕ»ú5{é‡ü©|Ü-W¿çåþø5?}Ý¿ø~ÙæŸÛÿÞ…yæ}ûÿ¾ZnóâëóÏ`g©½HÖ/¿îç—|û>™ê_×ç+¹h}n’þW[š¾úËãaÿÇWo­Œ¿ÿ?Ô“¿¼þ\Æ¿ÇàüÏ%Ýû¿cý/6¼7Éûú¿›ÿŸÿñÿÔ¢¢ÖƘ=^`@ÿÿÇIÿ	û¿b¿YË€SK>gܘ1ã¹kŽyÈߣÉtÜþO=%àú„äG.Åjfìó‚ÞÿgýãóÞÿgýɏ<¬™ñú¿âþšö÷ÿyþÂûÿõ·™O“ÐÚþŸã×Ùý7¾NÞ¼·ûo硽ûïüÜÎS’öæ–Îfó4°äüý0^ÿàý®ÿB8oÉ&/îÿ;ûÇ~oÒÛÿ³‹ñ¤·ÿïS—^¼ ³ÿoæ³Ô%¾õ‚Îþ¿«ïHiÖþ^Úÿ¿x‹ýÿ¤»ÿêÏ™÷³öoÑÝÿ7™OÚ/èìÿ7>7kÿ½ýÿz0»øûÿÉÐþ2´ÿŸôöÿM“ÙÅ:ûÿ¦&mÿ½ýÿúžoÚ¹øÞþòÝýÿ„ûÿ÷Ãøû?xÿŸç¿ ü¹ùÏýD­ÿ ÷ÿ9ÿƒðªí;0<{vkÆŽÿxÿ¯ñÿrÿïúŒÏÿ5÷ÿzëÿ6ðü/ã4waµŒ×?vÿÏQÿþÜÿ3ÎZç]ûøï¬NI0ý¿džfõ-£³ÿgŒsû.sÖ¤™¿ÜÿËìÜ>õÝãõÝÿãþ?†ó–LÖßÿ³é¼ub4ëŸÿ­óÖÚRÊúû6¤iû;t÷ÿfs’öºûf6?ÃÀþ_6´ÿ—õöÿ’45­m­ì…ý¿™õíïÐÛÿ3Ù,´†ÞþŸµÉÅ…Øÿˆöÿ²¡ý¿¬¿ÿçwq©ûû3Ÿ\|‡ÞþŸ™_|‡ïíÿeßÝÿ˸ÿw?Œ¿ÿc÷ÿRÖ‡ÐÚóûs#ÐP‹ZˆZÿîÿqýÃÄú0`0&XÖÿásƍ3þïË㱨'ŠÒ÷h’ýýýŸ¬{þ×eôCH~4‰å‚¬ZÆè“›^Oâ÷
 Öïüý:êÏÿëfìüߣÏÿgôÿ Ÿðùց0û‘g=43^ÿ`ÿÏAøÓÿãf³:)©»(ÿoìÜÙKPjçf–¼àÿ¹¨þïR;ˬ›_žÿÏlIB¿áý0^ÿ`ÿë?C8[2üPýß÷ÿ8“´Œ1¾ïÿ1>
-íïÐ;ÿofan[/èúœqóÖÑz?Tÿßù|ÏÿcÒÙ̵†ÎÿgvÖþ-ºþŸ´þ-ÛoÑóÿ¼ŸÛ‹rÀÿã‡ü?~Èÿã_8ÿŸ\þš=ÿO2K.ÒÝ÷ÿØÌµ_ð=ÿÿ®ÿÇÓÿs?Œ¿ÿƒÏÿsýBÛÿÓª@-*!jýéÿáüÂØÍz0˜2pôÿÜœ±ã@ŸÿO¸ÿ‡`|þÁçÿ¹þÁ$?V ×Ëxý_sÿ/pÿïFü¹ÿçë$÷¼Û÷|þ?I;õ¿gÎ¥¦×üÛ4Û„ÛÞ4Ã;å¿3—fs..ÝãõÞÿcÿç-™0Tÿ;¼°ÿç\ëp~xaÿÏÚV{ïÐßÿ³™mí9…~ýo7owÎCûahÿ/ô÷ÿì,dퟡ¿ÿ—ÚÐ~AoÿÏÍ2Û~‹~ýï]\¨ý¿0´ÿ†öÿBÿ¯ÎeÚþzû>Ë.®Cÿ/ø‹l~oÿ/|wÿ/pÿï~ÿïÿñü„Îùÿç- at jQ	Që?Èý?®ÿ@¸ÎÊ>|?XrÿïæŒÿ-úü_àþ‚ñùŸÿ£ÿ‚ÿ‘s=ÍŒ×ÿ5÷ÿºõ_Œw¬ÿ¡µÿg‚MS?kŸÿ³MߤS <¸ÔZóÂÀìr0
-³à’ìrÐ&næi8¸Æëÿšû½ýÿúFý#8oÉØ¡ó¶ßÿ×zÓÚœ³½ý¿`›;Eë½ý¿Ô¶KŒÛþþßÌÔ÷¤Ö^Øÿ›µZëÚïìÿ=¿¢·’vcûRp“]ü
-@“¸ìâ×èo ÎRÛ~ÁÀ Ú ´C€ö…àõ­ýâÝ
-@›Ó¾Öý
-ÀÔØöµþÞ ýî åàÝ0þþÞÿ£ÿÂsÁoöÿÕIÔú²ÿ/ë?A¸ÎÊ>Žü·fìøŸ¢Ïÿîÿ!Ÿðù?Îÿ û#ûq*f¼þÁçÿèÿ„ðçþŸõé<&iíÿ¥&›¥³Îù¿Yâfóþ_ìþùYÈL˜™Îù?ï²9Îßãõ>ÿÇþoÎ;2éÐþ_Ú?ÿç“ö~PÚ?ÿ—„¶_ÐßÿËlëˆa:tþ/}iÿ¯½õ–ÿKûÛMuÏö^8ÿ7¿øúçÿ.ê ¦/lÿYkÛ?äÀö_:´ý—mÿ¥ýí?ïÌE
 .zÛ.±¿Åõ?çéþÞö_úÝí¿”Û÷Ãøû?xÿëÿúýO{Ô¢¢Öçÿ¸þáJ+û0`ð½À%<ÿwsÆŽÿ}þ/åþ‚ñùŸÿcý)û¿ªf¼þÁýÿxþBëü_H²Ä¸öþŸIRçý¼Óÿ¯ÙH_8þ.ÿÍ­6]n Îf3ÇzÃwÄxýƒ÷ÿxþÂyKÆ
-íÿ¹îþŸIšÂ™ÉåÚû~æs×þÝý¿Ô¦¾µÿçzû&	I«æ¤ªÿé†öÿ\wÿÏû좡Úÿs½ý?‚»xÁûÙÅuØÿsCûnhÿϽPÿ³9vÝ~Aoÿož™öuèíÿÙ$ÍÚ/øÞþŸûîþŸãþßý0þþÞÿ£ÿÂsÿӶÏÿ©#jý¹ÿÇù„«¬ì3`À€ÁP°ä3ÿ­3þoòãbW¾æÛÅ×Õ×òðùMªãö¬M¹ÿ!áþ!„B!„B!„B!„B!„ò_Žÿ4¦  
- 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/16ia64-8n2s.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,117 +0,0 @@
-Machine (phys=0 total=48346688KB)
-  Group0 #0 (total=24182720KB)
-    NUMANode #0 (phys=0 local=6045632KB total=6045632KB)
-      Socket #0 (phys=0)
-        L3Cache #0 (9216KB)
-          L2Cache #0 (256KB)
-            L1Cache #0 (16KB)
-              Core #0 (phys=0)
-                PU #0 (phys=0)
-      Socket #1 (phys=0)
-        L3Cache #1 (9216KB)
-          L2Cache #1 (256KB)
-            L1Cache #1 (16KB)
-              Core #1 (phys=0)
-                PU #1 (phys=1)
-    NUMANode #1 (phys=1 local=6045696KB total=6045696KB)
-      Socket #2 (phys=512)
-        L3Cache #2 (9216KB)
-          L2Cache #2 (256KB)
-            L1Cache #2 (16KB)
-              Core #2 (phys=0)
-                PU #2 (phys=2)
-      Socket #3 (phys=512)
-        L3Cache #3 (9216KB)
-          L2Cache #3 (256KB)
-            L1Cache #3 (16KB)
-              Core #3 (phys=0)
-                PU #3 (phys=3)
-    NUMANode #2 (phys=2 local=6045696KB total=6045696KB)
-      Socket #4 (phys=1024)
-        L3Cache #4 (9216KB)
-          L2Cache #4 (256KB)
-            L1Cache #4 (16KB)
-              Core #4 (phys=0)
-                PU #4 (phys=4)
-      Socket #5 (phys=1024)
-        L3Cache #5 (9216KB)
-          L2Cache #5 (256KB)
-            L1Cache #5 (16KB)
-              Core #5 (phys=0)
-                PU #5 (phys=5)
-    NUMANode #3 (phys=3 local=6045696KB total=6045696KB)
-      Socket #6 (phys=1536)
-        L3Cache #6 (9216KB)
-          L2Cache #6 (256KB)
-            L1Cache #6 (16KB)
-              Core #6 (phys=0)
-                PU #6 (phys=6)
-      Socket #7 (phys=1536)
-        L3Cache #7 (9216KB)
-          L2Cache #7 (256KB)
-            L1Cache #7 (16KB)
-              Core #7 (phys=0)
-                PU #7 (phys=7)
-  Group0 #1 (total=24163968KB)
-    NUMANode #4 (phys=4 local=6045696KB total=6045696KB)
-      Socket #8 (phys=2048)
-        L3Cache #8 (9216KB)
-          L2Cache #8 (256KB)
-            L1Cache #8 (16KB)
-              Core #8 (phys=0)
-                PU #8 (phys=8)
-      Socket #9 (phys=2048)
-        L3Cache #9 (9216KB)
-          L2Cache #9 (256KB)
-            L1Cache #9 (16KB)
-              Core #9 (phys=0)
-                PU #9 (phys=9)
-    NUMANode #5 (phys=5 local=6045632KB total=6045632KB)
-      Socket #10 (phys=2560)
-        L3Cache #10 (9216KB)
-          L2Cache #10 (256KB)
-            L1Cache #10 (16KB)
-              Core #10 (phys=0)
-                PU #10 (phys=10)
-      Socket #11 (phys=2560)
-        L3Cache #11 (9216KB)
-          L2Cache #11 (256KB)
-            L1Cache #11 (16KB)
-              Core #11 (phys=0)
-                PU #11 (phys=11)
-    NUMANode #6 (phys=6 local=6045696KB total=6045696KB)
-      Socket #12 (phys=3072)
-        L3Cache #12 (9216KB)
-          L2Cache #12 (256KB)
-            L1Cache #12 (16KB)
-              Core #12 (phys=0)
-                PU #12 (phys=12)
-      Socket #13 (phys=3072)
-        L3Cache #13 (9216KB)
-          L2Cache #13 (256KB)
-            L1Cache #13 (16KB)
-              Core #13 (phys=0)
-                PU #13 (phys=13)
-    NUMANode #7 (phys=7 local=6026944KB total=6026944KB)
-      Socket #14 (phys=3584)
-        L3Cache #14 (9216KB)
-          L2Cache #14 (256KB)
-            L1Cache #14 (16KB)
-              Core #14 (phys=0)
-                PU #14 (phys=14)
-      Socket #15 (phys=3584)
-        L3Cache #15 (9216KB)
-          L2Cache #15 (256KB)
-            L1Cache #15 (16KB)
-              Core #15 (phys=0)
-                PU #15 (phys=15)
-depth 0:	1 Machine (type #1)
- depth 1:	2 Groups (type #7)
-  depth 2:	8 NUMANodes (type #2)
-   depth 3:	16 Sockets (type #3)
-    depth 4:	16 Caches (type #4)
-     depth 5:	16 Caches (type #4)
-      depth 6:	16 Caches (type #4)
-       depth 7:	16 Cores (type #5)
-        depth 8:	16 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,5 @@
+Machine (phys=0 local=8299024KB total=8299024KB Backend=Linux)
+  PU #0 (phys=0)
+depth 0:	1 Machine (type #1)
+ depth 1:	1 PU (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,14 @@
+BZh91AY&SY„æ%I µ¥ÿô Hgÿò?_ªÿïÿð    Pާ½k=Þõz˜J!Fš4y&G“PÈê4  20€4©íSÒi¦ji         h	I¢š4=!ê4h¦€   4´¤)êz!µ4Ðѵ4  d Ð€ I4И54z™G¦‘µ  h Ð
+2mKÈ_1W&,&C†"Ä‚"ME¥µ
+¨H<ÇäZbj`LM"WaÛND=ê®;·”S^Àä„qâ_eµÑTk½Ú‹2ýÔ+ª^‚¹¨,ß‚6Ýw»•
+6¦§I#©ZV¬	‰%¦Ñ(šH7€(«š¥(“sÁ°I  O’‰¥S²
+,x4ãÎéÂó´Æ´Äâzk"-Ì@œaí¢Br%d®CÒc„jÚÙòRÔˍ­
+€Ó6h†lfªªf¡¾C=Faß¡²Uú#‹v ÆZ"ß”ÊUl‹é{õêœpá<2¸©	(	°@  Jħj$ŃkFÒ·ƈt|=ç7ÍôÚäʆ}Øš‘j\0𳄒9bÐÛj	,”§°l›7¦—0^LžŒeàÌ‚øu©/{Õ«¸ˆB&•¸‹qE~}ýH–teÔ|GxL„0†q.¬@Æ‘Ô2ÀÉœÜÐÊ:Øm³	mÔ“MHz™,®b£9a¤ÈNéµ`ÈŠµDdªè3pç#Bn%!‹Î¿¶ô ÕÊ’Xqr€!ó!I=û»†E2)ˆGŒFÀ¼K°1fEpÂFÚ‰¸{ê&`!é…ùâñ`1 at dufפ!bÆÕË9ŒÔa‡A.
+Ú¦×fyZðåQÑDÐÙd•u­Bd/+"
+)eK!»•s€ÂöWµªG?»úàï(×ÈjvÍ| TÔ¡º[ ,ë-ù_£¤iÓ ½f"ÃÅš
+Vפu¯­ù0œ`XÖ<ÚR¯«±3Óó`¥ó
+–sÅbY$‚¥—ª9êF¶œ²8‚9ށruâ³–’ûƒY°ÅFG‰ÿ¤ÛA¸Ì‰m¨g
+±DBùl’І¡šàµ=ÉKÝˇ8õÅÏAB“v ҶVŽŒÂq4s𭄐L-8K˜(> HÄ‚MOmôB¢¢’“¤˜Õ’85–}
+쎕;#G[}3ße‘0ï‰Ú Mœq¼·‘ l*ÅÆêÃrâÃ!IïzWg–½;„§
+‡rR؝I5¹RI”ûåƒ2ÅåíHFb‰‡+ÓôjzrÆ&a½ª¬µ´m”Ä«¢ ¡‡Ä¦R-)éˆ0²29Íòiƒ*f®÷£ó¤˜*S\£–¥½›¬lÆÄžC89bƒqF‡-vx‹H·È?K³½UD––i!$žGœ•‰žª*F4|Ïy	#óßyŠ'µDá1Cë’0ÈîŽ *¡1”Ü–Ó}ҏ+ã’::Qµä¥)Izغ‹³\8sš«Ã.Ò0/âîH§
+œÄ© 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,7 +0,0 @@
-‹ ¡Õ9K í×aOÜ6ÀqÞ6ŸÂÒÞ´£±ã$R_ mµneªtšª©òå|‘ËÝ’íõÓÏI¸ƒ®k¥BµõïŸàˆŸØ±ó8Î!m9?³·î²„¾¤qÜ}Ê4ûc©uÿ¹*[RF¡ÿIî^Ê8N¶D|§£Z•EÓÚZˆ­Ñéì´,ªOœçêæ>t¿EùŸ×³üÎÁ—ç_ÅJ’ÿû(ëùÏç‹¢šÌ¾ú5º'C¾?–©¢èFþµýó~õ‘|¤|çù÷9ðàÁ®Øë–AàÄt6veWõìuböûº[¶-fUWŸöUµ»(šUMØ×øTØRT‹éÈÕ¾öç½(ŒCš,h–M릢]Î]wþqÑÚê²òºï]ñª..lë\}ܼʪòæ…öþˆ¤_FI”ù2/˜Ô«ò¥xóÓ‡?ý~CY-6´ÅÔÕ9%Tz'ƒ¹=u¢)>8ñf´l]ÓÅŒÌT0?[6;Žǵk1*ÚÆG´¦öýP½#š¹ÍøÁ׫8ög§³Ã¯Žº±+©e‚sWW®‹Ê–ÅiåÆÂæy?¾Ô$&‘âá<2J†Ybu¢·/ì“Uœä©ŸªR‚n=Þê'¢Ì?Ma6ô¤ú)çÎ7é:‘Òw2Ž£ôQ0/m;™Õþ^¶uQ^­€#W_ø~ŸéXvADý
-hÄØµ.oݸ;5
-^Jñ"·ùYŸÎDÿ²-ԏïìrÛÿ=þ1rÝOÿå%®N¨Ûàe´yü­ï¢¬ïÿS7ý&ûìÿ¾µÿ+öÿû(‡nz<km¹+VŨ,ó[¡8ß|ìyíÜUHˆ4Ñi¦ºØþb2ñ7ä:&‰3ÙǺ§x¼Ö,JO¬ébGïìüV\ˆ°‹íåmq±~9­¥Ž¢¤‹½¨ìfT*“¦Ê\·{h«YõhW~Ç6ëíÖ£©É’µv“¢tCDûÝS‡›í.£~‹ÎLÔÏï¤òo¥¼µ£rm°rça9ËÏoLî2ÖÍ}ãfË,‹3£/c7{-ö´¨Ûåf]¢úqþ^­Ùü|3>ÜO?åWþu¶–%e̐‡C;Ÿß¦Lâ!·G¥mFL˜$éûÍå¥-¦W“—©1I<Ì浪‡èîZKÙǺqwÖ#2ÝÏï×çGoOªæÆ
-æ°?[T¹»5ùpcîÇÓùÍv³é´h_þ×J¤Žõ÷!æßeo÷ŽVíüëyÈíë©-}
-¯Ód"?¿aM¬b'ÍõóûÔÐç*vp¶¨ÎWíR•©~,ßúÿTYßÿ}Ú»¸Æ'÷ÿE«äÆþi±ÿßG龸û'?Ld¦SáwþHg"QÒø}>ÚïÛþ_1ÿµ9ò{Cw†ß¥ö/	“ÿ õ_üÃj¯?£}QµµˆSÏdZúª¨«ö
-eÿŠ8É|0Óáå±ÿIµ?›ÖqJsu,S?F%¿                                                                                               ÀD·ï[¡¤N¥–Y0j‹©RÅ&ÔqgÁ¼žå®i\#Œ
-ÓDõÍÛzQUEu*¢Õñ¨œåçnìûÛ¢P(”ÿ}ù#p¢„  
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/1alpha.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +0,0 @@
-Machine (phys=0 local=8299024KB total=8299024KB)
-  PU #0 (phys=0)
-depth 0:	1 Machine (type #1)
- depth 1:	1 PU (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,733 @@
+Machine (phys=0 total=516912176KB Backend=Linux)
+  Group1 #0 (total=129224048KB)
+    Group0 #0 (total=32296336KB)
+      NUMANode #0 (phys=0 local=8064400KB total=8064400KB)
+        Socket #0 (phys=0)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+          Core #1 (phys=1)
+            PU #1 (phys=1)
+        Socket #1 (phys=3)
+          Core #2 (phys=0)
+            PU #2 (phys=2)
+          Core #3 (phys=1)
+            PU #3 (phys=3)
+      NUMANode #1 (phys=1 local=8077312KB total=8077312KB)
+        Socket #2 (phys=512)
+          Core #4 (phys=0)
+            PU #4 (phys=4)
+          Core #5 (phys=1)
+            PU #5 (phys=5)
+        Socket #3 (phys=515)
+          Core #6 (phys=0)
+            PU #6 (phys=6)
+          Core #7 (phys=1)
+            PU #7 (phys=7)
+      NUMANode #2 (phys=2 local=8077312KB total=8077312KB)
+        Socket #4 (phys=1024)
+          Core #8 (phys=0)
+            PU #8 (phys=8)
+          Core #9 (phys=1)
+            PU #9 (phys=9)
+        Socket #5 (phys=1027)
+          Core #10 (phys=0)
+            PU #10 (phys=10)
+          Core #11 (phys=1)
+            PU #11 (phys=11)
+      NUMANode #3 (phys=3 local=8077312KB total=8077312KB)
+        Socket #6 (phys=1536)
+          Core #12 (phys=0)
+            PU #12 (phys=12)
+          Core #13 (phys=1)
+            PU #13 (phys=13)
+        Socket #7 (phys=1539)
+          Core #14 (phys=0)
+            PU #14 (phys=14)
+          Core #15 (phys=1)
+            PU #15 (phys=15)
+    Group0 #1 (total=32309232KB)
+      NUMANode #4 (phys=4 local=8077312KB total=8077312KB)
+        Socket #8 (phys=2048)
+          Core #16 (phys=0)
+            PU #16 (phys=16)
+          Core #17 (phys=1)
+            PU #17 (phys=17)
+        Socket #9 (phys=2051)
+          Core #18 (phys=0)
+            PU #18 (phys=18)
+          Core #19 (phys=1)
+            PU #19 (phys=19)
+      NUMANode #5 (phys=5 local=8077312KB total=8077312KB)
+        Socket #10 (phys=2560)
+          Core #20 (phys=0)
+            PU #20 (phys=20)
+          Core #21 (phys=1)
+            PU #21 (phys=21)
+        Socket #11 (phys=2563)
+          Core #22 (phys=0)
+            PU #22 (phys=22)
+          Core #23 (phys=1)
+            PU #23 (phys=23)
+      NUMANode #6 (phys=6 local=8077296KB total=8077296KB)
+        Socket #12 (phys=3072)
+          Core #24 (phys=0)
+            PU #24 (phys=24)
+          Core #25 (phys=1)
+            PU #25 (phys=25)
+        Socket #13 (phys=3075)
+          Core #26 (phys=0)
+            PU #26 (phys=26)
+          Core #27 (phys=1)
+            PU #27 (phys=27)
+      NUMANode #7 (phys=7 local=8077312KB total=8077312KB)
+        Socket #14 (phys=3584)
+          Core #28 (phys=0)
+            PU #28 (phys=28)
+          Core #29 (phys=1)
+            PU #29 (phys=29)
+        Socket #15 (phys=3587)
+          Core #30 (phys=0)
+            PU #30 (phys=30)
+          Core #31 (phys=1)
+            PU #31 (phys=31)
+    Group0 #2 (total=32309248KB)
+      NUMANode #8 (phys=8 local=8077312KB total=8077312KB)
+        Socket #16 (phys=4096)
+          Core #32 (phys=0)
+            PU #32 (phys=32)
+          Core #33 (phys=1)
+            PU #33 (phys=33)
+        Socket #17 (phys=4099)
+          Core #34 (phys=0)
+            PU #34 (phys=34)
+          Core #35 (phys=1)
+            PU #35 (phys=35)
+      NUMANode #9 (phys=9 local=8077312KB total=8077312KB)
+        Socket #18 (phys=4608)
+          Core #36 (phys=0)
+            PU #36 (phys=36)
+          Core #37 (phys=1)
+            PU #37 (phys=37)
+        Socket #19 (phys=4611)
+          Core #38 (phys=0)
+            PU #38 (phys=38)
+          Core #39 (phys=1)
+            PU #39 (phys=39)
+      NUMANode #10 (phys=10 local=8077312KB total=8077312KB)
+        Socket #20 (phys=5120)
+          Core #40 (phys=0)
+            PU #40 (phys=40)
+          Core #41 (phys=1)
+            PU #41 (phys=41)
+        Socket #21 (phys=5123)
+          Core #42 (phys=0)
+            PU #42 (phys=42)
+          Core #43 (phys=1)
+            PU #43 (phys=43)
+      NUMANode #11 (phys=11 local=8077312KB total=8077312KB)
+        Socket #22 (phys=5632)
+          Core #44 (phys=0)
+            PU #44 (phys=44)
+          Core #45 (phys=1)
+            PU #45 (phys=45)
+        Socket #23 (phys=5635)
+          Core #46 (phys=0)
+            PU #46 (phys=46)
+          Core #47 (phys=1)
+            PU #47 (phys=47)
+    Group0 #3 (total=32309232KB)
+      NUMANode #12 (phys=12 local=8077312KB total=8077312KB)
+        Socket #24 (phys=6144)
+          Core #48 (phys=0)
+            PU #48 (phys=48)
+          Core #49 (phys=1)
+            PU #49 (phys=49)
+        Socket #25 (phys=6147)
+          Core #50 (phys=0)
+            PU #50 (phys=50)
+          Core #51 (phys=1)
+            PU #51 (phys=51)
+      NUMANode #13 (phys=13 local=8077312KB total=8077312KB)
+        Socket #26 (phys=6656)
+          Core #52 (phys=0)
+            PU #52 (phys=52)
+          Core #53 (phys=1)
+            PU #53 (phys=53)
+        Socket #27 (phys=6659)
+          Core #54 (phys=0)
+            PU #54 (phys=54)
+          Core #55 (phys=1)
+            PU #55 (phys=55)
+      NUMANode #14 (phys=14 local=8077296KB total=8077296KB)
+        Socket #28 (phys=7168)
+          Core #56 (phys=0)
+            PU #56 (phys=56)
+          Core #57 (phys=1)
+            PU #57 (phys=57)
+        Socket #29 (phys=7171)
+          Core #58 (phys=0)
+            PU #58 (phys=58)
+          Core #59 (phys=1)
+            PU #59 (phys=59)
+      NUMANode #15 (phys=15 local=8077312KB total=8077312KB)
+        Socket #30 (phys=7680)
+          Core #60 (phys=0)
+            PU #60 (phys=60)
+          Core #61 (phys=1)
+            PU #61 (phys=61)
+        Socket #31 (phys=7683)
+          Core #62 (phys=0)
+            PU #62 (phys=62)
+          Core #63 (phys=1)
+            PU #63 (phys=63)
+  Group1 #1 (total=129236960KB)
+    Group0 #4 (total=32309248KB)
+      NUMANode #16 (phys=16 local=8077312KB total=8077312KB)
+        Socket #32 (phys=8192)
+          Core #64 (phys=0)
+            PU #64 (phys=64)
+          Core #65 (phys=1)
+            PU #65 (phys=65)
+        Socket #33 (phys=8195)
+          Core #66 (phys=0)
+            PU #66 (phys=66)
+          Core #67 (phys=1)
+            PU #67 (phys=67)
+      NUMANode #17 (phys=17 local=8077312KB total=8077312KB)
+        Socket #34 (phys=8704)
+          Core #68 (phys=0)
+            PU #68 (phys=68)
+          Core #69 (phys=1)
+            PU #69 (phys=69)
+        Socket #35 (phys=8707)
+          Core #70 (phys=0)
+            PU #70 (phys=70)
+          Core #71 (phys=1)
+            PU #71 (phys=71)
+      NUMANode #18 (phys=18 local=8077312KB total=8077312KB)
+        Socket #36 (phys=9216)
+          Core #72 (phys=0)
+            PU #72 (phys=72)
+          Core #73 (phys=1)
+            PU #73 (phys=73)
+        Socket #37 (phys=9219)
+          Core #74 (phys=0)
+            PU #74 (phys=74)
+          Core #75 (phys=1)
+            PU #75 (phys=75)
+      NUMANode #19 (phys=19 local=8077312KB total=8077312KB)
+        Socket #38 (phys=9728)
+          Core #76 (phys=0)
+            PU #76 (phys=76)
+          Core #77 (phys=1)
+            PU #77 (phys=77)
+        Socket #39 (phys=9731)
+          Core #78 (phys=0)
+            PU #78 (phys=78)
+          Core #79 (phys=1)
+            PU #79 (phys=79)
+    Group0 #5 (total=32309232KB)
+      NUMANode #20 (phys=20 local=8077312KB total=8077312KB)
+        Socket #40 (phys=10240)
+          Core #80 (phys=0)
+            PU #80 (phys=80)
+          Core #81 (phys=1)
+            PU #81 (phys=81)
+        Socket #41 (phys=10243)
+          Core #82 (phys=0)
+            PU #82 (phys=82)
+          Core #83 (phys=1)
+            PU #83 (phys=83)
+      NUMANode #21 (phys=21 local=8077312KB total=8077312KB)
+        Socket #42 (phys=10752)
+          Core #84 (phys=0)
+            PU #84 (phys=84)
+          Core #85 (phys=1)
+            PU #85 (phys=85)
+        Socket #43 (phys=10755)
+          Core #86 (phys=0)
+            PU #86 (phys=86)
+          Core #87 (phys=1)
+            PU #87 (phys=87)
+      NUMANode #22 (phys=22 local=8077296KB total=8077296KB)
+        Socket #44 (phys=11264)
+          Core #88 (phys=0)
+            PU #88 (phys=88)
+          Core #89 (phys=1)
+            PU #89 (phys=89)
+        Socket #45 (phys=11267)
+          Core #90 (phys=0)
+            PU #90 (phys=90)
+          Core #91 (phys=1)
+            PU #91 (phys=91)
+      NUMANode #23 (phys=23 local=8077312KB total=8077312KB)
+        Socket #46 (phys=11776)
+          Core #92 (phys=0)
+            PU #92 (phys=92)
+          Core #93 (phys=1)
+            PU #93 (phys=93)
+        Socket #47 (phys=11779)
+          Core #94 (phys=0)
+            PU #94 (phys=94)
+          Core #95 (phys=1)
+            PU #95 (phys=95)
+    Group0 #6 (total=32309248KB)
+      NUMANode #24 (phys=24 local=8077312KB total=8077312KB)
+        Socket #48 (phys=12288)
+          Core #96 (phys=0)
+            PU #96 (phys=96)
+          Core #97 (phys=1)
+            PU #97 (phys=97)
+        Socket #49 (phys=12291)
+          Core #98 (phys=0)
+            PU #98 (phys=98)
+          Core #99 (phys=1)
+            PU #99 (phys=99)
+      NUMANode #25 (phys=25 local=8077312KB total=8077312KB)
+        Socket #50 (phys=12800)
+          Core #100 (phys=0)
+            PU #100 (phys=100)
+          Core #101 (phys=1)
+            PU #101 (phys=101)
+        Socket #51 (phys=12803)
+          Core #102 (phys=0)
+            PU #102 (phys=102)
+          Core #103 (phys=1)
+            PU #103 (phys=103)
+      NUMANode #26 (phys=26 local=8077312KB total=8077312KB)
+        Socket #52 (phys=13312)
+          Core #104 (phys=0)
+            PU #104 (phys=104)
+          Core #105 (phys=1)
+            PU #105 (phys=105)
+        Socket #53 (phys=13315)
+          Core #106 (phys=0)
+            PU #106 (phys=106)
+          Core #107 (phys=1)
+            PU #107 (phys=107)
+      NUMANode #27 (phys=27 local=8077312KB total=8077312KB)
+        Socket #54 (phys=13824)
+          Core #108 (phys=0)
+            PU #108 (phys=108)
+          Core #109 (phys=1)
+            PU #109 (phys=109)
+        Socket #55 (phys=13827)
+          Core #110 (phys=0)
+            PU #110 (phys=110)
+          Core #111 (phys=1)
+            PU #111 (phys=111)
+    Group0 #7 (total=32309232KB)
+      NUMANode #28 (phys=28 local=8077312KB total=8077312KB)
+        Socket #56 (phys=14336)
+          Core #112 (phys=0)
+            PU #112 (phys=112)
+          Core #113 (phys=1)
+            PU #113 (phys=113)
+        Socket #57 (phys=14339)
+          Core #114 (phys=0)
+            PU #114 (phys=114)
+          Core #115 (phys=1)
+            PU #115 (phys=115)
+      NUMANode #29 (phys=29 local=8077296KB total=8077296KB)
+        Socket #58 (phys=14848)
+          Core #116 (phys=0)
+            PU #116 (phys=116)
+          Core #117 (phys=1)
+            PU #117 (phys=117)
+        Socket #59 (phys=14851)
+          Core #118 (phys=0)
+            PU #118 (phys=118)
+          Core #119 (phys=1)
+            PU #119 (phys=119)
+      NUMANode #30 (phys=30 local=8077312KB total=8077312KB)
+        Socket #60 (phys=15360)
+          Core #120 (phys=0)
+            PU #120 (phys=120)
+          Core #121 (phys=1)
+            PU #121 (phys=121)
+        Socket #61 (phys=15363)
+          Core #122 (phys=0)
+            PU #122 (phys=122)
+          Core #123 (phys=1)
+            PU #123 (phys=123)
+      NUMANode #31 (phys=31 local=8077312KB total=8077312KB)
+        Socket #62 (phys=15872)
+          Core #124 (phys=0)
+            PU #124 (phys=124)
+          Core #125 (phys=1)
+            PU #125 (phys=125)
+        Socket #63 (phys=15875)
+          Core #126 (phys=0)
+            PU #126 (phys=126)
+          Core #127 (phys=1)
+            PU #127 (phys=127)
+  Group1 #2 (total=129236960KB)
+    Group0 #8 (total=32309248KB)
+      NUMANode #32 (phys=32 local=8077312KB total=8077312KB)
+        Socket #64 (phys=16384)
+          Core #128 (phys=0)
+            PU #128 (phys=128)
+          Core #129 (phys=1)
+            PU #129 (phys=129)
+        Socket #65 (phys=16387)
+          Core #130 (phys=0)
+            PU #130 (phys=130)
+          Core #131 (phys=1)
+            PU #131 (phys=131)
+      NUMANode #33 (phys=33 local=8077312KB total=8077312KB)
+        Socket #66 (phys=16896)
+          Core #132 (phys=0)
+            PU #132 (phys=132)
+          Core #133 (phys=1)
+            PU #133 (phys=133)
+        Socket #67 (phys=16899)
+          Core #134 (phys=0)
+            PU #134 (phys=134)
+          Core #135 (phys=1)
+            PU #135 (phys=135)
+      NUMANode #34 (phys=34 local=8077312KB total=8077312KB)
+        Socket #68 (phys=17408)
+          Core #136 (phys=0)
+            PU #136 (phys=136)
+          Core #137 (phys=1)
+            PU #137 (phys=137)
+        Socket #69 (phys=17411)
+          Core #138 (phys=0)
+            PU #138 (phys=138)
+          Core #139 (phys=1)
+            PU #139 (phys=139)
+      NUMANode #35 (phys=35 local=8077312KB total=8077312KB)
+        Socket #70 (phys=17920)
+          Core #140 (phys=0)
+            PU #140 (phys=140)
+          Core #141 (phys=1)
+            PU #141 (phys=141)
+        Socket #71 (phys=17923)
+          Core #142 (phys=0)
+            PU #142 (phys=142)
+          Core #143 (phys=1)
+            PU #143 (phys=143)
+    Group0 #9 (total=32309232KB)
+      NUMANode #36 (phys=36 local=8077312KB total=8077312KB)
+        Socket #72 (phys=18432)
+          Core #144 (phys=0)
+            PU #144 (phys=144)
+          Core #145 (phys=1)
+            PU #145 (phys=145)
+        Socket #73 (phys=18435)
+          Core #146 (phys=0)
+            PU #146 (phys=146)
+          Core #147 (phys=1)
+            PU #147 (phys=147)
+      NUMANode #37 (phys=37 local=8077296KB total=8077296KB)
+        Socket #74 (phys=18944)
+          Core #148 (phys=0)
+            PU #148 (phys=148)
+          Core #149 (phys=1)
+            PU #149 (phys=149)
+        Socket #75 (phys=18947)
+          Core #150 (phys=0)
+            PU #150 (phys=150)
+          Core #151 (phys=1)
+            PU #151 (phys=151)
+      NUMANode #38 (phys=38 local=8077312KB total=8077312KB)
+        Socket #76 (phys=19456)
+          Core #152 (phys=0)
+            PU #152 (phys=152)
+          Core #153 (phys=1)
+            PU #153 (phys=153)
+        Socket #77 (phys=19459)
+          Core #154 (phys=0)
+            PU #154 (phys=154)
+          Core #155 (phys=1)
+            PU #155 (phys=155)
+      NUMANode #39 (phys=39 local=8077312KB total=8077312KB)
+        Socket #78 (phys=19968)
+          Core #156 (phys=0)
+            PU #156 (phys=156)
+          Core #157 (phys=1)
+            PU #157 (phys=157)
+        Socket #79 (phys=19971)
+          Core #158 (phys=0)
+            PU #158 (phys=158)
+          Core #159 (phys=1)
+            PU #159 (phys=159)
+    Group0 #10 (total=32309248KB)
+      NUMANode #40 (phys=40 local=8077312KB total=8077312KB)
+        Socket #80 (phys=20480)
+          Core #160 (phys=0)
+            PU #160 (phys=160)
+          Core #161 (phys=1)
+            PU #161 (phys=161)
+        Socket #81 (phys=20483)
+          Core #162 (phys=0)
+            PU #162 (phys=162)
+          Core #163 (phys=1)
+            PU #163 (phys=163)
+      NUMANode #41 (phys=41 local=8077312KB total=8077312KB)
+        Socket #82 (phys=20992)
+          Core #164 (phys=0)
+            PU #164 (phys=164)
+          Core #165 (phys=1)
+            PU #165 (phys=165)
+        Socket #83 (phys=20995)
+          Core #166 (phys=0)
+            PU #166 (phys=166)
+          Core #167 (phys=1)
+            PU #167 (phys=167)
+      NUMANode #42 (phys=42 local=8077312KB total=8077312KB)
+        Socket #84 (phys=21504)
+          Core #168 (phys=0)
+            PU #168 (phys=168)
+          Core #169 (phys=1)
+            PU #169 (phys=169)
+        Socket #85 (phys=21507)
+          Core #170 (phys=0)
+            PU #170 (phys=170)
+          Core #171 (phys=1)
+            PU #171 (phys=171)
+      NUMANode #43 (phys=43 local=8077312KB total=8077312KB)
+        Socket #86 (phys=22016)
+          Core #172 (phys=0)
+            PU #172 (phys=172)
+          Core #173 (phys=1)
+            PU #173 (phys=173)
+        Socket #87 (phys=22019)
+          Core #174 (phys=0)
+            PU #174 (phys=174)
+          Core #175 (phys=1)
+            PU #175 (phys=175)
+    Group0 #11 (total=32309232KB)
+      NUMANode #44 (phys=44 local=8077312KB total=8077312KB)
+        Socket #88 (phys=22528)
+          Core #176 (phys=0)
+            PU #176 (phys=176)
+          Core #177 (phys=1)
+            PU #177 (phys=177)
+        Socket #89 (phys=22531)
+          Core #178 (phys=0)
+            PU #178 (phys=178)
+          Core #179 (phys=1)
+            PU #179 (phys=179)
+      NUMANode #45 (phys=45 local=8077296KB total=8077296KB)
+        Socket #90 (phys=23040)
+          Core #180 (phys=0)
+            PU #180 (phys=180)
+          Core #181 (phys=1)
+            PU #181 (phys=181)
+        Socket #91 (phys=23043)
+          Core #182 (phys=0)
+            PU #182 (phys=182)
+          Core #183 (phys=1)
+            PU #183 (phys=183)
+      NUMANode #46 (phys=46 local=8077312KB total=8077312KB)
+        Socket #92 (phys=23552)
+          Core #184 (phys=0)
+            PU #184 (phys=184)
+          Core #185 (phys=1)
+            PU #185 (phys=185)
+        Socket #93 (phys=23555)
+          Core #186 (phys=0)
+            PU #186 (phys=186)
+          Core #187 (phys=1)
+            PU #187 (phys=187)
+      NUMANode #47 (phys=47 local=8077312KB total=8077312KB)
+        Socket #94 (phys=24064)
+          Core #188 (phys=0)
+            PU #188 (phys=188)
+          Core #189 (phys=1)
+            PU #189 (phys=189)
+        Socket #95 (phys=24067)
+          Core #190 (phys=0)
+            PU #190 (phys=190)
+          Core #191 (phys=1)
+            PU #191 (phys=191)
+  Group1 #3 (total=129214208KB)
+    Group0 #12 (total=32309248KB)
+      NUMANode #48 (phys=48 local=8077312KB total=8077312KB)
+        Socket #96 (phys=24576)
+          Core #192 (phys=0)
+            PU #192 (phys=192)
+          Core #193 (phys=1)
+            PU #193 (phys=193)
+        Socket #97 (phys=24579)
+          Core #194 (phys=0)
+            PU #194 (phys=194)
+          Core #195 (phys=1)
+            PU #195 (phys=195)
+      NUMANode #49 (phys=49 local=8077312KB total=8077312KB)
+        Socket #98 (phys=25088)
+          Core #196 (phys=0)
+            PU #196 (phys=196)
+          Core #197 (phys=1)
+            PU #197 (phys=197)
+        Socket #99 (phys=25091)
+          Core #198 (phys=0)
+            PU #198 (phys=198)
+          Core #199 (phys=1)
+            PU #199 (phys=199)
+      NUMANode #50 (phys=50 local=8077312KB total=8077312KB)
+        Socket #100 (phys=25600)
+          Core #200 (phys=0)
+            PU #200 (phys=200)
+          Core #201 (phys=1)
+            PU #201 (phys=201)
+        Socket #101 (phys=25603)
+          Core #202 (phys=0)
+            PU #202 (phys=202)
+          Core #203 (phys=1)
+            PU #203 (phys=203)
+      NUMANode #51 (phys=51 local=8077312KB total=8077312KB)
+        Socket #102 (phys=26112)
+          Core #204 (phys=0)
+            PU #204 (phys=204)
+          Core #205 (phys=1)
+            PU #205 (phys=205)
+        Socket #103 (phys=26115)
+          Core #206 (phys=0)
+            PU #206 (phys=206)
+          Core #207 (phys=1)
+            PU #207 (phys=207)
+    Group0 #13 (total=32309232KB)
+      NUMANode #52 (phys=52 local=8077312KB total=8077312KB)
+        Socket #104 (phys=26624)
+          Core #208 (phys=0)
+            PU #208 (phys=208)
+          Core #209 (phys=1)
+            PU #209 (phys=209)
+        Socket #105 (phys=26627)
+          Core #210 (phys=0)
+            PU #210 (phys=210)
+          Core #211 (phys=1)
+            PU #211 (phys=211)
+      NUMANode #53 (phys=53 local=8077296KB total=8077296KB)
+        Socket #106 (phys=27136)
+          Core #212 (phys=0)
+            PU #212 (phys=212)
+          Core #213 (phys=1)
+            PU #213 (phys=213)
+        Socket #107 (phys=27139)
+          Core #214 (phys=0)
+            PU #214 (phys=214)
+          Core #215 (phys=1)
+            PU #215 (phys=215)
+      NUMANode #54 (phys=54 local=8077312KB total=8077312KB)
+        Socket #108 (phys=27648)
+          Core #216 (phys=0)
+            PU #216 (phys=216)
+          Core #217 (phys=1)
+            PU #217 (phys=217)
+        Socket #109 (phys=27651)
+          Core #218 (phys=0)
+            PU #218 (phys=218)
+          Core #219 (phys=1)
+            PU #219 (phys=219)
+      NUMANode #55 (phys=55 local=8077312KB total=8077312KB)
+        Socket #110 (phys=28160)
+          Core #220 (phys=0)
+            PU #220 (phys=220)
+          Core #221 (phys=1)
+            PU #221 (phys=221)
+        Socket #111 (phys=28163)
+          Core #222 (phys=0)
+            PU #222 (phys=222)
+          Core #223 (phys=1)
+            PU #223 (phys=223)
+    Group0 #14 (total=32309248KB)
+      NUMANode #56 (phys=56 local=8077312KB total=8077312KB)
+        Socket #112 (phys=28672)
+          Core #224 (phys=0)
+            PU #224 (phys=224)
+          Core #225 (phys=1)
+            PU #225 (phys=225)
+        Socket #113 (phys=28675)
+          Core #226 (phys=0)
+            PU #226 (phys=226)
+          Core #227 (phys=1)
+            PU #227 (phys=227)
+      NUMANode #57 (phys=57 local=8077312KB total=8077312KB)
+        Socket #114 (phys=29184)
+          Core #228 (phys=0)
+            PU #228 (phys=228)
+          Core #229 (phys=1)
+            PU #229 (phys=229)
+        Socket #115 (phys=29187)
+          Core #230 (phys=0)
+            PU #230 (phys=230)
+          Core #231 (phys=1)
+            PU #231 (phys=231)
+      NUMANode #58 (phys=58 local=8077312KB total=8077312KB)
+        Socket #116 (phys=29696)
+          Core #232 (phys=0)
+            PU #232 (phys=232)
+          Core #233 (phys=1)
+            PU #233 (phys=233)
+        Socket #117 (phys=29699)
+          Core #234 (phys=0)
+            PU #234 (phys=234)
+          Core #235 (phys=1)
+            PU #235 (phys=235)
+      NUMANode #59 (phys=59 local=8077312KB total=8077312KB)
+        Socket #118 (phys=30208)
+          Core #236 (phys=0)
+            PU #236 (phys=236)
+          Core #237 (phys=1)
+            PU #237 (phys=237)
+        Socket #119 (phys=30211)
+          Core #238 (phys=0)
+            PU #238 (phys=238)
+          Core #239 (phys=1)
+            PU #239 (phys=239)
+    Group0 #15 (total=32286480KB)
+      NUMANode #60 (phys=60 local=8077312KB total=8077312KB)
+        Socket #120 (phys=30720)
+          Core #240 (phys=0)
+            PU #240 (phys=240)
+          Core #241 (phys=1)
+            PU #241 (phys=241)
+        Socket #121 (phys=30723)
+          Core #242 (phys=0)
+            PU #242 (phys=242)
+          Core #243 (phys=1)
+            PU #243 (phys=243)
+      NUMANode #61 (phys=61 local=8077296KB total=8077296KB)
+        Socket #122 (phys=31232)
+          Core #244 (phys=0)
+            PU #244 (phys=244)
+          Core #245 (phys=1)
+            PU #245 (phys=245)
+        Socket #123 (phys=31235)
+          Core #246 (phys=0)
+            PU #246 (phys=246)
+          Core #247 (phys=1)
+            PU #247 (phys=247)
+      NUMANode #62 (phys=62 local=8077312KB total=8077312KB)
+        Socket #124 (phys=31744)
+          Core #248 (phys=0)
+            PU #248 (phys=248)
+          Core #249 (phys=1)
+            PU #249 (phys=249)
+        Socket #125 (phys=31747)
+          Core #250 (phys=0)
+            PU #250 (phys=250)
+          Core #251 (phys=1)
+            PU #251 (phys=251)
+      NUMANode #63 (phys=63 local=8054560KB total=8054560KB)
+        Socket #126 (phys=32256)
+          Core #252 (phys=0)
+            PU #252 (phys=252)
+          Core #253 (phys=1)
+            PU #253 (phys=253)
+        Socket #127 (phys=32259)
+          Core #254 (phys=0)
+            PU #254 (phys=254)
+          Core #255 (phys=1)
+            PU #255 (phys=255)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Groups (type #7)
+  depth 2:	16 Groups (type #7)
+   depth 3:	64 NUMANodes (type #2)
+    depth 4:	128 Sockets (type #3)
+     depth 5:	256 Cores (type #5)
+      depth 6:	256 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,112 @@
+BZh91AY&SY@оQöçÿüß\?ÿò=ï_€ÿïß°÷À   p 0è`l}'      ]¸§lUKx/秃€ß@zv¶e/>AUÙ’î  @ºe­(I áåîݏ¢‡ßsé0À¢d±™AÕh {Ü€õ A³2 ó'½‚Ö
+¦IWÀ   ÛÞùw¡L¶€§yŒ#ÕRY  wÀ ^Ø^õŒ {
+£AïPÀz£AëÙ˜] PnC Ô<IKXb       *chÚT©	¤Ñš€@        ªŸ†Òš©MGªƒA ¦š†C   †€Ñ Ð Jª÷ú•$*z€          4iµ§¤B„H’ @        ¤M"™P  h(Aµª A   
+¢ˆ	¤52™‘15'ê†Ò=†ƒC@zCÔêzM=GêOã„"Oß ÿ`ùðþä‰ü	ðAPþAGBhM¦„þQG„¤Ø°}è@~Y …	&€{»B%‘$,I"T € ¨¢‚©ò¯Q]J€¢œBA_6¿ùO›Ç9ùß}÷ß}÷ÝT’I$ºO[w.`X…»•Kä’dR)’I‘I2I2)&I&d“w2<K32¤“"„É$Ȥ™$æI7s#Ȥ™$™“$“-¬MlªBŠlŠU,©QHERê(¢Š(£¨¢Å.ES\R©eH¢ŠJ¤(¦‚´!”¢ŠmE[R)T ÄU!Š(TV¢™´µjÝhC¡ZžöûËÕKË|§¼½¨¢”¢Š/ÊÔ^¿yyy{È^QJm3Qyx(`›»B‹eRŠ)uªQÔR©L­QE%ÅåêT¼¼½™‹”¯yyy{kËÕJJ~Ååê&·)¯/).бJ¨¢ŠnbŪˆªS*(¢’…j)WJÔR]«QJ¢TŠ:ŠU,™‹*–mE[*”QK»QE71bŠ]D(¡QJ¥’©E¸†ñHL’LRI’IŠI2I1I&I0Y‘âÌÌRI’IŠI2I1I\o$Ìk$2I1I&I&)$Â]7£&dˆ„’2òBH¡!$•H’îI¢IIr8I%¹		ë™<«Þ=$·¬›»$¢GA²îE„’4 ¢BB"IIrC«mÉ»º÷tÝÜÅ“3$o×a.ýA‚’f,ÜÌ7tÝÙ»·wMûÄ!URWˆä%z9'¤÷¤÷¤ô·$$”nní“vkÛ™™w·-mî¢ÌEQ‰ÌZ'	¦F¶½3~ð계!Jª¢„"!Jª¢„!BUU„!Bª¨„!B•UD!B„ªª!B„%UQB„!	™˜B5ë*ªˆB„!	™UU˜B„!	UTB„!Jª¢„!BUU„!Bª¨„!B•UD!ERI%UQB„!	™˜B½p!*ªˆB„!	UTB„!Jª¢„!BUU„!Bª¨„!BŽ
 Ê¡¸I>I$’O’I$‘)$’IòI$’|’]ß’I$¾4„qD
+€‡ŒLñpqÊ)¦œÌp™˜&†‚$˜`–Hd!†Ye† ™‰¥
+µH¬@Xèt«¨
+KX†9Žf8f:Ìp‰™&†Òê’a‚Y !†B	e–`‚`‰¥ÃAlt8áTQ‘fQSM
+âdÑLE11ÌA0L“Á2LA30A33ÍU44àã”ÐSYc32L±
+ã“AAÉ,„2@K,0É344àã”ÐSYcL“,CB¸äÐDC²@K!„Ë0LÌM
+88åÓNf8DÌ“CHAL0K$2ÈC,²ÃL4ºØ
+?@~Õçœzxy^¢Ìihh)*…­!šŒ³4µT;.ÍUåêf8ÆI.õæn‰¬°æ²;PÎŒC$DÖü*¦Ñ’.Fb#A	’A	fˆšI Ø*éÚŠôÔAD1IבzAX`=‚‚bRঀ`˜‹‚ 	$!Œ.ø 0’XB$Ș‚$ID1EK*Qd(²@(%@¢*‹ ”DU…¢T$Q@(‘$AJ•Q%’RI)b–ˆR(H¡,B¢C¿¿¿[ÝšTФU"©HÝHªER*‘×ñ|Ì‘TФU#Þ¤U%>æ×Â‘TФU"©P['ú3„oM,K\Ó‹ýžÆ¥ŠR­Q¡ƒôò’ëÝÏâþ¤ÿÏäåÍu®£Æ~´êwfq›}âÓ]eµ·e;I$µö›n^vÅÙè¦x¤ûו
+ÏgEK;=îÍ»<]g±Øzõ^‘üî2¼êŒ—ß"ɾËõ«9<¹îcÏvÓºOág;/—’ÌZú½DUïqÙ{UwÝÙšŒ"ªóõž®÷‹Æt]q ›¹Šu{}«³Ø>êøÑ’•UUUR*ªª+¨EQUUQUUVH¨ªªŠªªŠª¨ª­SUUUUEUTUUT*ª¢ªªŠªªŠª¨ªª¨ªªŠªªŠª¨ªª¨ì$é€%[Qj~ª1S2€Èr!È‡ 2€ÈbJˆ* D¨¢Jˆ* D¨¢Jˆ* D¨¢Jˆ* D¨¢‡ 2€Èr!È‡ 2€‰Q%D•"T@‰Q#@d9äC@D¨¢Jˆ* D¨È‡ 2€Èr!È‡ 2€Èr!È‡ 2€ÈbJˆ* D¨¢Jˆ©ŠOö€j£n9ïÙׇ‡<óÏ<ñÍçž@ `t    €À´  ÀØ 4 qp:   ÀØ 4  ÖÀ °  UT Àè  
+ +ZÖµ­kékZÖµ§   5ÅgLò¼gi¾s)M|ÖÖmf½SêouÚ„øIÉ$’YÑmò½]šö̯uxï.½ÙzžUt‘ÐUÉîÅI$’M—Ó\kZÖš¨vKdÙÜï<՝ß*½g/KíU1¯j÷Oc÷•ßVI=çL=­ex‘íõûÜ^*íOGîÌ&n™7ÊçM½Ï]×zÕiïnI嵬ìÕ½î8Ó\7۝ôߎw ô’I' €\EUTUUTUUEUUEUTUUTUUEUUEUTªª©ªªŠªªŠª¨ª•TUUEUUUUUQUUQUUUUUQUw½ï[ÇÞÛïL3       3½
+ì        ;ÐÀ€       7°ÞÀ       ;ÐÀ Ìï@ 3333  Îô     9çžyçžyçÈ'®„Y	Hüð„IdH’CûRþðÆú $Oа"	í ±?8’H“ò z  u£° ²H”ˆP
+” Pèi $ü`CÝŠõüÞéf$ÌHÔ
+y'R_¹RÈTH  ”Éþœœæ^$¹r«Ç¹ãç8x­ƒœØÁ¢]ÚÀKËn†ãwwcV¨[H ÊrIe–är’e—™—mà[ŠRÒ­Ž\KIE¸þh Ó¡ ŠP d½eÀ%Ü—(·KEª¹eÁ"T YhÇ( ("Élh@m±É¥nîß”Ô]*噦qt®e¦qeuUUU*ªªª¢Š(¢Š"
+(¢Š(ìTm:b(ZµÓ hÅ–¨T4\’ÙŠ:àb„›
+“Á0L ÀÓM6NII™›-µI¸pØ®0ut È`w2€#*ä
+/„NÊ" ðë@ÀãM2!€è0T`ÀÁEÀ°,‰0ª„’M`ÔÛ|C!Fl€Æ‹Œ Ãa1DH@¨p.Øp1ÄVl qæ!b‡PÎ0…€(Z†â0 °pÆ ´1Œ!hS³°Z†q„1ÚH!œ… K«°Yv ´ÆìH/3 $2`R@	y˜  
+yQ¸*]ÓhH ˬ·E¹™rd·$ Q¹ca2eÇ		–—&J/$¶ ːhKb«’a
+™#ÉŠ«Š´ºg-1°p
+Öµ¯>o›æú_
+|ËãJþn|¼ùtݪ™Ôó½ë6rÖí÷•O›l+:¨Õítíu­Ó^f7º¥|ooº÷:»Ùy³v»Ë‡è¼zê° o¡w{Ô¹Jê¯xŠ{Þž¬Ì÷å[›ys®s›øÒÖµ­j«{ªs$˜ Àè  
+ ( @ Ì˽îì 08 Ð @ P €:™—w|Ýn¨ x0    y™™fffcÀáÐ 
+ì € X @ »»;»¤ŸI$’Yµ[è½P{ÉO£Õï­©wªë¬;˜ÇÆßkU»4úËÓé\мVðõ;Uïj™Ù}¦g«Û3:¬›O´6wº½¨yxô÷”•ŽÛ`Ì}máM·X6Öu×]uÌÌÿ¨ ûP ^OSwμw¼òôáK×øyºU‹{§.ÎÙ'{}ï^Vg­ù\›j?Þžõ;Uïj™Ù}¦g«Û3:¬›O´ºÁ›t‡—OyIXí¶ ,ÇÖÞÛuƒ`›måUQx؃uw[âÎôÝÖw:^âì=¾åRé¾~ù9z[t¶òM¬*¦GÐåíÚðýÒã£8šV{Üß½'³Þà%Žªôª™Õ}lßWwUU™ÇÖ:|áX¸ŒßxqÇ;ñÎyÆ7õ€x Pp¼ :~rYÞÅq¦8˜©FîñŒfD’ò¥Ã/%Œ™Œ¼ÌÜ„rc“29LÉhÛ“.Öâ^IxÁ´nÆãâY-Ž]æHÂárÒ.îXIJ2ïæLÂɐqÇȹ$¹„™—m“	nH—y28Ü’[3òE.Õ̶òIä»—rî]ÄÆÛ¹!Ö7pZ”ÄYänî¢^FfUä%EQAÆî4·ÙpfKB­³%Ë Ìs#n
+^\b¥£2êÛ‹2–±G%˶–I’
+-áwpbãŒÉ#–¶²c%Á°’L„¨‘!il’£Xȳ¦AŠ[kb0¼ä™‘mÁ¸Ýå²ífL°¶ÖK…¶.7s!˜æ8¢2fKbcq—‘cƒ%ä¼¶Ù&K¸–‚µnFî5&SŽdL»ÂäËÌ‘&8ÚdK‘Á«É‘1ɍ™&$d¤—y$¾@@Ü‘$ä ú„a	ž÷Ž:½	ÀúÇÖ>ÁÔöÙk„1t¬]iµDˆwë½ï×{Èœ‡aÐêI¥šY;ØkcjÚ˜¶ …a°Ôj5 ï×{ß®÷¿n$æ»ÙÕŒYÞ˜¢!ß®÷¿]îâp:‡C© ìmt³M±¥[6¨!ß®÷¿]ïr9‡@5«F;âk¶»h‚ï×{ß®÷a9‡aÜt›¥iuº÷Æh!ß®÷¿]îât;Žã¸ºf÷Ó÷ HŸá íDž`€æ ú€8õ_V1êÎsÆši¦Ú뮺ï°íÀÙ @»¹™wP’I;«®û3:ª¨I$]ÝÝ™™™˜6Ûm€ 
+¶Ûô’I ¶ÞîÝ×uUußfgnîù¶ß  N’Iî’IÀ›s01æÞ]wwwwIRîfLÉ™3;ÛÙ—uÝ]wÙ™ÜÛ| pÀ 
+¶÷ws2î»»»»»¿mûOö|½-ò f M >^WËyg9¸ûîeçÝægÝ™Ÿv÷`}Ø»ª®©BI$îüi|I|_>]×ÕßÕf}]æý;mý @ÐË»½ÕV÷Ísmãm¶hÙÎ2ºURªEUVwuU]ïwÇlæ»] ü^kZÖ¼×Ý$’ø ç»—ÖLN}ª&½…¯´[s¯ÞËîç<s[ówkuÇë¿óäà!xÈÏ–’I%®¥ßÛ3>Û»¿fÛ@ö’I'àÛm·ð  m¶ÛÌÌÌË»»´’ï{Îl+®û3=»»Í¶ø àt’Ot’N <ÛÙºn<ÛË®îîîé*]ÌÉ™3&w³³.뺺ï»wy¶ß  pÀm½ª®÷¼æÀ  ÐsœáÒªªª„‹»»»»³3Ûm¶Ûm¶Ûo3.îîîîÒªªÌ»\»®îû;www|ßm·Á:@~é:FÞûwہvö«wwwtR]ܹ™rægg¯®írî»»ìíÞo¶Ûààm¶øªªª®óœæ€  Ñ£š9ÞìªîÊ¥ªàØSÎUódô½é=î—¬“ŶÞ¶Vf»Í«®êëµÙ‹³6½ºÝç0Üæ“‰{Gœá¹âæ³i­X»»»»¤¥-Tª•Rª.òëT»©u®¼¯v·yÌ79†ç0®Šî»Io½­ošÞ
 €  6s‡{Òª¨I$]ÝÝ™™™˜6Ûm€ 
+¶Ûy™™˜ 
+·™—uÝ]wÙ™íÝÞm·À ¤’{¤’pæÞÍÓqæÞ]wwwwIRùîw¹ÞçGÓ½ç69Àª*¨ª¢ªŠª*«½ï9°ÙÇ8pæÀ  Ñ£š9ÞìÝÊíÖ¶ù°§œ«æÉé{Ò{Ý/Y'‹l#½l¬Í«Êºî®»]˜½™µÛ­Þs
+Îa¹8‘ç¸ôyΞ.7FÓZ±wwwwIJZ©U*¢‹¼ºÕ.ê]kÝ›]ºÝç0ÜæœÃs˜nku™ª­RîîîîîýÊø’AG”4¤kÆO±^ü»E†MéNo$^g3i¡DËÞ
+Ž™24áºZææÚñ£SFÁÊÞÑ8ÔwÆÕu—vªºÝݪëY—wj«š»o­ê«ëZª®“Y™¥W´E€èU•^Ì2  %DT뜷íô¸Ÿ`ꨮ$;êvÿH ;óZ—5†]‘»p„þ™@ð Ô߁œí¶üi£Fši¦škm4ÛI$’YxþÿÁnY‹ñG»Îï‰ u¬ÜßμïÎûç}ÎûîIßxAAA¢¨‚e(B•…óçÊÍ>£f…fæ°ÖØ  é¶Ä6Ù™†XØ3Fšô2Ø1š0uY´c`ìòåWòkòñþ³þ$ëùScµUNôáΟw<ç;Nxxs¿œÜès·¹°Ç.ìË®ëÝ¿lÏ3wªq•NeµæÞûwCw[nÜ$w-½{»»Ï83nûùù穽3
+íÙ¹»774ñZ£|nö܃ós®;Ýïmœððïðë»¶Û`ÖÛïmº·y‡p÷s32îf‰ÓÝÝÌ7ow6¿Ûð©ùjû|I~EBT%R¡*‰)P•	Bø”„¨J‰%+ä%BQñ%!*¢IJS3>2îîîþtú óÒIIÌ ÝÝÝÚI+µÛWwï+Ï}m¶ýI$öI$’6Ûq$I$’FÛn$’É$’HÛmÄ’@9$’Im¸’H'šÒzòö›öC#Y Ð"	G>®FÚôßÉo~  bùžwÔ­Vå¼ps3]]?¢‰}BT%D”¨J„£âR¡*$¥BT%	)U	P•>$2†Qñ)%UUUU¥TTÎõwÎîü€ k÷—}õwιC(C(C(C(C(C(C(C(C(C(C(\ë—9×.uËœë—:åÏÀîA ?cà'ÀQÏ‚˜‘R1£l
+Š1óüà|ê‰óó¢&ݨí6#µ@ØíQØìø| ø
+'ÃN”t(™LÉï ªC÷‰!Hþáõ{ÇÁ"~ÿ¿áø†¢G»Ð|ѬÖDÕ Öj‰¬}[&ÒDÕ5ÀkÍßèêýkµÛ]¨C(C(C(C(C(C(‰%ûªI|ùéêôõxe e e e e e e¢$¾%	P•PÊPÊPÊPÊPÊç:åιsrç\¹ØT ?Z%¥¡bZZZ%¥¡bZZZ%¥¡bZZZ%¥¡bZ!¡ b!¡ b!¡ b!¡ bJJ$¤¡"JJJ$¤¡"JJJ$¤¡"JJJ$¤¡"J
+
+   U---KKERÒÒÑT´´U---KKEP¦ššhbi¦†&šši¡‰¦†&šhbi¡‰¢ŠŠ("(¢‚"ŠEPDQAEPDUQQUUUQ¢*ª"ª"Bª"ª"¥QQUUUQQPDQAEPDQEEQAEŠi¡‰¦†&šhbi¡‰¦ššhbi¦†&š²ÒÒÑT´´U---KKERÒÒÑT´´U-
+
+   "
+JJ$¤¡"JJJ$¤¡"JJJ$¤¡"JJJ$¤¡"J!¡ b!¡ b!¡ b!¡ bZZ%¥¡bZZZ%¥¡bZZZ%¥¡bZZZ%¥¡bZ AÅ@€óˆ"$À1þPêu$Ço¯1˜B$©Fƒ	&ÖK`Èd0¯ÃA ÎÙ€5
+÷Ì‘ê©gëÓVÛŽF5` €ß+¤® J¯<ïÃVªªÛCäbIͺi˜™YñÈ„*µïÖVÌ+Zã Õh7æúåð8ÇրѸultš$EïïϦ뻡é_+rªª©|
+ zäQC®žAãÇb =K‚‹Í'RmØê©!-ŒkM¯ïÅÁV3Á	Ú’C¨‘¿ŒC\à áva]Í÷*ÃH¾¸øô]U^¼^€ híUUWè ô™³R‚š˜A›¦f;vÛ¨Õ¹#››Q˜ò`RyrÊ©xG]Þªªç]÷«çNúÜ©ÙUª-àŠ°¾Ë§5h²Œ—†Jª«*«q†û ðʪÛ@i
+°h;ï¾ÇWª­êQ3eׇg;CIµ°®‚ë,qÒªª®ÍuÀ °ÐvR¬Í¦«ËV{GTÞN·Q·Uä¹üJ|ß—é¾Y¬Ö*ªªÝóW™;µzë¼Ø-ðÖôvUå,K1óß]ùúAu-¤&­UUuoUU@ÑÖîê¬Ø` s
+ÀÔŒ&œdddÔÅŒf2xdÉ4ם5ˆUy]k½Í/c$’úß4w¾±íRUÝeØÞ¢ªª¬¼Õཙ΄èï¿
+Ñ„w;vïY†›UUUëW4sqƺ4××n7ßœvàìoNÐP£Ðx¥´ˆ÷Þë¤Xyv¢­äfmæ÷_/w»Õ±Enî÷¤ƒN\-E]VøÔ·\ÅÙ¾IU’R5¬hæèà媮]ݪ®Iío.íUuÉyË»Uå&ÿÃäߝ¹ÉÉ‘.c™-nþ€ þð kZ½¸fa™™xᙞºÎáë]t櫇5›æ±lóZÖµ¯>%×Ì„ `psÎö”ÅÌ33X^ë` ÆÛØ
+ƒÆÆVf¶nîšô
+ÌÖʍ¶im+øyær±awwv{ôÀà’JHþ˜ {wwwiU+¾ªJïÞöîóß[m¿RI ý’I$¶ÜI$’I$‘¶Û‰$€rI$’6Ûq$I$’FÛn$’Çå¾yG]yG÷ß^Ç}J¯¶ª€ÕWÖµîÂîä’I&1Št“öw²hž± ©‡¬‹}ýWÁ¤™á;g؏.vi$»'¯¿›G>¬²ë5Û,´gUUævSè*ŒîâfWüá_¿=ôõëÎìÕ³
+kž´UáWð±¯yóó\+äïv^滟›åxW³Gd’I÷y ?W~X]Ü’I$’uF¡Oø‡ß­Ó{+Ì8΍l¯êùAAEV~çèìDŠúŠÖ_F¦ŠÉâz
+ôO>Éþ*h§oiekÙb'Þ½ÞÊkø}|í½5ëaùCØx{𨎉$“鮯×HÄÜ«G¬ü„Ö°ÈG rCãß>X]Ü’I$’fÃ}o­•Þ)Ž8SúGêvoŒ.©t¯%UuэSǨB$Ö1£&òh¯­AEUòMº)´æL+Ô:Ð~!{÷8RyÞT0¯žÍˆ†º‘ÑVsÌ׿[²ÀCuc碥WS:Ú÷wå…ÝÉ$’I&%u»²þÆÊk¯„Ç
+ýý"{>ûõ‡Sõ}”úýw¼nsÜáOézû³~ý]}d²šóñ–WsìDHöïÛË­Œª„ùF&½•¿[Õï¬@?W~¬.îI$’I1+W޾~¬áM%|Á,¦ùSèDH¾è((ªïØzÖËùÏ¿EkáÑ>;+ë¿ßzÑ_Äýµ°úš)ØúòSø'!
+òh¯Ñ>*šÐð®×D’H;Úû»êÂîä’I$“õ¨Wx'¶Ã¯\áO­QG{ïMÚ‹ë…l­´&ö=vF3}w„»qâÊ«frÌõù噺s1²Ÿ¿×ž÷­”Ÿ²ð§0çÜ4Ri:|³_™¿˜ =”w …Š·zÞ zRçÝ—u.øYmÞG4   ?\׫»’I$’O£úëÍמ
+ôVXöýµÓÓçWÑY´7ÇEN¶W­ýkçÙ‚5ÛÒ¾™àcÛ×Hž›è}æºè^º>š‡ÝŠ‘
+¥Ù3!Í!âqã·Lî™7î¬ÊeŽ
+ˆ§Œ<s]üwÒ‡–sÎLæä’I$“½B¬5Amš¯¿®Ÿ5×{Ù]L¿sEwQ
+0²§Zú4d!„â8» ‹zû°F‘Në¡Ø©¹=óšéê^í=Îöö7vùî×C®ý˜"{篍ž^§<@>îýØ]Ü’I$’bW3˜aVkë0¯P…~½}†{=y'
+ûû6"çËÙ[çðåSçÉûøE|Ùüy­ù©eO¿³O=aðUýsv€~îû°»¹$’I$Ä©…zþ3°×^cãÑ_sÍóEoÏÎûþ?_öSø'¸C_EMÕüç{ôð«ö_ïÏ®g
+ϼã~·²µë¼Â³áb&¨ëď¶ÄŒ‡Ý{Wåü—‚#2I½s{‘ÔŽn÷w’eÜ”Æ^ÝÝÒ%È±Š‹ºàޝHìÔ®r µ#6ÚliÞä
+Ø-mÎeݪ®®îÕw5nZ­êîÕÖ:—j®ùwkš*oö où5чçG£Úd¼.Æ29R^fbÌÉ™™™‹3.ÏËÕÞ  sÖeï«ï™Ü7Þú}€ nåhll’wœ’üמyæ¹Xªñ*T­s@Á€ 6ØSm›z c 0a€Ç€0À`­æ±išºÛ-gÎڍtÔBÛt…“,ƒŒ–Òd«q*î
+£wq»!mˆ–ÄÂ&H)‘¹b&$KLË‚¨—#!Ø5h]Á¸ßª«Ý÷Îÿ\ÌÌÉðm¶ýI$ùÀíÝÝݤ•Ýí%w~ó·wžúÛmú’Hì’I$m¶âI ’I$¶ÜI$’I$‘¶Û‰$€rI$’6Ûq$?/Íy­ëSZð×Õ{ÎÖI'­Ìê}v€gnz2Ûƒ/º¯›ëÕ…ÝÉ$’I'ñïמ²«EÕ|*‚„=DocK™êíÂi¤‰3R&'žp!3cƒñÀô’I/º=×8= =5ßR»›Ù^pþFˆ»vVý™L¯e÷Ê!”è« ¯h<•Uäà>«çzóôÌ)ø"'•ùE
+vòwÖí ýÝ÷awrI$’I°Ô*Ãn¾Æõ°è'
+øp½PáV}^Yë¼óEN½f”¬š+~eWžM§*§
+öaµÌûÄàžÐêõòùbös<oFøÝ4‚b£ª„6²å¢qµ5¡½{ö`H“ánüf¥ô€U J¯™X]Ü’I$’zªÔ+ª
+ád*” ´a_W¢²Žg>øTç
+3è뿬£¯?;ð¯ÏËàw?:{:+Î[\9¢Ÿ±9 ‰Z»Ñ^çf÷æl®óÙ=ëEwÄ;Ì*Â}o[×	T
+wGÏ¥Ù$’r÷Wä@?.ýØ]Ü’I1Œck„Ò‰:¼¼šª¼{è¼iÂu’p7öðn„Sp"ÕÖÇ@&÷ž—¼M6Ù;ï¾™ÙÕ0îʬÒ!tNr„‘œ¦þ-|5Õ.×	×\(V	wß¡ÂHHÍg›ê€{àuÑmälºlG0Ÿ\¿,.îI$’I0/©›êöW£b5
+ðÍ:ßM¶Lr!Væš&7Ûl£]SËËDHáuÕ0D2ã×ÓeV|qºxy»9Üm²¥yMW´
+¨Õ¾h¯«Þð§Ã_ÍïÏ[p+¸vPŸs9­n€à æg«»’I$“Ö§¯˜]@mc­üÜ*ÎÃ
+uO,p!ýÍ ÷ö|ü¾ùµ̆“ôѽ•"QT^Ï/&¬a…W[e–$HlÓÙ«õm‡òþaþ?Ã$É2L“$É2BBBBBBL“$$É	9âåÂBBL’åË—.\É2L“Ê“¤„$É							2L“$$É2BL“$¹rá&I’d„„„„„„„™&HHI’d™!&HHI’d„™!&I’d™&HHHHHHHIÒL“¤™!!!&I’d„™!!&I’d™&I’\¹p“$É		2BL“$É		2L“$É					2BL“$É	2L“$É	:I’t“$$É2BL“$$$$É2L“$$$É2BL“$$é'I:HHHHHHHHHI’d™!&HHI’d„™&HHHI’d„„™!&HHHHHHHHHI’d„„™!&HHHI’d„„„„„œçõçºó÷÷Ûn¶ó¶Ûoñ·þÝûmÝ·Ÿ»m·›¶ÞnÛu¶Ý¶ÛmäÝÛvÝûm¶Ûm¶ÛoA¶Ým·m¶ëmºÛm·vðÛ¶ðÛní¶Ûm¶Û­¶Ûm¶Û¿m»m¸ñ¼½wmÛm¼›mÖîÛ¶ïÛ¶Ûm¶Ûþí·¶Þ]»÷†ÞM¶îÞM¶Ûm¶îÛn¶Ûm¶Ûm¶ª¯…URªuuY_ûTëÚ«¯þªºöªWΪªUUö]õÿÒÓîúŸgݯÛûwbîü™È»öÆžößmâI>)iihD
+i¦Qü=ïèh5­d’I$“/Ô› ‰æÜ'0~õïAùÐ}6|ó7|6}÷÷ðø#P¯aðõ׬ë³Ãû­›­5¾ºÀ&­n¤ds>¤õ@~]þX]Ü’I$’|ïáϬ(ß¿fÄMpúZú;îÑûùž¯>üW¾ÌW×΀Ҿ}OGÇç¡s½vÛÛp÷Ô-=÷8"¯»‡n¾wݳIp/»³&_æ¹ùawrI$’I«£^{°ïó~¾ÄDö|×ßß¿Öõ¯³ß;ú¿®Œø| ‰=ö‡'[ùýíø'ï</œ ?w»»’I$’LõtNëáKýòõ<¿—÷5œ>ù˜”|»¾ì“³¿g›}û3ÝûH ‹õAiæ»ñ„÷æÙñYe–1„µùyÁ\˽Z+,q—zdÅE©wvvÓ)•u³uÇ‹KLÔµÓW8ì!Rä[æ³-UrîíW5w|w½*®®îÝâ³Wvª»åÝè¥)
+£t~Ž}½÷ß—	.eÜŒÙ’óY†}ºÖµ™™†iÖ¾ý{õ»õà g9ßSPäšèÇy[ç4Îæ›0 fÉ'yÉueâß*•ó 6  ˜6zf€÷@ͶÛ0Öy Þ†î=fëc>Ëç]¼¿–fffOƒm·ðI$ù@Û»»»K·wt©+¿k·wžúÛmú’Hì’I$m¶âI ’I$¶ÜI$’I$‘¶Û‰$€rI$’6Ûq$)¬æ³]í<ü§¸Ï®ô
+!ïši¡Ah¢Š(¢Š@Zªªª   
+_Z×»»’I$’O ¯ä Á÷¨Ií ¨‘AùC¿¯Ë´8‰1a_f„O×èóTu÷wß{õóU4uø2å„ýýØg}/=á•ÝýëZ}$!ç^ü÷Ÿ]ÄÆl wg]ßTêïõawrI$’IÊ?¢þk
+èŸvV[TWˆú=ÌÝ<1&››ëêù¼öM쮜téUçvÚôž©#}ln½í$‡  3k—@dÖ¤|ÂIjÿ±úë«»’I$’NŽ‹ë÷{Ù¸ôH÷É#ñÈtJ=È{gÞaÅàô×}ô ‡¿[U^òù33õ­ogÖšÊîaÆŠ¡óίºòïòÂîä’I$‘ 4tÝ€ ~ýüÏÎ|úïSsëª>¡Ôöèï´÷ÐrÛ†º£T4O
+ÄÚ$£a;lÓ¶yÓMd :µjÕQHUUUTÀ@ýïîÂîä’I$“ü
+wÛåþýuÜúƒÐ|É÷n÷Ï;½.Ûåç§k¿]ú×>Ývðº&±SÕ'{ C}»6hd’s7Ézù@~]þX]Ü’I$’v[÷7~½pKu?_=k[럢úl²ïR«e5W`}%<¨ ³ÑزI·: 7jy	$wÌjÉeýkŸVw$’I$ž·FÞ5×ë—¾µç¬ïîøÞá»ô\¾ûyõ³[ï]ªÝR(;J}”Twäõ@}ÝýØ]Ü’I$’sßêf«Ë=üòöo7òþüš›Ü>¾¸ï½sœêü >®þ¬.îI$’I9z䡇«Êöú7š÷! ß¿Y¾¾Ï]VÝwÅвI;ïçªåßË»’I$’Ožuמ¾wÝþgÀúúêþ™®½Ã×}noï÷Öúó¢w>yº¯
+ƒº#AªÐô·v-Ü‘tz´MÈ^"³L7vK¸Ë³aÁ¬/NÉF׌F—Z¼nÔ³{LkŽ*Ë»µUË»µ\ÌË»µUË»×7«UË»ºªÞfÇ]¨‚¨X`«‡×ô²‚µùÍúîeNõ¼—.
+ã1nK¼ÌÅÌÊÌÌÌÅÌö  € z÷Ï'œ6÷Ž:Ü®¥QËgÓÍRƋӶÀ 6ì‹Z_ÏŸ>-ׄuxÝ[Öê÷5¶Ûm½ÖÛÆÛÜo/uºÍzÛm»ÍÆë5ë§m½ÌÆö¦µ«çœNê6L‘¸]ÌÌ1»—.äL̲K»‰‹˜5™îÂ
+ÈÞÞ.]—N#™kndIî¯ÕV¨((ªêúç¾îîï=¶ßÁ$ç€¤’I$—x’^ÕZ¿}õ¶Ûõ$Ù$’HÛmÄ’@9$’Im¸’H$’I#m·I ä’I$m¶âI žyžy½kWæµ{×›î€
+éxj•íשõ@>Œîçv6Û»î«çYêÂîä’I$“õ}õݺªý€%ô€üëäûë­yßß5Sùþ[³“»úêzÀý7Ýyßiìôlªî›‹
+aÍK——=÷ƒ×wû°»¹$’I$ëÝœ¾Âåíý;ýzûüúãÙ¡Ãħ}¸ãwÎ9öøiÒjŠ5Ô½´»=>¨»¿»»’I$’O—ë®þ{ógïÓåUI"ZˆI0Õž2ÛW§³œzšöòã¶ž\qà™W·=*¯>yÐwvw$’I$ž¥ÎŽ{¼ÉÍÃ^¯[’‚
+K?WXðwÛdÒkX™s“J»_Ûxm'C¼!’€‹ž},$’CO®PO;âã¤KÄúyõawrI$’IàZ~ ]õ®ý™f_hÌï)ʉWÉïäM@Od¯‰ݱÁ%=<è×—'õfž†Uz=ºî€ú»ú°»¹$’I$ì9ž¥Öª»¾2„×V¹’$ïdÒ÷£Ûç<çÓƒ5|5ÎóËŸ>Ɣݎ3áÁ×éfùŽ8×Ͼ{AùwùawrI$’I»íþß0Ã×ÄÝŸe÷ɯwóÍýï›9îr®W´ÒjkÎþËîUšê´W¾„’Iy¹{{î€û»û°»¹$’I$Nºúž÷Þò³Ü³Û=kú
+xw·¾­R¾ V\ª éª©ä®5zª’WˆÉ%æ½P­ÌL”áõÍ}X]Ü’I$’jˆk×ñë͆_[ÖoøüŸ®ß¡tþ}ß«:Msßο¶yµ›ê€ü»ü°»¹$’I$ëÎüïÚrþBƾ›ç=¼ç|5Ó©œëD–H!¢xå)¯˜xÝûVnI-[±Þ,à›„É©c–.äËnÄ–æø‚Öë6VÔ&f6^´¡‘œU^nîÕWRE»[Ë»UYnã»»µU¹ eUAÊ(
+
+ÕOæ¬ç7}zòfI!áÔ—n[ÅÊ—y™‹—Žfff.^yηޯè¾²_w/›ÛÖÜ7­kZÖµÍᦠ°ï½ì•Jònnë«{¯k7[m¶ÛzÛo[o5Ö½mfãyºÛ¦ñµ›¼¶ÚyÛzÛI$’æûUòwv¶Û~¤’ü€©$’I$«´—·ÛWï¹™™žûww`ß²I$‘¶Û‰$€rI$’6Ûq$I$’fffIww`Ü’I$ÌÌÌ’îîÁ¹3žfk}¯<ª
+*¹çožèw~¬.îI$’I;÷ïÀ S=ß4 J ;À·o]îì…ÓEV;w†¾^èï[y¿¾h/zÙë¦^½‰€OC„d‘{ïºêïêÂîä’I$“Ëõ–>²éƒ£ÝýûžölDúÀèk\õéÀЊg®cH‹]›{}u3ïçgƒJ‰\÷ð³¥D¥|¿Y3ÇÎùšÞ|Išjê„Uo/õ@v_$¨H;D…³îoîÂîä’I$“º´Q]ÏhåQaêb(´£õóêð¤TZSž_­‚¨µóï_Ë+JÒ×™ràÑwÕãC–WvBõª‡Ið>@®k£~^wù@~]þX]Ü’I$’j½gVh=d³ãÏ&g2þ%‡‡ÈP´­·üó¨å_‡~û(j«~m¾ºî€ú»ú°»¹$’I$ëö½÷(ñÎU™•[=uí\Õγ—Y’V?Ç­|ÂôWGÛATP_©Š*s;ê€ú»ú°»¹$’I$á<<ëùf^«¾¿z>´‡½ëç6ßçæPç³W…xEVšt’/pêC^qõôÚè:-øï³×Áæ)5Y×Ù$’zÎè
+{MÈ®ö}óoaÁÃmær£žû
+bN5a*vÎí;:ïb»6uߍ{x‹àez•ök }Í}å5“^º³øåžhôúù¯ÖÿSËë³2‚‚Š­ìí­U5U»ìÕû ?SõEU^Ž¼Ã¼0òkÜ;¿“¯Îkä›fÍÕ§Ø`÷ô_s{<½ïËûùÖhëÀïU3àš÷@}ϸ*ªç8{ÑÏŸ#åløTùϤú÷
+ô†¬3„ÿ{Ï
+¯²HÉ=õÕ÷>àHªªž¹Ã¿;>púú×Ï9ùÂ~wâûP1”OmÝl0ñ‘'ŠÝªŠºÅæ	¼–.Iw¬–6`ŽË.ÅeÞl9¹Hk[Ù*¢ÓDÊžjeÖ—u|¨·7zË»U\ÕݪÉ4·j·—v¬·rqZºÖµªu™°CˆrO@8½yÞMûïœñòfLÁ¹r83eæf.fc™™»U»žò»;
+fÛî™›²,°×çÄÞî9òrIzÖ¼óÏ<Ä»™[í%Í®Òç*’I&Ûm¶Ûo6Þ»ÖÛ¶Þ¼ÝÝzÞk¶ÞµÕæ‡W­[wš½ÈC¶íÖd˜å¸0²e¸dËlat5$«[ºÇ`ÚLÅËÃ/%’˜¬f0.Ú  ÔÅòK»»†ff{Hþ@Ô’I$’UÔ—·V¯ßs33ßRHý’I$ÌÌÉHä’I&ffH’@7$’I332D’¹$’I™™’$
+Êò¼Íù«Öµ½yá§
 \ÖðY$¯têæ	
+ÝÙ+	M±”æOz®Ã{ÞÉögËóõË_sëaÏF½èóÔ—ËÛǝ÷Ô¿³¯âûóœ¢êÒ¶滞´ÏTäü"ª«Ï]:Ì“Íü/N¿ƒnË3Pxׯk
+_<çñëë¬Ïw¬ëùg}ï}ÑïØ{CÕRçZï”Üû"ª«ž¾éO~Qžµ¯=KþO\á:
+øÿ$õæh¯ª®ܪ¶8I$“wî€úŸP$UUÙÛÉûÖQâQëÖ7Äp*± -ª¯¿:»àpCC¼žž­p®ŠhÕUgWú€ Ãï]y	a›ÃþÐA¿}UUz+¾Úë¿K­€ï¯†šoRf“]7Èõ ݦG†õÛ1ªYÀμ²W7œœfþ¨((ª÷EÙOfšèÖ«ª(ÒtüUU^MƒŒùÙóæŸ>Y©×­Ëö¸u5ü÷֏;öxåa–i<ÖŽŠ©éžŸŠªª†º”FˆöW»%WŽ¼Ûœ§¹Ê«k®1%ët ê39,î¶f«›Ðªç^õ9󯊪ª†Úæz¹¥:¸¦±œô卯2–Ʀ3»Gtý+;²
+§]̹߾ìámúÙ/-öªª²s]§o\o{É»/5ÌI¾úè36j_€ ÅUUïöõç'¾Ù¿=aì/|7ã°ï´Eô¯Z‚iôì<yÊ®YwJ¢Í̃Í,åË"1šÖcLÝÉ.–I†øƒ$KÓLÞ‹ÝWQ£tdÆåÍñ«9Wwj«›»µuríu˜ª¹«»e«¾]Úªêîì,’PUQÃlë/Ç“²=LÁË&[\¼ÌÅÌÃ33wj·yn¬§•Ûàc¦ð›y³š+ÇGLÎNI.­^-ó´·]IWWRI$’m¶Ûoi½w¹­¼Ì×»m»Ëm¼Ì×y»J«‰-.$¹]í}îîÃ33=õ$€oâ =I$’I.$’õ%wï¹™™ï©$~É$’ffd‰$rI$“33$I ’I$™™™"I Ü’I$ÌÌÉHåkOÍhŒ­žUf&ü=½*ª¯¿Ÿ»Æ«ÒW^y¾¼6Vdªöûß…è<ß™Îl9Àá|ï®<ºº7F+ú6*ÉSÇÚªª½=è¿ÃG•y <ùëæµ8|Ì?D3Ïã¿ZësïžùãîUw%wº÷ÆI#:ò[ªÒÊD½Ò8oíUUvÇèÚU–ùï¯Xt§|ì€{ïÁÖ¤„£¤%rþší¦«³Jf»wt9t“¶Ðͧjۍ¹íöªªºðûõ`˜QmPÕœ/»13Gx^zùÞ{uó¿$8t;ßôO[òíþ<ÓU¿@Z4<wÇíUU_{º«AXÝ÷¼°ú­–w¾¬œæ× ùvw×WUé½WG~yk„’IÞk·Òªªõ*ª‚Š®€ ;¿I€uÏ™XQàzo¬õçZæ ![2ÂÊ®Ï=u´•ø•AõØí_¯ÄÅoaß·0ß²Ë5]U«ÌQSç\øèЇÉyLÂí/éUUx*¬óç£Ï9AÀ©Ý`5MS{…]î‹õ¦®Žo(Â;¹+7=œúÝž8aۮ퓊;ó#6(ðÍ»ùÛôªª»©É¿p‡~¯]ê€âE\ªñéÓ~¯0îÃêygžsyïšyÏ=ñúÓÍó­N?UWÎ_žÖCâyïZ0<õšòó¯;Öº;NÑO‰ëÑÑßEü—­{ëUçWžç«8üUU\é=g~¦WØq¿{¬ìÂë7¸š¾¼/-UqÚü{à¯ráýU5øÕ·yа˜\n^L3332ñÃ3]Md:ên÷Ï\²¸qÝU®oæwŸqe¸T€ 9Îv¥â«mî½n¯1¶Ûm¶Ûm¶òÞ7˜Þ·[šîÛ×—zÛ­Í{™ºí
 Ûomãoë®®±U÷˜Œ±Ê€Ó,ËËZ’l¹mØÅ2ã˜æ\Å#d·.›IcvÌæ÷Í÷^ùå§GÐ.îíû™™“à’@7ò ¤’I$—R^ª«¿}ÌÌÏ}I öI$“33$I ’I$™™™"I Ü’I$ÌÌÉHä’I&ffH’@7>Žjõ½ï~ïëÝûu¢ÛMÎUo¥UUþ:£R«øíªè‡¼ynçÖñºUðßÏsˏvœ<×yqªëƼjU_®SÞçZ9ï¸~•UW~½þw·C–ÂY嚱ï¨IÏ:þfŒ„9Ö»ç¹éä=ªª¬òö>§GÏ’¥	câxšÞûãš,õ»ß®Ç\†Å]õáéUU|ó\ž²užòú“ÝëN¿o=xG¤ï‡¿á$’ožú÷ç:á®±EŽ\ÈÕßÅUU•ßšÔßïª/RQ¼õŸ5ï½›Ýo½o¾¼ù×0øªª·ÑÎèÖòrjõào}ï|9nìíUU|4lׯ^“4›Ï[ÏÐÇaÚ	ï'…’I'ÎýõœÙñVÛmóeãß,¹nqxìñË®ý¶ÆÓl~`×£3¿¿;óÓÍžÅ^sæôeo¤•!,î8a¯µUUÖoVwŸ¯ê_ç'µóæL÷Û¿‰ºŽõ¼³âªªì™ûá×~]òc|½l°´/Ê>}êi÷èçi\ï~§©;×S—ˆÌ”™c-»ËÌ\É™&dÃ3hßœë†+×­Lâu&çWêÎÅaR €ç8RS9¾u.ªê[ç{I6Û¶Û{ºÛN÷[ÖÛY™­n6Ý<mff·šÛ×­½yÄ’I+0?kÀé$Ÿ‡©$êI$’¤·Ê¤½åUß¾æfg¾¤
+û$’I™™’$
+É$’LÌÌ‘$€nI$’ffd‰$rI$“33$I ‘Õç;ð÷Y½ï{Þ÷½ü˜¨çÆë߇Áfwki­tëåßOÖw¾øf§~`ÿ/5ç*¿#÷Ùöªª»ù¬ùμžTÍ|rrwí凯ÎÅWÜ;nby™XBòñÃÚªªà{ޏWüŽÎU¼0õïaÏ/áù5Üõ÷rÝM÷Ö¼ëÑÞz>ÕUW½þ~œîóÜÎAÃéä—½ô_5ç3xôûÃÚªªë¾n­›°éOF¶öwG§ÒöïÑÂ'×}oÃb¯Zåÿ@ úUU_]ÿC÷¿ZàöFý“.Ô¾}ŒÙz¿®|½óŸKèd’8åúÌûè"MáI,×Òªªï{w¼²üòf´Y×ÏWvÇ®÷yðỐ®õ¿|=ªª¯¾zvï\óÏ£²Ë>tßrs•Ù¿7äæk¬ù¾ºä
 ÷¼ÎNÓ⪪¹éözëÚ@ßò…Ózߪöt{$’O|ìøªª¿9ê/@ÎËyëאsA­{õÒ:Qçõÿþ¨-	4%öY“4REõ0þ;j5BÖ¤¦Bè İ   øT5
+T4U3€PT©Tµ@U`E!’‡þ©U»bYƒ½a¨‘çEHåT¦Hd	л@¥ bŸWùü€2 €%€> ˆÈ±J”±J”©J”§]±’¥,R¥)R–hL	`’`’`’	P ‚X!‚H!‚H!‚JT¥Š-‹E¨ªKGÀ,€R¤.@,`†H!‚H!‚H!‚$¥ŠV@>  iú@?ûù4D’Ôæb ÿµþýo5É^ ÕúÝÙUUUUUUUTªªªªªªªªªªªªµUUUUUUUUUU_Ø€5 ځh(ù@  Àà^Í4Ð!ÿ€$˜°-í 0 käÙ€â@xÿôq6±$µ­P÷÷ù"ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªþPú€.ó„’Z÷|òö€êÒÒŲY¢"Š¢¦bŠ* iH–j)¡¤@ ³Oî•iH¤*†‰”*…™¢b  …Ø¢P H@ƒò ‚/ÖA"N€šÀ~¿Ôú`=@è@M=`‰ (Ôþ æ='Ѥ!z 4 z w=Ð@l!gÚ5 ýÀ“€
+ 0“åöÕ‰?~0ìxOÜ
+§ 
+ïD˜ ö x´ À #Ôÿ  •	„'×d”
+À {?M ¹ æ $œ€{Àú€CØÜý=v °J„X
+À?ò@È`ç úÀæíûm¦É"s´A
+ÜÈ'É| : ÿذ 7´!xtê ‰7Dž6D ȁI@>Câ>#â>"|GÄßöþdØ€b@|`b	ò@|¡’@=!“P	ô d=`ÄzØ 0  wÄûp„Ið Ÿ
+ øDœ >Ð	üÈ 6 þO”!{@2¸ ž€v üð jÒÔ
+€>¨{{ =<á!& <€‚'å€ä‡¾‰(Òz§€ ò ü@¢ {@Ÿþ”û 6 äX€ûZ» f‰0àæ„"L@~Ô G  F€uØPûà8 Ô
+À:ú€P6ÜøÐ<@=³Ù PÖÞP¤¡QBÄ¡d¡T-
+P±BÐX¡R…PªAhZPZBUBЪAe¡h*…¡hU
+ ´- Z¡T(QB¨R{ 5„"Oæ Ø>°ú >ǘ€hÀ>@ òó$¬­óÈ ›ÎP@œ6€Ä÷é$’M :@‰&°„I€àGҐ@'Ò ýqê È 
+ 9 ü 9Â@*!|Јñ„"M 0 ÐÜþ´AY$þ¬!RIµ„„xB$÷ ;€n èn at 0 (B'¨
+d“ðôD™T© 8„$“  XŸâ¤P5  >d  Ž0åë€$ŸOÞ@ìš P#ÓÀð„"Oç„"O`Ÿtp<€4 æ€ûçÖð Ž 9ˆ"Nà DŸ0׿@EÿÅÜ‘N$4/… 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,186 +0,0 @@
-‹ \èaJ í½Û²äHvžY×õù ’ègw莔LCš‰c²¡4ºlËޝYÆ:YU5eœ§ bW%ÎÀr„ÿpü‹¤çDìîX~ø±Ƈ/ƒûÁýh~5o÷MTKô¾ûÿ:zuû·vîöÿßùFkc•
-N«ðÒÆkýÍ_âó·_ûøË‡ßüù»Ÿ¾ûþˏ+×}úåWĄŌÆÿç_~zøM°{üµqƶ?×Öµ—qüÌŽÿÛÏûòãçŸõ;º÷ñžŽ¿qÞ3¯¼ýæƒzÔ°ÆÅÇ¿ïO¿þúSÛÿùƒúöß>ýø—®ý¡ûçÿõéÇö>øôO?þöéûo?þòö×Þ_ù§¿oo˜o?üáË÷ÿþþ#k¾ýá§¿|úþ÷Kô·¿|ú·/¿~ùéÇ÷vÐþèþªúö󧏿ýí—O¿Þþùç_>þøö×ïúñ»ÿðA‡ÿøçÿíÓ‡¿ýô×·?ýüë·íýøáÇ¿ýðçO¿ÜÞÚýó—OßÝßênÿüçüÿÞmÍjo+¯ì·_~{ûú‚Óá?¥öîSêÛøé»ŸþùŸþÇ¿Üÿnküjü·¿~ùs;üïj¾ýù¯ÿþë—·ßøò—Û¯üé—Omó÷?þ·ö›|üËíÝ?¿ô¢f/îéE½Þ‹†½8Û‹Vt/Zöâž^ܸ{q¶½6¢»Ñ³÷õãÆý؏ýèE÷cd?îëǍû1±gûQ·§Ñ
-Ù°#wv䯩y”YìÉ(;Íð8³·'·îIizÒÛ »'y¬ÙÛ“[÷$6‹=ÙÈîInööäÖ=ÉãÍ|Oå’ìžägoOnÝ“<â,õ¤×²{’gœ½=¹¥óŒ³Ð“>Ȟ؞qööäÖ=É3ÎbOʞܞqööäÖ=É3ÎÂC0eÏoÏ8{{rëžäg±'eÏpÏ8{{rëžäg¡'}’=Æ1<ãìíɍ{ÒòŒ³Ø“²ç8–gœ½=¹uOòŒ3ß“N5²ç8–gœ½=¹uOòŒ³Ø“²ç8–gœ½=¹uOòŒ³Ð“AÉžãXžqööäÖ=É3ÎROjÙsË3ÎÞžÜò.çgÑ-ZöÇñŒ³·'·îIžq{RöÇñŒ³·'·îIžqz2XÙsÇ3Îޞܺ'yÆYìIÙsÇ3Îޞܺ'yÆ™ïÉ ì9ŽãgoOnÜ“žgœÅž”=Çñ<ãìíÉ­{’gœ…ž^öÇ󌳷'·îIžq{RöÇ󌳷'·îIžqæ{2ê {ŽãyÆÙÛ“[÷$Ï8K=e
 Ïq<Ï8{{r++Ï8=’ì9NàgoOnÝ“<ã,ö¤ì9NàgoOnÝ“<ãÌ÷dҍì9NàgoOnÝ“<ã,ö¤ì9NàgoOnÝ“<ã,ôdT²ç8gœ½=¹qOFžq{Rö'òŒ³·'·îIžqæ{²1Zö'òŒ³·'·îIžq{Rö'òŒ³·'·îIžqz2ÙsœÈ3Îޞܺ'yÆYêI+{ŽyÆÙÛ“[ÙÌyÆ™ïÉ.·ìANâ!gwWnÝ•<å,w¥ìQNâ1gwWnÝ•<ç,ueô²‡9‰Ý]¹uWò¤³Ü•²Ç9‰GÝ]¹uWò¬³Ð•ÚٝÄÃÎî®Ü¸+žv–»RöH§áigwWnÝ•<í,ueŒ²‡:
-O;»»rë®äig¹+eužvvwåÖ]ÉÓÎBW“dvžvvwåÖ]ÉÓÎbW6²G;
-O;»»r³.(;K}™”ìáŽV<ïìîËÍû’žå¾”=ÞÑŠ'žÝ}¹y_òȳЗÖjÙ­xæÙÝ—›÷%=Ë}){Ä£O=»ûró¾ä±g©/“‘=äÑŠçžÝ}¹u_jž{–ûRö˜Gkž{v÷åæ}ÉsÏB_:kez´æ¹gw_nÞ—<÷,÷¥ìQÖ<÷ìîËÍû’瞥¾LNö°Gkž{v÷åæ}ÉsÏb_zÙã­yîÙÝ—[÷¥á¹g¡/½
-Âç=†çžÝ}¹y_òܳܗÂç=†çžÝ}¹y_òܳԗ)
-Ÿ÷ž{v÷åæ}ÉsÏr_
-Ÿ÷ž{v÷åæ}ÉsÏB_›„Ï{Ï=»ûrë¾´<÷,÷¥ðyå¹gw_nÞ—<÷,õej„Ï{,Ï=»ûró¾ä¹g¹/…Ï{,Ï=»ûró¾ä¹g¡/£SÂç=–çžÝ}¹y_òܳؗZø¼Çòܳ»/·îKÇsÏR_6Fø¼Çñܳ»/7ïKž{–ûRø¼Çñܳ»/7ïKž{ú29+|ÞãxîÙÝ—›÷%Ï=Ë})|ÞãxîÙÝ—›÷%Ï=K}Ù8áóÇsÏî¾Üº/=Ï=Ë})|ÞãyîÙÝ—›÷%Ï=}Ù8/|ÞãyîÙÝ—›÷%Ï=Ë})|ÞãyîÙÝ—›÷%Ï=K}ÙáóÏsÏî¾Ü¼/yîYìË(|ÞãyîÙÝ—[÷eà¹g¾/rIø¼'ðܳ»/7ïKž{–ûRø¼'ðܳ»/7ïKž{–ú²i„Ï{Ï=»ûró¾ä¹g¹/…Ï{Ï=»ûró¾ä¹g¡/µWÂç=çžÝ}¹u_Fž{–ûRø¼'òܳ»/7ïKž{úÒ(-|ÞyîÙÝ—›÷%Ï=Ë})|ÞyîÙÝ—›÷%Ï=K}éðyOä¹gw_nÞ—<÷,ö¥>ï‰<÷ìîË­û2ñܳЗV9áóžÄsÏî¾Ü¼/yîYîKáóžÄsÏî¾Ü¼/yîYêKï…Ï{Ï=»ûró¾ä¹g¹/…Ï{Ï=»ûró¾ä¹g¡/
-Âç=‰çžÝ}¹u_6<÷,÷¥ðyOÃsÏî¾Ü¼/yîYêK…Ï{ž{v÷åæ}ÉsÏr_
-Ÿ÷4<÷ìîËÍû’çž…¾ô*	Ÿ÷4<÷ìîËÍû’çžÅ¾l„Ï{ž{v÷åÆ}iÏ=K}”ìyQ<÷ìîËÍû’çžå¾”=ï1ŠçžÝ}¹y_òܳЗ¡«5,»/yîÙÝ—›÷%Ï=Ë}){ÞcÏ=»ûró¾ä¹g©/ƒ‘=ï1ŠçžÝ}¹u_jž{–ûRö¼Çhž{v÷åæ}ÉsÏB_Æ®V‡ì¾ä¹gw_nÞ—<÷,÷¥ìyÑ<÷ìîËÍû’瞥¾Nö¼Çhž{v÷åæ}ÉsÏb_zÙó£yîÙÝ—[÷¥á¹g¡/S—ëNt_ž{v÷åæ}ÉsÏr_
-Ÿ÷ž{v÷åæ}ÉsÏR_†(|ÞcxîÙÝ—›÷%Ï=Ë})|ÞcxîÙÝ—›÷%Ï=}Ùt±¢²û’çžÝ}¹u_Zž{–ûRø¼Çòܳ»/7ïKž{–ú24Âç=–çžÝ}¹y_òܳܗÂç=–çžÝ}¹y_òÜ3ß—Vu¾V²û’çžÝ}¹y_òܳؗZø¼Çòܳ»/·îKÇsÏR_F#|ÞãxîÙÝ—›÷%Ï=Ë})|ÞãxîÙÝ—›÷%Ï=}©;­Bv_òܳ»/7ïKž{–ûRø¼Çñܳ»/7ïKž{–ú2:áóÇsÏî¾Üº/=Ï=Ë})|ÞãyîÙÝ—›÷%Ï=}iŒ>ïñ<÷ìîËÍû’çžå¾>ïñ<÷ìîËé}ùMU´†øåcpí0ÿh~5o×Ý)÷ç¾üøù§GýŽv,Tp®ûÿº™Û¿õýß·¦µþÝní•6ÎØöçÚ+¿ù õ¬ñ·_ûØÂ7þî§ïÚcåºO¿üŠøƒ°üó§þçO¿}üþ?ßÌÙk×469õá_ÿáÛö¥ÿö˧O÷W>¸hm
-íkÝKÿð·ÏŸÛîx©£5¯Ô½ò_>¾ýõÓ_~Á¤Ô¨¤C÷Ê¿üŸ?÷_ÕÉ›pû´¿ûíË¿}úãüWÁ¨Û§ýӏ{¯™Øƒ5Ý+ÿøå»¿öþð;ê÷Wzwï•ÿþÓÿYú®íKKßµû»{okLŒí9ô÷WzïjT£Ìýãþë—_~û÷ÁÐöÐí=ÿû—/¿}úóÇ·üÝÿãO?þß}ú£WCk-·žûç?ÿüµO»ŽpM¸½ç_¾ÿøçÞϵ	*ÚÛ{þËO?üðå·ÿþ¥ý?í&„1îëK¿}úËŸþþ_Ú×lÐ.¹[ww¿þ~üó÷_ÿ§›ÛŸýÿþðñûïz{ïm£nbrÝ÷í½ú¿~½ÿ•ZédïÆû+ÿå¯ûñ_ßß’iÿçöûþñoß}º}å?õ:Xõ~ÜëÝþÿŸ_ÿí/ƒÿÜýøËÿw¿ÖÓÎ.Ýç?Û¸^€ñüÿë¿ÿúwþÝ$½_šÿ;Fó;›Øo>øGÿ!s\|þŸÿ¿´ºv»ø°û@>þ.:ÏñG°6þmû·O?¿
-dãß^§C»ÔsüìÿöÜu쐍lÇ?ªÀùÂÎñoÿW{“yˆíß(Ýþˆã@6þ¿ýôóOßÿôÝ¿Ënùø·—9Ž?‚Ìñ¿‹bú]L[ÿúrn<þ^Ù@ýÁïcð.ÔÐû/®^BÈ´ÿßeó?ýüñí_?~÷éO_þ²ü;ºŽ\³ÿöÕ±ýÚ?Ý8ª¿ËÉ™öß=#[µù>ÛöoFöoM´´õ¯pd#ö¿o÷Ÿ³ÿw^óù/„‚ÛìÓ6ìþ‹«Ÿö úŸ¦þƒ@6þ@ýÏÿ dŽyýë?„‚Ëì9Nô.®ÿóö_^ÿ£ýC0Ê%[ý]N–È´ÿòúŸ£ý#¨…#k±ÿ’úŸQ´¥¶Ù§m¼qÿßg¿ýë ú_¸ëôÿ… „þîú_àø#Èÿ‚ú_¸éŽë?„RËì)îðçpýŸ·ÿ‚úßÍþíÃ=Åõ³ÿ
-ò,2í¿ þîúŸ§ý#¨…#k±ÿ2ú_¸ëšöàÛìÓ6Þ¸ÿßB¢ÿçFw)ôÿSÿ/õŸòˆÆ?OþËñÿ‘ñÿòÆ_$ÿå<ÿ»ùrý/Ï#–Ù:·(a®ÿ³ö/’ÿvœÿýØÿÏ{úÿ@èüÿª¿ÉÉ"yö/’ÿ²üÿ´¡ý#¨…#k°ÿ½ò_Îþß1ÿ†§o³OÛ¸E	W?;Jôÿ\°ëH±ÿó¿A?Îÿ/0ÿ#„Ìñ/ïÿÇý?„§/³úøçpýŸ·ÿòþ´¶ÝlQ ¼.™ö_Þÿñÿê_áÈG쿨ÿóBxÀ6û´
-{üsªŸ÷Û¶ûŸPÿ¹Õ‰ŽúÉøgºÿÉÇßè ©ÿBÈ™ûŸpýïÆß…Èç°ÌÖÛp\ÿgí_æþ·ãüïFöïóaðÚW“e²ì_æþ'Ôÿ:û·Úòü¡þެ‘oÿ»ÝÿröÿÖSÿ‡p†möioõÏŽûíß%Lüo¼Åÿæƒ HüïMÿ‹Ìÿˆ!oüKÆÿÞÖÿxþ‡p†eöT
-=ø	×ÿYû/ÿ{Óÿ|àùBh¢ú›œ,’gÿ%ãoúŸaþ/õ¯pdö_(þ÷¶ÿwŽù <k›}Ú†ü¤úÙq¿ý[‹Ñÿóÿ?DÿÌÿ$oüKêùÿ€<k™=uÃpý_·ÿ’ú_`þ? N5¡ú›œ,’gÿ%õ¿Àü@4ÿÒ°ÿBú_`þ? ÏÜfŸ¶a¹ÿŸÉÿ	òÿ»ë†þ_DãÔÿèÿ	!oüËëõ?!<s™=wÃu
-®ÿ³öÐÿÿÁ(O	àÂäÙ?@ÿãó?õ¯pdö_Tÿsôÿ…ðômöio]£úÙQÿ”ÿ/ÜòÿYúAŒ?&ÿß]ÿSôÿ„5þEóÿ…{þ?®ÿž¾ÌžºQhd–ý?<ÿßøüï]àù‚­þ'kdÙÑü7ýOúÿ@¨ÿ„KÖÈ·ÿRùÿÂ=ÿý!œb›}ÚÆ[õ³£@ÿ·
-Rÿ×ßüÿ"ë?@?¢þ¯¿åÿó¬ÿ!süÖÿõ·ú¿–ë?„S,³ÏÑöö\ÌõÞþÖÿ½Ù ýcÐÁ¦Xý]N–È´ÿ‚õýÍÿ/ÐÿBý+Yãˆý—yþïoõ5óÿB(¾Í>mãûÿoDú®ü——ÿþDãŒÿ
-ôÿƒ7þ€üôÿƒP|™}ÕÆ­×ÿyûÄÿ2þB;þõßäd‘<û/ÿ«èÿÆmØÙü|þáÙÛìÓ6nu@êŸú¿8ÿ¿öôEýlüþôÿ„9þåýÿ¸ÿ‡ðìeö¹
-½u
-×ÿyû/ïÿGû‡ ]r©ú»œ,‘iÿÅýÿ"ý Կ‘5ŽØQÿ?úÿB€l³OÛ°[×T?;î·ÿ ªÿïõ?èÿA4þÿ¿x¯ÿAÿ?yã_Òÿ/ÞëÐÿd™}™Fÿ„ëÿ¬ý—ôÿ‹7ÿ?ÖÿÁCb
-À“gÿ%ýÿâ½þõ,þsmØ!ÿ¿x¯ÿAÿ?OÙfŸ¶ñ6þIõ³£@ÿ7
-Òÿþ_dãóÿôÿ„9þÅýÿ¸þcxÊ2{ІÙs1×ÿyû/îÿGûÇÐåÿ«¿Ê
-Y"ÓþËûÿÑÿõ¿ksÄþKúÿúÿB(¾Í>mÃrÿÿÈþ#4þ7PÿA  þg8þ2Ç¿¼þç¸þ#(¾Ìž©¡Åïâú?oÿåõ?Ú?c¼aüïuÉ´ÿÒú_Û¦ý#¨…#k±ÿ¢úŸ§ý#(±Í>mÊßUýì¸ßþ}nø¯<þSÇhÿ	A2þ™á¿Yñ¿¬ÿ‚!küeá¿9þÿ!rý‡Pb™­¦a¸þÏÚ¿,üwÇùߍãóaðÚT“e²ì_þ›ÿ«™ÿýÿ®M¾ýïÿÍÙÿ[ÏøgØfŸ¶a¹ÿÿjÿÖ!ëÿÆB?°þodü7„¼ñÔÿåúáËìéŽÏÿÖíPÿ—ú?§š¦ú›œ,’gÿåëÿjêÿê_áÈì¿lý_ÆÿCxæ6û´7îÿgê
-‰ÿ½ë‘ñ¿d㏈ÿ
-÷ú¿Œÿ…9þãýþ/ãÿ <s™…4Ì¡·sýŸ·ÿ‚ñ¿á^ÿ—öÁ$ê¿ËÉ™ö_0þ÷®ÿEÆÿB ÿßµ9bÿeâ½þ/ŸÿAxÔ6û´
-{èíÕÏŽûw§ÿ1ÿÙøãô?æÿÐ9þÅõ?æÿÂð¨eö|ôˆÏáú?oÿÅõ?Ú?Ûö»¯þ.'KdÚiýùÿ@Pÿ»6G쿤þÇüo³OÛx{ÄçT?;î·ÿìòùßÚóÿA?$þ÷–ÿ/*æÿƒ7þ%ãoù?bàúáð2[KCϾÄõÖþKÆÿÞòÿù@ýBYþãÊäÙÉøß[þ?c˜ÿBý+Yã€ýŠÿ½íÿcþèmöivö¥êgGAýÿß{ý_æƒ `ý_愐9þåëÿrÿ½Ìž£‘ö^ÌõÞþË×ÿ¥ýCÐÉÑÿïÂdÚéú¿&2ÿúÿ]›#ö_´þ/óB(ºÍ>mãmïÅÕÏŽÿ_›[¸ëHqü/ý¿ ÈÆ˜ÿþŸ2Ç¿|ü/ã ]fŸÝH‡?‡ëÿ¼ý—ÿ¥ýC0M`“iÿåóÿÑÿõ¿ksÄþ‹Æÿòù„Gl³OÛxãþAýolü¯§þƒ@4þÈø_ÍñG7þ€ø_>ÿƒðˆe¶¢†ý„ëÿ¬ýâ¹ÿ‡u`üï…ɳ@ü¯¢ý#¨…#k°ÿ²ñ¿Ìÿ
 á9ÛìÓ6ìè'ÕÏŽ’ú?Yÿ—þ_dãôÿ£ÿ'„Ìñ/_ÿ—ùÿ <g™6Ü¡·sýŸ·ÿòõiÿºú¿¶ú»œ,‘iÿåýÿ¨ÿC¨…#k±ÿ¢õéÿáQÛìÓ6Þ½½úÙQ`ÿ^!ã™ÿ
-‚lüúó?BÈÿòú׏ZfO×pù®ÿóö_^ÿ£ýC°:ºXý]N–È´ÿòúýÿ!Կ‘5ŽØQýù?!ÝfŸ¶ñöÏ©~v”Ôÿêôÿ!úÿÕFæøÓÿ¯Ž.³'nè|×ÿyû§ÿ_%XMýw9Y"ÓþéÿW	´ýksÄþéÿ÷úßfŸ¶að9ÕÏŽ’üŸéÿÇüodãÔÿ˜ÿBæø—×ÿøüÂñeöÄ
-Ãõ‹Lû/¯ÿÑþ!tõ?Bõw9Y"ÓþËëÌÿõ?®Íû/Zÿƒù?!<b›}Ú†åþAýo!úŸgü/Ùø#ô?Ïø_ ™ã_PÿóŒÿòˆeö¥ë5‚¹þÏÛAýÏ3þˆ¶Vûêïr²D¦ýÔÿ<ãPÿ»6G쿌þçÿµÍ>mc½Fpõ³£ÀþƒGêÔ ÈÆ§ÿê¿2Ç¿¸þçÿµÌž¥aøüo@¦ý×ÿhÿŒjSý]N–È´ÿòúÏÿ¨ÿ]›#ö_Rÿ3Ôÿ!ÚfŸ¶a¹ÿ°ßþSÊ”ÿ„úO¼åÿ³†úÑøçÉã¯c{$äøÈ‘ü'\ÿ»ñw1ÒÿB¡eöÅzé%®ÿ³ö/’ÿ„ú_gÿÞÓþ1´ý\õw9Y"ÏþEòŸPÿ‹7ýÏ0ÿ'„úW8²Æûß+ÿåìÿ×´Ðmöivé¥êgGþ¯5ÎÿOEÖ€ œÿŸcý™ã_>þ—ë?è2{ÂFZ¿†ëÿ¼ý—ÿ¥ýCÐ6Öÿ½.™ö_Üÿ/0þýÿ®Íû/ÿKÿ möioë×T?;
-ìß@ãÿ	A6þÌÿW™ãÏü• ZfOÙ0Û×pýŸ·æÿ«íSdüïuÉ´æÿ«ê׿ˆý3ÿßëØfŸ¶a·¯©~vÜoÿÁ!ã
-õ¢ñGÆÿRÿ…7þåãŸÿA ,³/ÓÐ\ÿwÚÿ£ãý$þ7ÐÿBÒLÿweòì¿|ü/Ïÿê_áÈì¿hü¯£þá	ÛìÓ6,÷ÿkú¿ƒÆÿ2ÿÙøýÿ˜ÿBæø—÷ÿs\ÿ<a™=CÃ켘ëÿ¼ý—÷ÿ£ýCб1õßåd‰Lû/ïÿGýýÿ®Íû/êÿÇüŸÊn³OÛ°;/®~vÜoÿƈþîñ¿žúÙø#ô¿p¯ÿ«9þ2Ç¿ þîõùüBÙeö™
-÷ˆÏáú?oÿõ¿p¯ÿKû‡`Û~÷Õßåd‰Lû/¨ÿuöo­býõ¯pd#ö_Fÿ÷ú¿|þáð6û´·G|Nõ³ã~ûorÓÿeÅÿZÆB?2þ—ñßòÆÿËü_/³54ÒâK\ÿgí¿|ý_Ú?­clª¿ËÉyö¨ÿKýýÿ®Íû/ÿËøÈmöio‹/U?;JêÿDdýúA?0þ—þŸ2Ç¿|ü/×Èeö|
-³u
-×ÿyû/ÿKû‡ ]r©ú»œ,‘iÿåãéÿúßµ9bÿ%ã
-ý!@¶Ù§mØ­kªŸ%õ ùÿèÿA6þ@ýþŸ2Ç¿¼þÇú ËìYfó®ÿóö_^ÿ£ýCÐÞ†úïr²D¦ý×ÿõÔÿ®Íû/šÿþ¿ÛìÓ6ìæ5ÕÏŽûíß'hýßHýhü‘ñ¿–㏠oüñ¿Ìÿ±Ì¾PÍ~ÂõÖþõéÿ!êH	àÂäÙ? þ—ú?„úW8²Æû/ÿËüž³Í>mãmô“êgGAýïšÿñ¿DãÔÿÿ!oüúŸÿCxÎ2{ʆáó¿½öÐÿ¸ÿ‡¢rÕßäd‘<ûèÔÿ!Pü¿6쿨þçÿ¿Í>mÃrÿ¿fÿÑAýÿ¨ÿ@?Rÿ£þ!oüúýÿ!à—Ù³6ÜÜK\ÿgí ÿÑÿBc4Ë\˜<ûè<ÿC¨…#k°ÿ²þÔÿ!À·Ù§m¼qÿ¿ÿï¡õ?¨ÿA?.ÿ_ þ!sü‹çÿsÔÿ À—Ùç7Œàb®ÿóö_<ÿíƒnšÀú×%ÓþKçÿ³Šúúÿ]›#ö_´þõ?å¶Ù§mXÁÅÕÏŽûO©ÿê?dãÐÿÂ]
 ÿcþ?™ã_Pÿwýùÿ ”[fOר®öÁõ¯ýÔÿÂ]ÿ£ýCh÷[ÞT—“%2í¿¼þ§iÿ¨ÿ]›#ö_TÿãúáñÛìÓ6¶«}pÿ¿bÿaü/âÂ"ÆÿVGÞø3þ·¿Ì¾`C/¾ÄõÖþÿ¦ñ¿´ZǪ¿ËÉyöÏøßZ¨…#k°ÆÿV r›}ÚÆ²G`õ³ã~û7^CüÿÂÝÿúÙøãüÿ<õ_™ã_Üÿϲþä2m¤‡|×ÿyû/îÿGûÇ`ut±ú»œ,‘iÿýÿÂMÿ‹<ÿC ÿßµ9bÿeüÿÂÝÿú?„£ÛìÓ6Æ•|¹ÿŸEàÿ0úß{ü¯¢þƒ@6þ¸üÞqüdŽñü–õ?!]f_®a¸þ÷É´ÿâùÿhÿŒr©þ»œ,‘iÿ¥ãM¤ÿ/ê׿ˆý—ŒÿÕ|þ¡Ô6û´
-Ëý‰ý'¤þ©ÿ ?°þóÿAÈÿòõ?˜ÿB©eö¤
-ÍçC2í¿|ýÚ?£Û¹¶ú»œ,‘iÿåóÿ±þ7„úW8²Æû/šÿÏÿ ”ÙfŸ¶a¹ÿ"°•› °ëH¡þ§"õ²ñÇéŽú/„Ìñ/ïÿÇüßÊ,³¯Ôp\ÿåö_ÞÿöA›¤lõw9Y"Óþ‹ûÿžÿ!Կ‘5ŽØQÿ?êÿ`ÛìÓ6Þ¸ÿßeÿNaêÜòÿ)ÍüoDã©ÿqËÿ"ó?BÈÿ’õ?nù?¢güØ2û:
-ÍõËþ]ÿÏóÿyÏý?„ö UÿMNɳÿ’õ?îùÿ4óA ñ_›ö_¨þÇmÿï,óBxÞ6û´
-Ëýÿ¬þo þÔÿ ÈÆ˜ÿú„Ìñ/ïÿGýÂó–Ù4Üæ5\ÿçí¿¼ÿí‚ö6ÐÿïºdÚùüÔÿ Կ‘5ŽØQÿ?êÛìÓ6¶k„T?;
-ì_Cõ?Ö€  þÇú/2Ç¿¼þGÿˆeöÄ
-½q
-×ÿyû/¯ÿÑþ!hgm¨þ.'KdÚùø_æÿ‡Pÿ
-GÖ8bÿEõ?>ÿƒ€ÙfŸ¶a7®©~vØ‚Öÿ5ÔÈÆ¨ÿŽ?‚Ìñ/_ÿƒÏÿ!`–Ùs4Œü]\ÿçí¿|ýÚ?„¶×]ýw9Y"ÓþËûÿ±þÖÿ½6Gì¿hýæÿ…P`›}Ú†•¿«úÙq¿ý ú_¸ëŒÿ„ „þîúã¿!dŽAý/ÜýÿøüBeö|
-—ýv®ÿóö_Pÿwÿ?Ú?´öÕßåd‰Lû/¨ÿÝóÿEÆÿA¨…#k±ÿ2ú_¸ë|þá‘ÛìÓ6Þ²ß^ýì(©ÿíþ¬ÿA6þ@ÿ?Öÿ…9þåýÿøüÂ#—ÙWhh®ÿ2í¿¼ÿí‚QMcª¿ËÉ™ö_Þÿõ!Կ‘5ŽØQÿ?æÿ€Ph›}Ú†åþ€Dÿ÷Hÿ?æƒ  ÿó?BÈÿòþÜÿC(´Ìž«a²ßÎõÞþËûÿÑþ!tþÔÿ®K¦ý—÷ÿcþ/Œÿ½6G쿤ÿŸ¦ÿ?„Gn³OÛ°Ùo¯~vØ¿·HýþdãÔÿèÿ!sü‹ëôÿÁðÈeöL
-ó˜Ïáú?oÿÅõ?Ú?kÚήþ.'KdÚyýú?ê׿ˆýÿ¥ÿ„ƒÛìÓ6ìc>§úÙQàÿk1þžùÿ€ÈÆÿËü2Ç¿|ý_>ÿƒpp™}ÝFâúß‘iÿåëÿÒþ!萚¦ú»œ,‘iÿåã™ÿõ¿ksÄþ‹Æÿ2ÿ„ÒÛìÓ6Þ¸ÿïÔÿê*Òÿ‚lüúý?!dŽyýõÿ ”^fOÞH×pýŸ·ÿòúí‚vÖRÿ».™ö_^ÿ£ÿê׿ˆý—Ôÿ4ý!`¶Ù§m¼m\Sýì¸ßþ½Ê”ÿ„úO¼éšúÑøçÉã¯C¤þ!oüEòŸpýïÆßÝü?¹þ—³Ì¾PÃ
-~ÂõÖþEòߎó¿Ù¿÷žþ?‚v±ú›œ,’gÿ"ùO¨ÿÅ›þ§©ÿA¨…#k°ÿ½ò_Îþß1ÿ/†gm³OÛ*‚ÕÏŽûÏuÿËÒÿë?@?Nÿ‹¬ÿ‚!oüËëûÏZfÏÚHßpýŸµÿòú_`þ?!xºÿ]˜<ûèŒÿ‡@ÿ¿ksÀþ‹êŽõ <i›}ÚÆÛð'ÕÏŽûPý/PÿA ¤þg8þòÆ ÿÑÿ“–Ù³6Ìè'\ÿgí ÿqÿ!ꐪ¿ÉÉ"yö_^ÿ3Ôÿ!Pÿ»6쿬þÇøÏÙfŸ¶aG?©~vÔÿ1
-²þ/õ?²ñÇÕÿ
-Ôÿ dŽùú¿Ô
 ÿ <g™E5ÌÑÏáú?oÿåëÿÒþ!˜F'Wý]N–È´ÿÒõ­¢þúßµ9bÿEëÿRÿƒðmöi–ûÿ
-ù?ÔÿÿA6þ@ýñ¿2Ç¿¼þÇø_Yf_¢‘rÞÅõÞþËë´Æ©À€×%ÓþKë&2þõ¿ksÄþ‹êôÿ‡ððmöio9ïª~vèÿ	ÿîñ¿¬ÿ A4þøßp¯ÿÁú/òÆ¿düo¸Çÿòù?„‡/³u4ô{ƒëÿ¬ý—Œÿ
-÷ø_EûG`=Ýÿ®Lžý—Œÿ½ë¬ÿ‰¡þެqÀþÅÿ†{ü/ŸÿAxî6û´÷8àúgGþ¯ÄÿÏßô¿è©ÿ ?ÂÿÏßüÿ¼æø#Èÿ‚þþæÿgùüÂs—Ù44ŸÿeØAÿ¿›ýÚ?m­6Õßåd‰Lû/èÿçïþÔÿ!Կ‘5ŽØÿ?óÿÓÌÿµÍ>mÃrÿ¿7þéÿ§©ÿA?Òÿú„¼ñ/ïÿçyþ‡€Zf_®án
-®ÿ³ö_ÞÿÏóù?„Nj­þ&'‹äÙ?Àÿú„úW8²Æû/êÿg©ÿAxö6û´{¸põ³ã~û·¹òŸ\ÿÑ1Zæÿƒ ÿLù/KÿÓÌÿ!küeò_Îú"Ïÿž½Ìž»QiÔ,û—Éçïãÿ Pü»6Yö/“ÿrô?m˜ÿóÿ]›|ûß-ÿåìÿ-Ÿÿc8Å6û´·êgGÿoÈU »žÆÿjÅú¯dãŒÿeýg™ã_<þ×ñù?„S,³PIOô.®ÿóö_<þ—öÁ(—¨^—Lû/ÿËúŸ¨ÿ]›#ö_2þ×0ÿ7„RÛìÓ6Þ¸ÿï#ðÿU
-ëÿV‡lüYÿ·62ÇŸõ+¡Ô2{¦†É;×ÿyûgýßJ0! ¹.™öÏú¿•@ýïÚ±Öÿ}}¸Í>mÃæ¿½úÙQ ÿûÜÀ]GŠýÿèÿA6þ8ÿ¿@ÿO™ã_Þÿù? <p™}•†\ÌõÞþËûÿÑþ!è¦‰Ô ®K¦ý—öÿkÛ´õ¯pd#ö_Ôÿþ¿Êm³OÛx\\ýì(°ÿˆ©ÿq¯ÿkèÿA4þúþ^ÿƒþŸòÆ¿dý¯ÿÁü_Ê-³¯Þ¸y
-rýŸµÿ’õ?ü½þ÷ÿºøßêor²Hžý—¬ÿqÿÕôÿ@íÿÚ°ÿBõ?ü½þý!<}›}ÚÆÍk°úÙQÿ¤ÿÝëÿvþ¿ÔÊ#dýßÈñG7þåëÿ>ÿ‡ðôeö„
-Ãçö_¾þo`þ?.
 \ È
-Y$Ïþõùüõ¿ksÀþ‹ÖÿeþOÜfŸ¶a¹ÿŸ³Õÿ4õ¢ñGêžã oüËëžÏÿ <q™=o#qý_·ÿòúý18Õ4Õßäd‘<ûèŒÿ‡@ýïÚ°ÿ²úŸÿAxæ6û´7îÿ§ößhŒþïúã?!ˆÆ¢ÿÅ[þ?Åøoyã_Rÿ‹wÿ?>ÿƒðÌeö<´ô×ÿYû´þFöï=íCÛï!V—“%ò쿤þïúŸÿA þwmØ!ý/Þõ?ÆÿC€n³OÛx[z©úÙQPÿÇbêÖÿ "`ý_Öÿ€9þåëÿòù?è2n¸ãŸÃõÞþË×ÿ¥ýC°íbK
-àºdÚéú¿¬ÿ¢þެqÄþ‹Öÿeþ_ØfŸ¶ñvüsªŸù?­ÁÕÿU‘úÙøãêÿzê2Ç¿xý_Ëó?„,³¯ÙÐ\ÿ;2í¿xý_Ú?Rª¿ËÉ™ö_ºþ¯‰Ôÿ Կ‘5ŽØÉú¿šú„ÒÛìÓ6,÷ÿýß9¤ÿë@?Îÿϳþ„Ìñ/ïÿÇý?„ÒËìóúŸÃõÞþËûÿÑþ!ضßMõw9Y"ÓþKûÿ™ÈüŸê_áÈG쿨ÿó@8¼Í>mÃ>âsªŸöo úë@?Pÿcý™ã_\ÿ³Ìÿáð2{î†æú¿N¦ý×ÿhÿL
-‘úßuÉ´ÿòúý!Կ‘5ŽØQýõ? <f›}Ú†åþÿo£èÿW²ñ§ÿ_mdŽ?ýÿ*á1Ëì+4\λ¸þÏÛ?ýÿ*Á8Åú&ÓþéÿW	õ¯pd#öOÿ¿×çáÛìÓ6ÞrÞUýì(ÐÿAõoú_û:õ¢ñ‡Ôÿ½é!²þ/„¼ñ/Yÿ÷¶þßò?rý/Ï×ÙZæÖàú?kÿ®ÿëÇúŸ÷Ôÿ ´ã_ÿMNɳÿ’õïúŸ¢ÿ/Öþ¹6ì¿PýßÛþßYÖÿ…ðìmöi÷ðáêgGþŸþ›Qÿ¡}ñŸDãÑÿü]ÿcü7„¼ñ/©ÿù»þÇõ³—Ù7:‡A®ÿ³ö_Rÿówýú?ímSýMNɳÿ’úß½þ‡fü„úW8²Æû/¤ÿù»þÇøÏßfŸ¶Ñ9V?;
-ì_yÖÿ­Ùø³þomdŽ?ëÿVÂó—Ù'7Ìê5\ÿçíŸõ+A[«™ÿïºdÚ?ëÿVýÿ®Íûgýß×µÍ>mÃrÿ¿·þwn pבbýþdãÔÿèÿ!süËëôÿƒ€ZfÏ×H{.æú?oÿåõ?Ú?lbþ¿ë’iÿåõ?úÿA þwmŽØQýÏÿ ßfŸ¶ñÆýÿ7²üŸÈü†õ? ˆÆ™ÿõ? äùüÏÿ!_f_¶‘º×ÿYû/Ÿÿ/ðüÁ(O	àÂäÙùüšõ? Ðø¯Íû/šÿÏ1ÿ„§o³OÛ¸Õ©~vÜoÿ6Aõ?Öÿ€ œþë@È€þÇõÂÓ—Ù6ŸÿmØ?@ÿ£þÁM	àÂäÙ?@ÿcýõ¯pdö_Vÿ£ÿ?„'n³OÛxãþNÿ7¹@ºŽÇÿÒÿ‚lüñ¿ôÿ„9þåã™ÿ—٧7ôö5\ÿçí¿|ü/í‚ö)2ÿßuÉ´ÿòñ¿|þ¡þެqÄþ‹ÆÿÒÿ`›}چݾ¦úÙQ`ÿXÿC+æÿƒ œþ˜ÿBæø×ÿøü`™=Q#IßÅõÞþ‹ë´¦Ýk± ðuÉ´ÿÒúŸUŒÿ‡@çßksÄþKê†ùÿ ÙfŸ¶ñ&}Wõ³ã~û7*7 ¸ëHaü¯Vôÿ‚ „þwÿõôÿ„9þõ¿p×ÿÿ¡È2{²†Î;×ÿyû/¨ÿ…»þGû‡`B0®ú»œ,‘iÿõ¿{üo¤ÿ„úW8²Æû/£ÿ…»þGÿ_ÜfŸ¶aóß^ýì(©ÿ­ñ¿ôÿ‚ œÿŸ£ÿ'„Ìñ/îÿg˜ÿ—Ùmh®ÿrû/îÿGûÇ MºÀ]N–È´ÿâñ¿þ?hû׿ˆýÿ¥ÿ/Ø6û´
-ËýÿÎúßÿ¿÷ø_Öÿ€ `ü/ë@Èÿòñ¿|þ¶Ìž¬áøüïF¦ý—ÿ¥ýCÐѱ È…É´ÿòùÿ¨ÿC¨…#k±ÿ¢ñ¿Ìÿ¡ð6û´7îÿoümƒŒÿeü'Ùøãâã¿!dŽùø_æÿ‡Px™}jCœíëÿ^û/ÿKû‡`ÛÅ–úßuÉ´ÿÒñ¿ímIûG@Û¿6Gì¿hü/ãÿ!<`›}Ú†8Û÷ÿkú²ôÿ«ÙøÓÿ¯62ÇŸþ•ð€eöeIþ.®ÿóöOÿ¿Jh{ÝÙêïr²D¦ýÓÿ¯¨ÿ]›#öOÿ¿×§À6û´7ù»ªŸö¯2ÿ_ þƒ@6þ8ýÏŽ?‚Ìñ/®ÿYæÿP
 `™}¥†Û¸†ëÿ¼ý×ÿhÿ´³–õ¯K¦ý—×ÿXÿBý+YãˆýÍÿGÿ˜möio×T?;î·ÿ”+ÿ	õŸxÓÿõ?¢ñÏ“ÿ2Æ_GEýBÞø‹ä?áúߍ¿‹Ìÿ³Ìž¾¡^âú?kÿ"ùO¨ÿuöï=íƒnWfSý]N–ȳ‘ü'ÔÿâMÿ3Ôÿ Կ‘5Øÿ^ù/gÿï˜ÿv›}Ú†]x©úÙq¿ý7¹á¿ÔÿNŒhü©ÿUGÞøSÿ«ì2{Ò†Y|‰ëÿ¬ýSÿ«­cÕßåd‰<û§þWŒÿ½6ìŸú_ ·Ù§mØÅ—ªŸþ¿&"óÿQÿ `ü/õ_™ã_>ÿŸâú ¹Ìž­‘¶¯áú?oÿåóÿÑþ!hŸ¢¯þ.'KdÚùø_žÿ!Pÿ»6Gì¿hþ?êÿ ÛìÓ6Þ¶¯©~vèÿØø_Öÿ… ¤ÿëÿBÈ€ÿ÷ÿ Ëìùnñ%®ÿ³öðÿ£ýCèüÿ˜ÿïºäÙ?Àÿõ Կ‘5ØYÿ?Öÿ…€ÜfŸ¶±,V?;î·ÿ` úýÿ ˆÆ§ÿÖÁ7þ ýþ?Ëìù!ëÿ¬ý?Zÿóýϳþ'„Ëÿ^˜<û/¯ÿ1ÿ?†úW8²Æû/«ÿÑÿÂS¶Ù§mL„ÀêgGÿ¯W¬ÿ[²ñgýßÚÈÖÿ­„§,³Ïn¸ÝsýŸ·Öÿ­«¿ËÉ™öÏú¿•Pÿ
-GÖ8bÿ¬ÿûú”ÜfŸ¶ñ¶ûâêgGþŸ+ÿåùÿ)ê?Dãôÿsyã_ÞÿÏÓÿBÉeöõzü®ÿ³öðÿãþB©þ›œ,’gÿ ÿ?KûG@ã¿6쿨ÿŸ¥ÿ?„§l³OÛ˜©~vÜoÿÆç w¹_ÿ	¬ÿD6þÿ¿Àú@2Ç¿ ÿ_`ý OYf‰’—×àú?oÿýÿë ±¦íìêïr²D¦ýôÿ¬ÿ¤þެqÄþËøÿÖÿ rp›}ÚÆrI_îÿûHêÿXÆÿV‡lüÿ[™ãÏøßJ8¸Ì¾v#m^ÃõÞþÿ[	ÚÛÀ€×%Óþÿ[	¬ÿ{mŽØ?ã_Ä6û´·ÍkªŸöŸÐÿO3þ‚lüqþñ¿2Ç¿¼ÿã! –Ù“4\Æ»¸þÏÛyÿ?Ú?„ö¼å}õw9Y"ÓþKûÿYÅø_õ¯pd#ö_Ôÿñ¿¿Í>mc[íãþÍÿ×aòÿÝô¿öBê?DãÉÿîùÿ,ÇAÞø—ÌÿîùÿøüÂã—Ù:ïñÃ\ÿgí¿dþ¿pÏÿGÿ?VESýMNɳÿ’ùÿîñ¿ÚÐþԿ‘5Ø¡üážÿÏÿ <y›}ÚÆ{üpõ³£Äþ=2ÿý¿ ÈÆèÿGÿO™ã_ÞÿûO^f6Ì#>‡ëÿ¼ý—÷ÿ£ýC°m¿S ¼.™ö_>ÿý 0þ÷Ú±ÿ¢þôÿ…px›}Ú†}ÄçT?;î·ÿ¨¡õ™ÿ
-‚hü‘õ™ÿBÞø—¯ÿ˜ÿÂáe¶žFâú¿×þõyþ‡¢ŠÕßäd‘<ûÔÿ¥ÿ?ê׿€ý­ÿë˜ÿ~›}ÚÆ÷ÿ«ú¿Q8ÿ?ÕÕÿ¢þSÙøëÿjŽ?‚Ìñ/îÿgùü~™7Žæú?oÿÅýÿhÿLÒ¡þ»œ,‘iÿåýÿøümÿÚ±ÿ’þšù? <j›}ÚÆ±BÀÕÏŽûשÿÑÿ‚lüúý?!dŽyýë?„G-³'nèoçú?oÿåõ?Ú?µ
-Õßåd‰Lû/¯ÿÑÿBý+YãˆýÕÿèÿáqÛìÓ6ŽW?;Jì?"óÿ±þÙøõ?ց9þåóÿqÿáqËìYæÈÛ¹þÏÛùü´&—ª¿ËÉ™ö_^ÿcþŒÿ½6Gì¿hþ?æÿ…ð°möiöÈÛ«Ÿ÷Û¿
-Èú¿Ìÿ‡A4þÈú¿ôÿ„7þåëÿ2ÿ†‡-³54×ÿ
-ûÔÿeþ?.(Ê&Ï
 þõéÿ¡þެqÀþ‹Öÿåó?OÜfŸ¶a¹ÿŸ±ÿ[þ7£þC»#`þ?¢ñÇÕÿˆŠùÿ ä? þóAxâ2{º†áó¿ö_¾þGàóI7,ÿ{aòì¿|ýÃçèÿwmØÙúÌÿá	ÛìÓ6,÷ÿ+öŸ°úã?!ˆÆ©ÿ1þBÞøô?>ÿ‡ð„eöŒ
-³ð×ÿYû´þ¦úí‚nWf
-€×%ÏþúõÔÿ®Íû/«ÿ1þv›}ÚÆRŽÀêgÇýö¯›Ü à®#¥ùÿ4ý¿ ÈÆ—ÿ/ÐÿBæø—ÏÿÇø?Øeöi
-ùv®ÿóö_>ÿíB;Õ& _—Lû/ÿÏ*úÿ@¨…#k±ÿ’ùÿ,ý!<v›}Ú†åþýŒþçïõ?¨ÿA?Bÿó÷úÔÿ dŽAýÏßëÿòüá±Ëìk5Üö5\ÿçí¿ þçïõiÿ´OÑW—“%2í¿ þçïõ?¨ÿA¨…#k±ÿ2úŸ¿×ÿ þ°Í>mãmûšêgGý«Dý¯:dãOý¯62ÇŸú_% –ÙS7ôú5\ÿçíŸú_%h›Œ«þ.'KdÚ?õ¿J¨…#k±ê¯h›}Ú†]¿¦úÙQPÿ§Öÿ¥þA4þ¸ú¿¬ÿ"oüõYÿh™}©Fâú¿aÿåëÿ²þ4S€]˜<û/_ÿ—ç4þksÀþËÖÿ¥þá‰ÛìÓ6Þ¸ÿŸ«ÿ“þ›Qÿ¡Ýê?D㏬ÿa8þòÆPÿƒë?„'.³§k8>ÿÛiÿ€ú¿Ôÿ!$Ý0ü÷ÂäÙ? þ‡¦ý#¨…#k°ÿ²õ?Xÿ¶٧m¼qÿ¿æÿ›ã«C6þŒÿ­Ìñgüo%<a™}ZCËßÅõÞþÿ[	m¯»úïr²D¦ý3þ·hû׿ˆý3þ÷õ)°Í>mc©È/÷ÿ»ôÿÜôYþ]ýê?å?ÒÿÏqüä?Àÿ/pýGP`™}ÕÆ\`®ÿ³öðÿãó©]i«¿ÉÉ"yöðÿ£ÿ/„úW8²Æû/ëÿÇçðÛìÓ6æjW?;
-ôÿ\ùOžÿMÇhÿ	A2þ™ò_Nþ¿ ÿ
-!küeò_Nþùü~™}¥†áú?gÿ2ù/#ÿ—wŒÿÇPÿ—¬‘eÿ2ù/'ÿŸ6Ôÿ!0ÿߵɷÿÝò_ÎþßzÆÿC8Å6û´
-[ýì¸ßþ
-(ÿß{ýÆÿB?®þGˆŒÿ…7þåëx>ÿƒpŠeö„
-wopýŸµÿòõ?<ý!Øve®þ&'‹äÙùúšú?„úW8²Æû/[ÿƒÏÿ!<y›}ÚÆÛ½Qýì¸ßþS„ÆÿRÿƒ dü/õ?yãˆÿ¥þáÉËìYiá%®ÿ³öÿhý/Lãiÿt·2W—“%òìÿKýýÿ®Íû/ÿë©ÿAÀn³OÛx[x©úÙQPÿ;; ¸ëH©ÿŸ¦þA4þHÿ?ê¿òÆàÿÇü?°ËìË4Ò{ƒëÿ¬ýüÿíõ)V““EòìàÿÇó?ê׿€ýõÿ³Ôÿ!<w›}ÚÆ»û÷ÿ=ýß ýÿë?@?Òÿõ_ ä?ÀÿçÏ]fÏÓpó/qýŸµ€ÿí‚î’-U—“%ò쿼ÿŸ¦ÿ/„úW8²Æû/[ÿƒÏÿ!€·Ù§m¼Í¿Týì(ˆÿ×6S ì:Rêÿ#õ²ñÏ åã¯oþ_ÿòdŽ¿H ìXöüÏ+ËüßÀËì3æÀÛ¹þÏÛ¿H ì:r¿þw³ÿ@ûÇ`¢¶¡ú»œ,‘iÿ"pÛþ§þ‘ú?úÿ]›#ö_°þŸ×ÌÿáqÛìÓ6쁷W?;
-ôõÿcý_¢ñÇùÿ…Èú¿òÆàÿÇø[f_»¡ç_âú?kÿ ÿ?Ú?„Îÿ¯þ»œ,‘gÿ ÿ?êÿhû׿€ý—õÿcý_àmöivþ¥êgGýƒòÿ½ëôÿ‚ ¤þGÿOyãÐÿ¸þC /³§m˜ù—¸þÏÚ?@ÿ£ýC þwmòì ÿÑÿýÿ®Íû/«ÿÑÿx›}Úõ¿-ûw¹á¿Yñ¿†ùß ˆÆYÿƒù!ä? þ÷ÿÀËì+4×ÿ-ûÔÿ ÿßö{õ79Y$Ïþõ?˜ÿõ¿ksÀþËÖÿ`þOÏÛfŸ¶ñÆýÿœý‡õÿ£ÿÑø#ëÐÿBÞøüÿxþ‡ð¼eö|Äç;í¿¤þ÷îÿÇú’n|õ79Y$ÏþËûÿúÿ@ þwmØYÿ?>ÿ‡ð„möioÜÿ¯Ø¿vRÿÃwúŸ¦þƒA6þˆúþ^ÿƒú/„Ìñ/XÿÃßê0ÿ†',³'h,Tûåú¿×þÖÿ¸Ù ýcÐÉY
-€×%ÓþÖÿð÷ú<ÿC¨…#k±ÿ2õ?ü­þõE·Ù§m,TûåþÍÿ7×ýOîÿ¥c´¬ÿ A2þ™îYùÿ4ë¿@È™û_Îó¿[ü7×ÿò]f_½¡¹þÏÚ¿ÌýoÇùߍýÿëbðÚT“e²ì_æþ—ãÿ§-õõ¯pd|ûßíþ—³ÿ·ÌÿáÛìÓ6lý³£@ÿ·¹	 »®úÿ)ÖÀ  ÿý?!dŽqÿ?Ëõ–٧4ŸÿudÚqÿ?Ú?Rª¿ËÉ™ö_Þÿú?Æÿ^›#ö_Òÿõ0”ÞfŸ¶a¹ÿïØ¿‡Æÿ²þÙøãô¿Àú/2Ç¿|ü/÷ÿJ/³'lhÁÅ\ÿçí¿|ü/í‚nšª¿ËÉ™ö_^ÿcþõ¯pd#ö_4þ—õ ”ÛfŸ¶aW?;î·ÿè¡õ?ÿA4þÈúŒÿ…7þ€úŒÿ…Pn™}µFâú¿Ûþõ?¸ÿ‡ÐÝT““EòìPÿƒñ¿èÿwmØÙúôÿ‡ ßfŸ¶ñÆýÿºþo0úß=þW3þ‚hü!úßÍÿ/ÆCÈÿ’úßíù_ôÜÿC€/³¯Óèü¹þÏÚIýïæÿçÛËhÿ ´·ÿ½0yö_Rÿ»ûÿ)ÆÿA¨…#k°ÿBúßmÿï,ýÿ!<›}ÚFç'Xýì(°ÿÔ@âÃ-þ—úÙø#âÃ=þ—ú„Ìñ/ÿnñ¿Ôÿ0<™E5Lλ¸þÏÛÁøß›ýÚ?ãÚ¡©þ.'KdÚÁøßÎþ­¥þ‡þ׿ˆý—‰ÿ
-·ø_ê¾Í>mCöËýÿÔþÁÔÿ¸ëŠùß ÈÆ§ÿy愐9þÅõ?Ëý?„‡/³gk¤Coçú?oÿÅõ?Ú?“t°Õßåd‰Lû/­ÿ™ÈøÔÿ®Íû/©ÿiæÿ„ð¨möio‡Þ^ýì(°­púŸŠÔ ÈÆ¨ÿQÿ…9þåõ?>ÿƒð¨eöÌ
-—ÿv®ÿóö_^ÿ£ýC0!˜Xý]N–È´ÿâú_àùBý+YãˆýÕÿ¨ÿCxà6û´·ü·W?;î·ÿ”ëþ—Qÿ¡Ýxê?D㏬ÿ¡9þòÆPÿƒë?„.³/ÝHó/qýŸµÿGçÿ¬ÿñ$t;ÙÒÿïºäÙ? þóB ÿßµ9`ÿeë°þð6û´°úÙQÿo#ÄÿÏßã™ÿ‚lüþþîÿÇü2Ç¿ ÿß-ÿ¿rÌÿ¼Ìž¦aøüïF¦ýôÿ»Ù ýcÐÑ©Tý]N–È
 ´ÿ‚þ÷ú‘ñÿ¨ÿ]›#ö_ÆÿïVÿÃúÿC(¼Í>mÃrÿc¿ý7¹á¿yþÔÿ ˆÆçÿ"õ?yãðÿãùBáeöEné%®ÿ³öðÿ£ýChû=0þ÷ºäÙyÿ?MýBý+Yã€ý—õÿ£þºÍ>mãmé¥êgGþßxdý_æƒ `ý_愐9þÅóÿ9îÿ!@—Ù'6RÞÛ¹þÏÛñü´ÆùØT—“%2í¿|ý_ÆÿC ÿßµ9bÿ%óÿæÿ„ðàmöioÜÿÏ"©ÿƒ‰ÿ}¯ÿKý‚lüúõ_™ã_^ÿãó?^fÏÖÈ”ý¸þoØyýöÁ¤}õw9Y"ÓþË×ÿåùõ¿ksÄþ‹êÔÿ!<f›}ÚF¦ìÇýÿŒýçÊ9úŸêâÿ©ÿ”G4þøßpÿ
-yã_2þ7Üã™ÿÂc–ÙúéÞàú?kÿŽÿõcýÏ{žÿ!XEùïÊäÙÉøß»þ§=íõ¿ksÀþÅÿ†{ü/ó@xò6û´÷ˆàêgGý«Ü€]GJõ¿ÈüdãóÿsÌÿ!sü‹ûÿY®ÿž¼Ì‚šÏÿÈ´ÿâþ´mW_à.'KdÚqÿ¿Àø´ýksÄþKúÿiúÿCxè6û´Õ>¸ÿ_³×0ÿ_uÈÆŸùÿj#sü™ÿ¯ºÌž©aò9\ÿçíŸùÿ*Áêè\õw9Y"Óþ™ÿ¯èÿwmŽØ?óÿ½>G·Ù§m؇|Nõ³£ÀþsËäÅÿRÿƒ dü/õ?yã_>þ×óüáè2[kã]>äú?kÿ€ø_ÆÿA°*šêor²Hžýâ©ÿA þwmØÑø_Ký“·Ù§m¼Ë‡ÕÏŽ‚ú?ÿëÿD6þÿ?Ïø_ ™ã_ÐÿÏ3þÈ“—Ùç6ôæ5\ÿçí¿ ÿŸgü/ím¨ÿ.'KdÚAÿ?Ïø_ ´ýksÄþËøÿyÆÿAl³OÛØö¬~vÜoÿ.`üÿâÝÿþ_Dãñÿ‹7ýOÑÿBÞø—ôÿ‹÷ú\ÿ! –Ù×j8ÅõËþKúÿÅ›ÿ_ þÁËú&ÏþKúÿÅ»ÿý Կ‘5Ø!ÿ¿x¯ÿAÿ_OÛfŸ¶ñ¦¸ÿŸõÿµ˜ÿúÙøãòÿyê¿2Ç¿|ý>ÿ‡ð´eÑÈ.ûÁõÃþË×ÿ ýC0MhBõw9Y"Óþ‹×ÿˆ<ÿC¨…#k±ÿ¢õ?¨ÿCxÄ6û´ì²ÜÿÏøÿZŒÿß=þWSÿ ˆÿŸ¿çÿ£þ
 !oüKúÿù{þ?úÿAxÄ2[i£KÈõÖþKúÿù{þ?úÿAèâ«¿ÉÉ"yö_Òÿïÿ«xþ‡Àü׿€ýòÿó÷üÔÿ!<›}ÚF\ýì¸ßþhüo—ÿ‡úOyD㏌ÿõyãˆÿåþÂó—Ù§74ŸÿIíÿÑú_˜ÆÿÒþ!hcRªþ.'KäÙùøß.ÿí¿<õ¯pdö_4þ·½Œö ·Í>mÃrÿ¿Çþcnøo^þ?Öÿ€ œþ"ë@È€þGÿ¸eöìÙ`a®ÿ³öÈÿÇý?„¦]k«¿ÉÉ"yöÈÿÇøõ¯pdö_6ÿã À·Ù§mÌW?;
-ü›Ìÿ×Õÿ¡þSÙøãòÿuõß8þåÉÿâùÿøü|™}NÃd¾ëÿ¼ýÏÿGûÇÐNµôÿ»0™ö_:ÿŸíâ?hÿåaüïµ9bÿ%óÿY>ÿ‡ðØmöi–ûÿy$öïõ?èÿA6þ@ýþŸ2Ç¿¸þç¸ÿ‡ðØeö¼
-Çõ–Lû/®ÿÑþ1´G­ØT—“%2í¿¼þGÿõ¯pd#ö_Rÿ3ôÿ…ðàmöioÜÿÏ"¨ÿíÿ‹øƒ°ˆÆŸñ¿Õ‘7þŒÿ­…/³4Œâú¿eÿŒÿ­¬©þ&'‹äÙ?ãkþ׿€ý3þ·ž¶Í>mÃ*îÿgõÕ@üÿüÝÿñ¿dãðÿ»Õÿžñ¿2Ç¿ ÿŸ¿ûÿñüáiËìIfý®ÿóö_ÐÿÏßýÿhÿ´MÆU—“%2í¿ ÿß½þo¤ÿ/ê׿ˆý—ñÿówÿ?>ÿ‡ ÚfŸ¶aׯ©~vØL@ýO+ê?dãÓÿ‚ãø#ÈÿòúŸÿC -³çh8ñ»¸þÏÛyýöÁo©\—Lû/­ÿYeiÿê_áÈG쿨þiÿJl³OÛx¿«úÙq¿ý·ö‰Ëÿ§"ý¿ ÈÆ—ÿÏÓÿBæøÏÿg×%–Ùó4ÜÑÏáú?oÿÅóÿÑþ1˜F§Xý]N–È´ÿÒùÿL¤ÿ„úW8²Æû/™ÿOÓÿÂC¶Ù§m¼qÿ¿Àþ5´þýÿ ÈÆ¨ÿÑÿBæø—×ÿèÿá!Ëì¹îÀÛ¹þÏÛyýöÁDmYÿãºdÚyýþê_áÈG쿨þGÿ?ÛfŸ¶ñvàíÕÏŽ’ú?˜øß»þ§Yÿ‚lüõYÿBæø×ÿ<ŸÿCxÜ2{êF®# ×ÿyû/®ÿÑþ1´SmÃøßë’iÿåëÿRÿ‡Pÿ
-GÖ8bÿ%õ?Ëú»Í>m#×°úÙQ ÿ{¨ÿý¿ ÈÆ¨ÿÑÿBæø×ÿXÿÃc—Ùó4Üc>‡ëÿ¼ý×ÿhÿ¬1žþ×%ÓþËûÿÑÿBý+Yãˆý—Ôÿý!ÜfŸ¶ñö˜Ï©~v”äÿ4¬ÿ[²ñgýßÚÈÖÿ­„ƒËì‹5´ô]\ÿçíŸõ+Á´{­Pý]N–È´Öÿ­„úW8²Æûgýß×§È6û´j¿Üÿ¯éÿN3ÿ_uÈÆŸùÿj#sü™ÿ¯Š,³çh˜|×ÿyûgþ¿J°*šúïr²D¦ý3ÿ_%0öÿÚ±æÿ{}Žo³OÛ°øœêgÇýöïb¦ü'Ôâ­þ¯ñÔˆÆ?OþË•æø#È‘ü'\ÿ»ñw1pÿáø2[[#)®ÿ[ö/’ÿvœÿýÈþ½Œÿ…àƒõÕßäd‘<ûÉBý/Þô?Cÿ_Ôÿ®Íûß+ÿåìÿ[hÿž¶Í>mãMqÿ?ëÿk0õ?ÞãYÿ‚lüñ¿¬ÿ!süËÇÿÒÿÂÓ–Ù§74Ÿÿ}“mÿåãiÿt°ÉU—“%2í¿|ü/ý!Կ‘5ŽØÑø_>ÿƒP|›}Ú†åþÿ‰ýûÜðß<ÿ?ÆÿB?Îÿ/DÆÿBÈÿòþžûÅ—ÙWk¤ÁO¸þÏÚyÿ?Ïü_‚v±ú›œ,’gÿåýÿ4ýÿ!ÐÿïÚ°ÿ¢þ–ñ¿žµÍ>mãmð“êgGþ¯-ÎÿOEÆÿB?Ðÿñ¿2Ç¿¸ÿŸåþ³–Ù“4¶rrýŸ·ÿâþ´ÚYËú×%ÓþËûÿ1þõ¿ksÄþKúÿiÆÿBÀl³OÛØÊXýì(ÐÿsËÿæùÿQÿ ¤ÿõ_yãðÿãó?˜eöuzø®ÿ³öðÿ£ÿ/„<å¿“gÿ ÿ?žÿ!Կ‘5ØÙüÔÿ!<i›}Ú†þ¤úÙQ ÿ'Lþ¿{ý_m¨ÿ ?®þo™ã_¼þ¯çúáIËì:ç]\ÿçí¿xý_Ú?ãÚ¡©þ.'KdÚéú¿V1þBý+Yãˆý—¬ÿk™ÿÂ÷٧mØœwU?;
-êÛÜÀ]GJõ?Eÿ/²ñêôÿ„9þÅõ?Çø?_fOÔ0Ç?‡ëÿ¼ý×ÿhÿlk%©ú»œ,‘iÿåõ?êÿÿ{mŽØIýÏÐÿ¶٧mØãŸSýì(°ÝPÿ«ÙøSÿ«Ìñ§þW	XfOÞHGÞÎõÞþ©ÿU‚‰ÁS¸.™öOý¯hû׿ˆýSÿ{}¶Í>mãíÈÛ«Ÿþ¿Þãêhe©ÿ ?°þGäø#Èÿâõ?ýÿ!<l™}¡†@äú?oÿÅëÐþ1èÆù¦ú»œ,‘iÿåë0ÿ'ê׿ˆý—¬ÿaíAÁmöiE°úÙQ`ÿ.· Hבâú¿Ô ÈÆ¨ÿQÿ…9þåëÿ2ÿ„‚Ëì™nçÅ\ÿçí¿|ý_Ú?c«¿ËÉ™ö_^ÿãùBý+Yãˆý­ÿKýBÙmöio;/®~vÜoÿ*·ü¯\ÿÑ1ZEýdü3ËÿæèA9Ž?‚¬ñ—•ÿÍYÿCàú¡ì2ûêú½#²ì_Vþ7ãüï]àùBý;\²F–ýËÊÿæèí¿hÿhÿ×&ßþw—ÿÍÙÿ[iÿN±Í>m£þ'£ý¿±Èü¬ÿ
-A6þÀü¬ÿ!süËçÿcþ§Xf
-“÷v®ÿóö_>ÿí‚q>†êïr²D¦ý—ÏÿÇøõ?á"k±ÿ¢ùÿèÿáÁÛìÓ6,÷ÿ³Hòbòÿ½ë¬ÿ A6þ8ýϳþ„Ìñ/®ÿY>ÿƒðàeöŒtàí\ÿçí¿¸þGûÇ`¢¶Ìÿw]2í¿´þg"õÔÿ®Íû/ªÿ±þ„Çm³OÛx;ðöêgGþ¯óÿU‡lü™ÿ¯62ÇŸùÿ*áqËì‹6×ÿûgþ¿JÐÖj_ý]N–È´æÿ«„úW8²Æûgþ¿×µÍ>mãûÿ}öosËäøÿ)Íø_¢ñÏL ("ã!䍿,`7ÀÂçÑóù?Ô2ûR
-ÍõÝþe	 »Ž\?ÿû±ÿŸ÷ÌÿÁ©†á¿&Ïþe	 ·íêÿ§ÿ¡þެqÀþw' ܲÿ™ý¿ãó?ÏÜfŸ¶a¹ÿŸ«ÿípþZQÿ  ÿõ_™ã_ÜÿÏÑÿÂ3—Ùg5Üþ‹¹þÏÛqÿ?Ú?Ý8Ïøßë’iÿåýÿxþ‡Pÿ
-GÖ8bÿ%ýÿõ·Ù§m¼í¿¸úÙQbÿ˜úžùÿ€Èƨÿ1ÿ„Ìñ/ÿËü_
-.³§m˜ýsýŸ·ÿòñ¿´þGÀë’iÿåõ?úÿC`þ¿ksÄþ‹ê|þ¡à6û´
-»ÿâêgGýLjÔÿ˜ÿ‚lüqú_`þ?™ã_ÞÿÏÿ!\fÏ×0âwqýŸ·ÿòþ´Æx“ª¿ËÉ™ö_Zÿ³Šùÿ Pÿ»6G쿨þÇüJl³OÛ°âwU?;
-ìßë0þ„lüÿ[™ãÏøßJ(±Ì¾BCsý¿‘iÿŒÿ­¢þw]2íŸñ¿•Pÿ
-GÖ8bÿŒÿ}}
-o³OÛ°Üÿߐèÿšñ¿Õ!ÆÿÖFæø3þ·
-/³gk$>ÿ’iÿŒÿ­£½ŠÕßåd‰Lûgüo%ÐÿïÚ±Æÿ¾>e¶Ù§m¬WûåþÅþ]ƒ©ÿoõ
-ã!ˆÆRÿ7Þô?Åø_yã_²þo¼Õÿ
-|þ¡Ì2ûaŒ0×ÿYû/Yÿ7Þêÿžÿ!„v ª¿ÉÉ"yö_²þo¼é†ñ¿¨ÿ]›ö_¨þïmÿïã!<k›}ÚÆ0F¸úÙQ¢ÿCëPÿ  ÿõ_™ã_>þ—þÿžµÌ>§a¤ïâú?oÿåãiÿL»×býë’iÿåýÿxþ‡@ýïÚ±ÿ¢þÔÿ!ÙfŸ¶a¥ïª~vØ¿êªóÿ§þSÙøõ?ÅñG9þåã¹þC(²Ì¾T#qý—Ûùø_Ú?m’²Õßåd‰Lû/®ÿÆÿC þwmŽØIýO[Ú?Ø6û´7îÿwÙ¿±˜üá®ÿÑÿ‚lüú_¸ëôÿ„9þõ¿p×ÿÿ¶ÌžOÛãó¿o²í¿ þîúí‚itbþ¿ë’iÿõ¿p÷ÿ£þúßµ9bÿeô¿p×ÿèÿá!ÛìÓ6Vµ=îÿ¿éÿ:7`בŒÿ='²ñgüomdŽ?ã+á!ËìË6ÒÖ5\ÿçíŸñ¿• ]òÔ ®K¦ý3þ·hû׿ˆý3þ÷õl³OÛxÛº¦úÙQ ÿƒâßýÿõ²ñúÿŽ?‚Ìñ/ïÿÇüÿ ËìÓÒ²¿\ÿ7쿼ÿíBÛÕŒÿ½0™ö_Þÿú?ê׿ˆýõÿ£ÿ?„‡n³Oې–ýåþÎþ¡ñ¿ÌÿA6þ@ýùÿ dŽyýÏÿ <t™=mÃpý_ ÓþË봝þWÿ]N–È´ÿâúóÿa þwmŽØQýùÿ <t›}Ú†åþÿ¯SÈúžúÙøã5ÇAæø—¯ÿÁõÂC—Ù×ièsýŸ·ÿòõ?hÿtlLýw9Y"ÓþËÇÿ*Ú?Úþµ9bÿEëÐÿBÙmöi{W?;Jâÿ2ÿã?!ÈÆ¨ÿ1þBæø—ÏÿÇý?„²ËìÙnë®ÿóö_>ÿíóÿ]›Lû/¯ÿ1þBý+YãˆýÍÿÇømöiÌÿ'©ÿ‰ÿ}÷ÿ£þA6þ8ýÏQÿƒ9þåýÿxþ‡ YfOÝ0\ÿåö_ÞÿöA›t»œ,‘iÿÅõ¿@ýµÿksÄþ‹úÿQÿƒ ÛfŸ¶a¹ÿßéÿ‹©ÿñîÿÇüodãôÿcþG™ã_^ÿcý?°eö\´ób®ÿóö_^
 ÿ£ýCèâYÿãºdÚyÿ?ÆÿC þwmŽØQýù?!”ÝfŸ¶ñ¶óâêgÇýörÝÿ„úO¼ùÿæƒ ÿ<ù/cüu`þGyã/’ÿ„ë7þ.z®ÿÊ.³¯Ö0ãŸpýŸµ‘ü·ãüïGöï½§þ!†TÿMNɳ‘ü'ÔÿâMÿcþ/Ôÿ®Íûß+ÿåìÿó`xÊ6û´
-;þIõ³ã~û÷ªÿYê?DãÔÿ"ÇAÞø—×ÿýÿ!<e™=qc”ëÿ¬ý—×ÿ÷ÿBðMõ79Y$Ïþúõõ¯pdö_Vÿ3´OÚfŸ¶1ÊXýì(ñÿõ¬ÿQ²ñgýÚÈÖÿ¨„'-³On˜½sýŸ·Öÿ¨œ5Õßåd‰LûgýJ ÿßµ9bÿ¬ÿñúÝfŸ¶a÷^\ýì(°Û õ?ÆB?NÿŒÿ†9þåõ?æÿPt™=q#qý¿‘iÿåõ?Ú?¦p]2í¿´þgõ´ýksÄþ‹êŒÿ‡Px›}ÚÆ÷ÿ7öŸr€»Ž¤þwNdãOý¯62ÇŸú_%^fÏÔÐïâú?oÿÔÿ*¡íoOÿ¿ë’iÿÔÿ*¡þެqÄþ©ÿ½>ßfŸ¶a3ÞUýì¸ßþÁÄÿÆÿ‘?BÿŒÿ’9þõ¿Àø_ _fOÕ0?‡ëÿ¼ýÔÿじ"õ¿ë’iÿõ¿Àø_ ôÿ»6G쿌þÿä1ÛìÓ6,÷ÿëHâÿ¡þôÿ‚ `þ?úBÈÿâþ–õ!<f™}µ†Þ{1×ÿyû/îÿGûÇÀü×&ÓþËçÿ£ÿ„úW8²Æû/êÿÇçŠn³OÛ`þ¿ßèÿÊàüÿT¤þA6þ@ÿ?ê¿2Ç¿¸ÿŸeü„¢ËìiŽÏÿÈ´ÿâþ´mW+[ý]N–È´ÿòþ<ÿC¨…#k±ÿ’þšú?„‡n³OÛØ™íûÿ5ý¿êÌÿB6þ8ýùÿ0dŽùø_žÿ!<t™=qCsýŸ%ÓþËÇÿÒþ!´G­ª¿ËÉ™ö_Zÿcþ?õ¯pd#ö_4þ—ú„o³OÛÈ®~vÜoÿ)Sý“ê?ñ›öªè˜ÿ‚düóÔ¿Œñ7:hæÿƒ5þ"õOºþwãï"÷ÿ¼ÌVÕÐ\ÿçí_¤þí9ÿû‘ý{ÿA·“mõ79Y$ËþEêŸTÿëìßjËüê_áÈùö¿w÷Ÿµÿ·ùÿ œ`›}Ú†åþ¿ïÿ«sÀ®/ÅþŽúÙøýÿÇAæø—
 ÷ÿ3\ÿœ`™-ÜpGÞÎõÞþËûÿÑþ!˜<k \—Lû/ÿKýBý+Yãˆýõÿ£ÿ?„‡m³OÛx;òöêgÇýö›\À®#eþ_JYúÿA¦ |üuTôÿƒ7þ2Àn€¥þÌÿƒáaËì«7ÒìK\ÿgí_æ Øu¤ÐÿÏžÿ!4ÑRþ»0yö/s ܶÿ‰ÿŸ1ôÿƒ@ã¿6ì·à–ýÏìÿ§ÿô6û´·Ù—ªŸ÷Û¶ü—ÿk©ÿ Œ?4þ7rüd?"þ—ë?ô2ûJ
-ÃõÞþËÇÿzÆÿc`üïµÉ²Düo ý# þwmòí¿pü/ýÿ!œ`›}Úãù?£ƒÄÿzÆÿ‘?"þ×3þHæøŒÿõŒÿr‚eØpÒwqýŸ·ÿ‚ñ¿žñ¿@L»×jª¿ËÉ™ö_0þ×3þHý+Yãˆý—yþïÿ¤È6û´y'?îÿ÷ؿ˕ÿròÿ)Ãú¯D㏋ÿ
-‘ñ¿òÆ¿|üo ÿ„"ËìK7´âú¿eÿåã=Ïÿ|°¦ú›œ,’gÿ%ãïùÿ4ëB¨…#k°ÿBñ¿·üݏhÿ ž¶Í>mÃ*îÿgý±ùÿèÿA4þÀüšþòƐÿþ?ž¶Ìž§‘øüOjÿÖÿÂDÿ£ýcÐÆ4Œ¼.yöÈÿGýmÿÚ°ÿ²ùÿèÿ·Í>mãûÿ]ú¿Aúÿ1ÿÑøCô¿p÷ÿcþGyã_Rÿ»=ÿën®ÿ pËìË4×ÿ-û/éÿîþôÿàÛ~¯þ&'‹äÙ?Àÿú?„úW8²Æû/êÿÇüŸž·Í>mãûÿÙú?
-éÿÇø_¢ñGÆÿzŽ?‚¼ñ/ïÿÇø?Ï[fO×p|þ·×þñ¿ÜÿCHQÅêor²Hžý—÷ÿcü/†úW8²Æû/êÿÇø_ømöioÜÿ¯Ù¿ÇÆÿ2þ‚hüñ¿¬ÿ‚!oüùÿxþ‡€_fOÝH£ŸpýŸµÿòú_ ÿ/„¨#C /LžýâÿÆmØYýÏÿ!<g›}ÚÆÛè'ÕÏŽûíßè ©ÿîõ
-õ²ñGÔÿ½ÅÿFÏú2Ç¿`ýßp¯ÿËçž³Ì"úÈÛ¹þÏÛÁú¿á^ÿ—öÁÄàRõw9Y"ÓþÖÿ½ÇÿFêÿê_áÈGì¿Lýßp¯ÿ«iÿ¶Í>mÃy{õ³£Àþ³ v)ÖÿÿA6þ@ýñ¿2Ç¿¸þgùüÂÖÙó5Ü>‡ëÿ¼ý×ÿhÿ¬ŠL xa2í¿¼þÇø_õ¯pd#ö_Tÿãó?Ç·Ù§m¼=àsªŸ÷Û¿ö˜ø_¯ÿAÿ/¢ñ‡Äÿú{þ?úBÈÿ’ñ¿þžÿûÇ—Ùj],0×ÿYû/ÿëïùÿÿA{ÛT““Eòì¿dü¯¿çÿ£ÿÆÿ^›ö_(þ×ßëÐÿÂó·Ù§mtúaõ³£Àþ]nÀ®3…úŸVÔÿ ÈÆáÿwÓÿb þ!süúÿù{ü/õ?Ï_fŸÐ0»/æú?oÿýÿü=þ—öA§Æ¹êïr²D¦ýôÿ»éVQÿƒ@ýïÚ±ÿ2þþîÿGýBÉmöiv÷ÅÕÏŽû×Pÿ?ê?DãôÿÔ!ä?ÀÿþÿJ.³¯ÞH\ÿ쿼ÿócÐʰþï…ɳÿòþŠçÔÿ®Íû/ëÿGýÂ	¶Ù§m¼qÿ?ˆÿ·¬ÿQ²ñgýÚÈÖÿ¨„,³¥éŸÃõÞþYÿ£˜ÿïÚdÚ?ëTõ¿ksÄþYÿãõ9¾Í>mƒùÿv Ðÿ¦þï{ü/ë?@?0þ—õ_ dŽùø_æÿ‚p|™}­†ãú? ÓþËÇÿÒþ!Õ4¾ú»œ,‘iÿåã©ÿC¨…#k±ÿ¢ñ¿Ìÿ¡Ð6û´7îÿì?"óÿiê?dãÔÿ¨ÿBÈÿòúãÿ ZfÏِ{rýŸ·ÿòúí‚1ÞÒèºdÚyýç´ýksÄþKê–ú?„ÛìÓ6äÕÏŽýªÿ)ê?dãÔÿÇAæø—×ÿ×%–Ù7×ÿ!™ö_^ÿ£ýC0ºk«¿ËÉ™ö_^ÿ£ÿ/ê׿ˆýõÿ
 ãó?e¶Ù§mXîÿ‡ì·«0õ?½þõ¢ñ‡Ôÿ¸åÿ‘ú/„¼ñ/Yÿ#Üë®ÿÊ,³/ßpï
-®ÿ³ö_²þÇ-ÿŸ÷ÌÿÁúÄú&ÏþKÖÿ¸çÿS<ÿC¨…#k°ÿBõ?½þõÏÝfŸ¶ñöÞ¨~vÜoÿTÿ÷]ÿcý¢ñGê¬ÿ!oüúã <w™=e£ï#ÈõÖþú÷ÿ¼6õßäd‘<û/¯ÿiêÿèÿwmØYýõ <o›}Ú†åþÎþcnù_¡þoúŸ¡ÿÑøCô¿x‹ÿUôÿƒ7þ%õ¿xÓÿýÿ <o™=[c64˜ëÿ¬ý—ÔÿâMÿ<ÿChŒÕßäd‘<û/©ÿÅ»þGÿ?Ôÿ®Íû/¤ÿÝöÿŽõ¿0À·Ù§m̆W?;
-âÿLþ¿pÏÿGý‚lüùÿnþ‘ñ¿2Ç¿`þ¿›ÿbü/ø2ûœFÊ|;×ÿyû/˜ÿïfÿö¡jj ×%Óþæÿ÷üÔÿ Ðö¯Íû/“ÿ/ÜëPÿƒðØmöi²¿ÜÿÏØ?(ÿŸ¿Çÿ²þ/ÑøCüÿnõ?ëÿbÈÿ’þ·ü¿‘õ?1<v™­«á¸þ/ØIÿ¿[ýÏú´2Ìÿwaò쿤ÿŸ¿çÿcþõ¯pdö_ÈÿÏßãYÿÂ	¶Ù§m¼qÿß³ãÐÿ¯{þGý§<²ñÇùÿËñG9þÅýÿó@8Á2[¦¡ò9\ÿçí¿¸ÿíƒÕѱþïuÉ´ÿòþôÿ…Pÿ
-GÖ8bÿ%ýÿŸÿA8ºÍ>mÃ>äsªŸ÷Û“+ÿeåÿ³Ô ˆÆ™ÿú/„¼ñ/Ÿÿ/2ÿ„£Ël
-Çõ_jÿöÿ“ü´ÚÆÿ^˜<û/Ÿÿçõ¯pdö_4ÿó`Àm³OÛxãþ—þ¯"Òÿõ_!ÈÆçÿçYÿBæø—÷ÿ£ÿ?Ü2ûÄFÊ~;×ÿyû/ïÿGû‡`‚Ö¾ú»œ,‘iÿ¥ýÿL¤ÿ/jÿ׿ˆýõÿãó?ÜfŸ¶ñ–ýöêgGþŸ+ÿåùÿQÿƒ ¤ÿõ?yãðÿãùÂ#—Ùm®ÿRûøÿÑþ!hcRªþ.'KäÙ?Àÿúê׿€ý—õÿ£þ·Í>mÃrÿ¿KÿÏ-ÿ›ãÿ×NԈƢÿÝýÿëÿBÈÿ’úßíù_ôÿ‡€[f_ªaÞ\ÿgí¿dý›ÿŸÜÿC°>1ý߅ɳÿ’úßÝÿO³þê׿€ýÒÿnûçXÿÂs·Ù§m¼gäþ¿gÿZãâUdýW²ñÆÿ²þ3„Ìñ/ÿk¹þCxî2‹i¤ü·sýŸ·ÿâñ¿´& ¾0™ö_>þ—þ¿¨ÿ]›#ö_2þW³þ7„n³OÛxË{õ³ã~ûÏÿ•Çêõ’ñÏtÿˉÿ
-šú/„¬ñ—¹ÿåøÿ‡Èçÿ¸ÌÖ×H\ÿgí_æþ·ãüïÆñ¿Žù¿0xfÿ»4Yö/sÿˉÿÕ–çÔÿ®M¾ýïvÿËÙÿÛ@ý¶٧m¼qÿÿÕþuÀÔÿð÷úÌÿA6þÿ?óÿÌÿ!süúÿù{ýîÿ!œa™ÅJz|þ×'Óþúÿù{ýÚ?£š†
-àuÉ´ÿ‚þýÛ¶MûG@ýïÚ±ÿ2Ïÿý½þŸÿA(´Í>mãûÿÿ_‹Ìÿ§©ÿA?.ÿ_ˆÔÿ äùüžç…–Ù×oÜ‚†¹þÏÛùüžñ¿ºPëêor²HžýòÿQÿƒ@ýïÚ°ÿ¢ùÿ,õ?ÏÞfŸ¶qæþ¿§ÿG…ôÿcý²ñÇùÿyց9þÅýÿÚm × Ï^fÁ
-'|×ÿyû/îÿGûÇ`´WÌÿw]2í¿´ÿŸ‰Ôÿ!Կ‘5ŽØIÿ?ÖÿÁPf›}ÚÆ÷ÿCñÿÙ	 »Ž”åSÊRÿƒ ˆÿ_¼×ÿ¥þ!oüKúÿÅ{ý_žÿ!”Yf_°af_âú?kÿ%ýÿâ½þ/ŸÿCh¢IÕßäd‘<û/éÿwËÿgõ?ôÿ»6쿐ÿ_¼×ÿ¥þ½Í>mÃξTýì(ðÿ5WÿW+Kýlüõ#ÇAæø¯ÿëÿ½Ì‚îàçpýŸ·ÿâõiÿL
-‘ùÿ®K¦ý—¯ÿËçê_áÈGì¿dý_chÿ³Í>mãûÿuþ¿Ö1þ·:dãÏøßÚÈÆÿVÂc–Ùl8®ÿ™öÏøßJÐ!5Mõw9Y"Óþÿ[	õ¯pd#öÏøß×§ô6û´}…@ªŸ÷Ûj ñ¿ôÿƒ dü/ýÿ äùøßHÿ¥—Ù×h˜¥—¸þÏÚÿ£ãÃ$þ—ö¡í÷િËÉyöˆÿ¥þñ¿×æ€ýÿõôÿƒ ÝfŸ¶a—^ª~v”ÔÿÖÿP‘úÙøýÿ¨ÿBÈÿòþÌÿºÌž¡¡Eïâú?oÿåýÿhÿŒr©þ»œ,‘iÿåýÿxþ‡@Û¿6G쿨ÿõ¥¶Ù§mXîÿûì?dü/õ²ñêÔ!dŽqýù¿0”ZfÏØpòwqýŸ·ÿâúíCÛëÎV—“%2í¿¼þÇó?„úW8²Æû/©ÿ1ÿ†ÛìÓ6Þäïª~vøÿæ–ÿÈ‹ÿeþ?¢ñgýßêÈÖÿ­…Ëì+6–¤A®ÿ³ö_>þ—öAw+sõw9Y"ÏþYÿ·ê_áÈìŸõ+ »Í>mcI¬~v”èÿXÿWkê?d㏫ÿ<ÇAæø—¯ÿËõv™}j#e¼‹ëÿ¼ý—¯ÿKû‡`¬§þwa2í¿tý_Û=ÿ¥ý—‡ùÿ®Íû/Yÿ·óÿ¡ý—çñÛìÓ6Þ2ÞUýì(°
-Íÿg¨ÿ ?.þ׎?‚Ìñ/Ÿÿë?„Ç/³¯Õpë×pýŸ·ÿòùÿhÿ´M&V—“%2í¿xüo`þOõ¯pd#ö_4ÿó@ m³OÛx[¿¦úÙq¿ý“€þŠþ_dãôÿ£ÿ'„Ìñ/ïÿÇø eöI
-}ôs¸þÏÛyÿ?Ú?ÓèÄú¿×%ÓþËûÿQÿ‡Pÿ
-GÖ8bÿ%ýÿý!<d›}Ú†åþƒýös忼üÔ ˆÆ™ÿú/„¼ñäÿcü„‡,³54æ¹þÏÚÿ£óÿyæÿ{M´¼0yöÈÿÇó?„úW8²Æû/šÿÏSÿ‡€ÞfŸ¶1ïXýì¸ßþ½Eê†ñ¿DãÓÿBdü/„¼ñè\ÿ! —Ù³7Ìð'\ÿgí¿¼þç©ÿCÁ‡êor²Hžý—×ÿ4ã!Pü¿6ì¿lýÆÿBxÒ6û´
-;üIõ³£ þßaâ=ãÈÆ—ÿñ¿2Ç¿xþ?ÆÿaxÒ2û܆Þ}1×ÿyû/žÿöA§Æ1þ÷ºdÚéüŒÿQÿ
-GÖ8bÿ%óÿÑÿCÉmöiv÷ÅÕÏŽû÷
-Rÿ‹ÔÈÆ¨ÿYŽ?‚Ìñ/¯ÿñù?„’ËìIIp1×ÿyû/¯ÿÑþ!覉ôº.™ö_^ÿ3´´ýksÄþ‹êÌÿ¡Ü6û´7ÁÅÕÏŽû×Èú¿Ôÿ ÈÆ§ÿyê2Ç¿|ý_žÿ!”[fOÜH»/æú?oÿåëÿÒþ!tþ¬ÿ{]2í¿xýßHýõ¿ksÄþ‹Öÿ¥þ¡ä6û´·ÝW?;
-êÿxÏú¿Õ!Öÿ­ÌñgýßJ(¹Ì>³!qòãú/¶Öÿ­kŒoª¿ËÉ™öÏú¿•@ýïÚ±Öÿ}}n³Oې8ùqÿ¿Ëþ•Ãéôÿ!œþGÿ?™ã_\ÿ£ÿ†ƒËìk4töÛ¹þÏÛqýöÁ„¶ç«¿ËÉ™ö_Zÿ£ÿˆúW8²Æû/©ÿÑÿÃ#·Ù§mØì·W?;î°ÿú˧ÜÒ¿7ºŽÅêh4õ?{Ç¿û?Àøocèÿ	A6þ?þ퇏mý&ûÝ ¯­ÿ:øÑø›Nàú Ñ?ýõËoLh]Úšoo?ùá˯¿~p)&oüý'ŸÛß—ï~ü“)~ûåÇß>ýòý§ÿöéþîvì÷í÷?ušPw¯|06Ũ¢ûö§ßþúé—ûÏb·³K¶úEõ…ÙÿŸ~øòã矄¿cÃþuûqþiÿ¾ý¿;ÃÔþùÓÿó§ß>~ÿŸ?ÜH*F«Í‡ý‡Þÿí—OŸÞ_ÿ­2í 
-/ø_¿~úËï|ˆÑEÛ¿àïß~ûòo|@KãMR½þéǏƒK¼3jpÁ?~ùî¯ý¿òÆø‚þ_9¹à¿ÿôÖ¿f{Áú×ü¯_~ùíߟ?úÿû—/¿}úóÇ·½]”’î¾åàküóÇŸîuÔô#þþÇŸ~ü¿ûôëíÓ͸V¹ÞÿòýÇ?÷ÞïCŠÍà‚üÛwŸnŸð§Þ×UÓW{ßµþ³™"›ÿÿò¥-|û$û[û?;Øÿ»ÛóKý‚1´úÐþßî¿0ÿŸUÿ¹ÞÏù9笃Èìÿíçö(ð³ôwlÙÿ4þ[;ËøYªèUŸëßIìߪ<°ëÊýú_·þ·[‚@ýpü³Àn€×õ?;£ý ü¡ÿé&xÝÕèé&˜†ò_§Úf"ÿéFé¾ú×zMÓhÓWÿ\rÉ:_ý”úRí?K ܰ­ìØþuŒÿƒp—„ÚCÕ† x¿b 7øîW$ÀdâY{ÅTŒÊ©þSPÇáß±¡¾_±"¶Wlè€÷+6¾íP	:$Mê_1”?´3b£G=6’M;“¯j¡µ–¤‡éHl¯IÑûcE
-¼L9ðjçÿ,pkÿ7ÕÿL÷Hˆó? ±öÖûoI/¼«‰wY±°ÈIê BûÏ ·ì¨ÿÝöžö¦¥±ñyóšêç‘þqúŸfü/áøÒÿÜdÿùüÂWý/8­uL=ýOÇàšØŒÀ“±cЩÔā èZTú Ö¨ÀŒC
 gBhÿ8ýú?„w—°¸é §€Æ[çFW] ½nBê_1ÕÿkWLõ?;ºbË0nºÆM?À8uœ|Û¡þ×.Y±½‰¿e¤ÿÙÎKÚût¬ÿuŽ~ƒÏêº=¹ÇXÿ›é5oÀHýïÂç˜þg4çRíídþ‚œ¤"´˜þGûÇð0-íõŸ©ÿ­Û¿Aúÿ1þ‚püaúÏÿ¾êF¥ö€Û÷ÿӍJ.Ä¡þ—BJÚŒõ?ïCúŸÒ©±Ñô¿¤ÚC4 Ï„ÐþaúŸ´wÈlúÿ™9ÿ¿ö¿4ºbäÿ×
-|ÿŠ©þ§ú‚fÆÿÏ»ÑúŸÙôÿ3›þfÎÿoüm‡úŸn´nœü¥#ýÏ)“¼ôÇXÿ³nüàïêNGÕ=ø-úŸY÷ÿ3ôÿ»2ÂùçÿÇ翤Ú[_çû*šÅkèÿwn„öóÿ£ýC(¤¥½\ãóüKÕÏ/"ÿ_ôÿcý_ÂñÇùÿñù„¯úŸ7©=Xô?»sñPÿóÖiåÇú_ã¬Wý¯µàèèÁ6Nó™í™Ú?Îÿû?ïA v3þ×Nõ¿šf|ÅPÿSÉö#QíŒþ§ƒ|ÆTÿ‹Ú®ØŠÿµ›ñ¿v3þ×Nõ¿É·é±Ñ¾~Û‘þšn4ì±õT€]
-ô?£ÛÐÿºþX‹ÿµÔÿ.ŒpþÇé|þ¡tÞ¾Âþ‚œ¤"´œþGû‡PBK{‰Æœ·õ¿uýßõ?CýpüéqªÿÑÿÂúŸ5±[uU_ÿ©=ÕŽêhë|2i, jÌ( Õª« ÒW 6©1>U?­¾BûÇéÌÿáÝ	Ìoúÿù©þ;s]1Òÿ¼N®ÅTÿ3.®˜‰ÿxÄùMÿ?¿éÿç7ýÿüTÿ›|Û¡þ—´QfàÝçGúŸVÆÅQLüÿœîkˆ]
-ô?Rè¡í[þ~ÝÿÏSÿ»0ÂùÿËü¯ÄzÞ‚n·¤ó1þ÷ÜíÿKû‡ð-í¥«B`õó‹Hÿ7@ýOQÿC œÿç=ÿ?×4V…Aþ?e7öÿkÏÁiâÿ“‰#õÏÆäSÆÿ¶‡ý`ªŸS_	¡ýãô?Ö„ðîf6ýÿÌLü¯V*®Åÿ†~ÝÚöŠý¯¯™µWLõ¿ƒê_±åÿg6ýÿ̦ÿŸ™‰ÿÛqüopfPwÃLâ}ðvø]&úŸÑ¶_1ÅÌÔÿÐý8äöŠ-ÿ?³îÿg¨ÿ]áüóÿcýw¥ýÿú1Âôÿ;BûÇùÿÑþ!<VK{¥Ægú
 ÿ}#³ÔÿèÿA8þ…ô?ÏúOâ«þg}£½júú_ò
-i¬ÿ¹.ÕßÄý/…h`»†76¥ ØØö¦úIõ…Ú?ýÿ*ã.ùMýÏÏè1õ+âú©þ›ÔÏÝççô?å›Áo™ê¡é)„~Sÿó›úŸßÔÿüŒþ7ù¶cý/§Òà·Œõ¿ä¨?Æú_{I?bڏõ?g’1£þØÐÿüºþç©ÿ]áüOÿ¿Ê(œŸOüsa~ANRÚ?ýÿ*ã1ZÚ¹¹ý¨ÿ}#³çXÿ·6„ã_HÿŒÿ}覱í	7õõ?£U£ìHÿÓ®ªI`¬ 6É'§	 u
-íáUÇêgÕ×Ahÿ¬ÿ[wȹ-ýï~Å@KΪ”FWô¿v0qý+&úŸ1>c¬ÿµW¤&ô¯ØÐÿÞ¯XÑÿÚ+6ô¿ûßvTÿ7*í½ü–Qü¯S~P˸ë±õü]
-ëÿ&>•íú_×+úßàeêWC8ÿ³þoe×ù´½Eõ? íŸõ+#K{Õ†\¬~~Åÿ#õ?Öÿ€ œþGÿ?_óÿ¹®Òæ°þGP!Úqþ?㬳ÍXÿQµWöõ?ç’iT¦ÿ1u>ÏþÖäw„öÏú•ñžnSÿ3SýÏD—ú¹û¦ú_RÆõkæÎèé{Õ™©þç]è×Ì0›úŸÙÔÿ̦þg¦úßôÛŽòÿ™öÖdœè]>ÔØût¬ÿ¥Æ™ÁoåÿkFòƒëIÙä†ý±–ÿúß•Îÿ¬ÿQÊÿ·çËüçFhÿ¬ÿQÙZZ=µ@àêç‘ÿ¯¦þWÂñÇÅÿ2ÿ„^üo
-Öº¾þgbjÏšz\ÿ7µ£9‰ÿmï#†ñ¿í94†A@—Ú3´ñÕOª/„Ðþ©ÿUÆ{¨ÞŒÿÕSýÏÇÔÓªîWõ?ݸžÏ\{ÅXÿÓ·é¿Å´þ¯öað[ñ¿z3þWoÆÿê©þ7ù¶£øß`š&šÁ_:ŠÿMÑ—ÇXÿӍvjØcÃøßä¬î{¶WlÅÿêõø_MýïÂçê•q†˜ß¾ø»ˆ¨—ýéÿ÷8„öOý¯2#¡¼ñ9ûíÕÏ/"ûO8ýϰþáø£ô?­èÿ
-¡§ÿµ}Ÿš~ý_ã½
-¿ÿäýO¥ãDÿZ+7ÔÿlrɇþçS{DæCÛ!´˜þGýû”6õ¿4ÕÿûÙìÒ4ÿ_òÞ®˜úÿy¿e¦þoß#®½bKÿK›ú_ÚÔÿÒTÿ›|Û‘þ§?þ.cÿ¿.ƒ`|—Iþ¿&è0øKGú_°±=0¥þ[ú_Z×ÿõ¿#œÿqñ¿Ìÿátúßr}á¯%†™ÿïaíÿKû‡¥Š½JãóáÏ©~~‘Ø¿ÖÿPúáøÒÿâÔÿú„¯ùÿ‚ñÊÛAþ?ר~/	òG pã«ÜXL&Ħ/ ãÛã®vƒ àÔþÀ3lã<í¿þ7®ÿ­C ýC¸‹@z³þ‡žÖÿ°:šžš¥gꄁV¥gꤦïï¦gëÿöýîôfý½YÿCoÖÿÐÓúÓo;Òÿ¼M)†4ø5CкàT¿x‡ž iÚ{¿ç©'@”ºïf¨'@tŠÝ§:dE Ô, ra„ó?ÎÿõŸ ÎÏWú眣"´œÿíÂ1y¬ÂÆ0G`õó‹ÈþþýSÿ+püécÿæÿCñUÿëÜSÚþïé¡]†õ8ü7øö;©þ‘ŒÑ￐´i‚xÿ5©±©~J})„ö‹ÿåó_ïЦÿŸžñÿ‹íTàFWŒòÿ馻«§þZ[ŸŸ1Õÿ×Ëw§7ýÿô¦ÿŸÞôÿÓ3þ“o;ÔÿbªÓ;ûWŒëÿ¶_Ö«aä?ŸmŸ1”ÿ|Ó~BWŒýÿ¢UvØë«òýÿ®ŒpþÇùÿÑÿB^|îÄo9çóÿ¡ýãüÿhÿŠji/Õ˜u¬~~åÿ´@ýñ¿„㏫ÿÁùÂ×ú6Åèí×ÿPÁ+ãFî:xßLꤐ¬(€6ͨþ‡Ñ1Ù¦úYõuÚ?Nÿ£ýCx/a7ëØýO
-ª{Øý/jfØ™øß¦ŸÍ®½b¢ÿÙØwˆk¯Øªÿa7ëØÍúvFÿÛQý«}òað[Fñ¿ÞXk‡WLâ“nüàï»ÿY§õðбû_P¦iW¬Öÿ°Ôÿ.ŒpþÇùÿñù©ö6úz¹ú–®¡ÿß¹Ú?Îÿö¡Œ–öbÏ‹/U?¿Hì_åÉBýÏwúŸ1ôÿƒ ÿ,ùO¨ÿùÛþOqþ‡ðÕÿ/yBŒ=ýÏûµåÿÓÎèöX?I èbJƒ€&Zã‚·}0Dß´#_ý¬ú:Èì?KþÛÖÿ´Ù¿öÑÓþÜE 5•ÿÚë9³©‰ú§µmzž{j"þ5^¹žp§f´?m{¬j
 *ý¯mÿ6”?µ%ü©©î7þšcÙoò5GQ¿.´wo_öSã _ím{o›~O‹þŽÿÊ¡æ7sÁHòk‡oÌ #V?EÁüŽlþÏ’ÿ„úßmþo÷œÿ,Õí}’?ýÿÀÈì?Kþê7ûw´×Òªj|®~~ùÿ ÿŸ¡þ‡@8þ¸ø_æÿ‚ðUÿk|LºI=ý/zíÇå?B»8ÛIò¿vÃÞâ7Á5fPý÷7A
-Œÿ=BûÇùÿ1ÿ„÷ аÿ¦þÊë~œi˜úÿÅv'ïúWLâWNõ¯˜Öÿõýší[ñ¿a3þ7lÆÿ†©ÿßäÛ•ÀÐÞÚ.ªÁ_:Šÿù;6¤À®Ç†ñ¿¡‘cü–±ÿŸ6*˜a­ÅÿʁF8ÿãâçRîdz!'©ƒíÿKû‡€ÓÒÎßøLÿ¿Uûÿ¿›þg,õ?²ñ/åÿ7Îÿo”æó½ú¿¶‰!ù~üolÔÄ‘ è¢7“€6ŸῦýÀöDÜ Û}¾í"‚ŸýÉWdö_Êÿoªÿ)Ú?„»·ä¿8ýkLOeŠ3Á¿^¥Ô»`êÿ—úqªq.ô·Ÿ>0n)qKø‹[º_œ	û}Í¡ê÷Á¶wo?§_ý¶_r°/N4¿Øo5ülctê˨q«âo\ü"õ>ò²ùáÿw›ÿ£ãùÂÉâyÿFfÿÿ¿›ý;Ú?†RZÚ‹7~®~~‘Ø¿Ë »Žûÿ±þ/áøòÿÓ¬ÿñ$þÐÿ’qMÐ}÷¿àû{=¯îQ7SõOùdúê_Œwqàý§»2¯‰lO†Ðþaþ‘û?wMÈm
-€nª ¶3†î	[n*oû¹êÜŒèSpƒÏ‹€|½¼{nSt›2 ÛÔÝTœ~Û‘ø!v+ÙàŠ‘ÿ_´ÍøÛnøÿ¹±øÁ›ÖBzõPܦèÖå@G=ðÊçœÿý¿!×í–r.éŽÔÿ íçÿGû‡ ÐÒNÒXNò·Ò¨~~ùÿ6@ýÏSÿC ÿBúŸŸêÌÿá«ÿŸ·‘öëÿjÚAñ£üÊúÔL"€ƒóÚë˜&5& }T
-7mgBhÿ¸øßHûGðÚlÆÿ63€±éÇ»6ý/6S©Åœ |Æ´þ¯×ipÅVüo³ÿÛlÆÿ63Ž€ão;ÔÿlT6ôõ¿öŠ‘þgsºöéHÿëŸÂà·Œœ­UÊÉÍŒþ—R/ñb×kñ¿
-õ¿#œÿqúŸÿBj{}­Žñ¿¯ÐþqúíBž–VaãóìKÕÏ/¢ú?‰ú_mÇWÿ—ç_ëÿêÆF—B¿þ‡öQ¥Qüo—ËÞ?©ÿámˆCýÏ[ÕÄaý_ëƒõ¯~V}„öOý¯2Þ‹À¦Íú¿iÆÿ¯0Ü花ÿŸïð¶WLýÿ‚~ÆŒÿ_¿zF{ÅVýß´Yÿ7mÖÿM3þão;Ôÿ|tʏ>c
-¬¼7Úúc¬ÿ…ví‹ƒÏØ¨Ò^1Öÿ‚V*Nëõõ¿#œÿ©ÿUF	¾~Ž@Æÿž¡ýSÿ«Œ"ZÚë4>o\Sýü"±‹¬ÿÁú¿„ãóÿcýO=ÿ?¯Õ¶_ÿÃ¥¼×ÿ>¶ãHÿK6x7ÔÿÚw7aàÿ×´¿Â\`R}!„öÓÿèÿá.ÙÍúv¦þGðýè^;SÿC›¾GœÖÿøÐãWLýÿÔè36ô?»YÿÃnÖÿ°3õ?&ßv¨ÿSRjð[FþÚÛ¨zÉífý;®ÿñ¡ËhÍàŠø_»^ÿòþÇ•Îÿ8ýù_!”Žÿ]Ô“_“ÔA„öÓÿhÿ¨¥½PcKö£þ7gÿ™îyõ?,õ?²ñ/Uÿ#Nëðü¡§ÿ%•Ü þoWHR7ÆŽ@ßXe'9 ²
-€ò:6ƒ$€¶	¾äê§Õ—AfÿÀú|þá.mºÿM½ÿºxØ^êÔù/6í9»Íøþ5ª¯ýM]ÿ¼W©	½6”¿MÇ¿M¿¿©ÛßäkU?\û¡ÿ+ÆA¿Ñ4ýÂÁSŸ¿Æ'ßÿšCɯ+*ìƒíÿ‘ŠßºÃýýÈWdó?°þ‡æü`)nw©Îoáx^Æÿ‚‘Ù?°þíÂq-­ÂÆgê³þ¿Èúôÿƒ ÿBþÓú¿‘ù_!|ÿ5Æ­š~ïl#õ/Ô$ü7uB__üsF7Ú
-¼ÿt
-I[Öÿ=Bû§ÿ_e¼nÖÿ0Óú¡
-zñÌ´þ‡S^õòÿ™¹úÞôrÕ™iý­b~ÆVüïfý³YÿÃLëL¿íP	t¾+ ¤¿e(šd‚·qðmÇZ 3^ÛÁC1P+céH
-ÔÞ‡~•³^ÿðþÇ•Îÿôÿ«qþ¿-p)/ õ¿s#´úÿUFq-íäù´ÔÿfíÿKÿ?ÂñÇåÿcü/„žþ×8çÌ þ‡J*ıûŸiB{֝€.¥‘û_; AëAþ?Û_Â"À'Bhÿ8ýöá]ÚŒÿ53ñ¿>ø¾š5ÿÛÕq\1õ4}@3ÿëm3ø;¶ô¿Íø_³ÿkfâ'ßv¨ÿ%m‚ÍàŠ‘+`ÓžtÙý¦ñ¿Îé¨þ‡×Ê„”úWŒõ?£‡ùÿÖã
-㯌pþÇéôÿðXýïÝkúßË ´œþGû‡ðH-í%Ÿ©ÿí®ÿÔÿXÿ‚püYÿ£2þÐÿLP©iš¾þgT°í™u¤ÿ…dÚ#ùXÿóí ë´cnu2C@Õ¨¨¹k;BûgýÊ¸‹@nSÿsSý/uœ]1¬ÿal_»s3úŸdÕsSý¯Yš0ø-úŸÛÔÿܦþç¦úßôÛŽòÿù¤L~—QýëLt½ün3ÿŸë­™¤ÔôªÝ4ÿŸñ&…ÁoYÓÿõ¿+#œÿYÿ£2ŠÇê.äùü×Ó™ÿ‹ÐþYÿ£2ª¥»ñ9ã]ÕÏ/û÷Žñ¿µ!Öÿ¨Œ¯ùÿœU¶ibßÿ¯qÞ„4Ôÿ|ûÓ'å£OèÆhÓāÿŸS6˜†ò߉Ú?ã+ã.y·¥ÿݯzÄ¥A$êýŠa
-À”úÞ}íý¯ýŒ^î»öŠ©ÿ_ãàŠ
-ýïýŠý¯½bCÿ»_±ñmÇ™ }»Ž
-?c¤ÿéö#L/–¹ë±uý¯ë±a2@«ÝØAldìúcEÿ¼LýïjçÆÿVÆ	rø-k„}]pþNRÚ?ã+#SK{¡FŽìGýoÖÿ×àô?©ÿ!Ž?Îÿþß¾Æÿ:mšÆô?cBW¬cÿ›m§	 Û-û¸üGPÎãÛú™ð<í§ÿÑþ!¼š9ýÏô£YÍTÿÓjÍj¦ñ¿aPï¶½bÿ«ûEBÚ+¦ú_ÐÃ+¶âÍfü¯™ÓÿFßv¢ÿM¾í(þ7*Í$þ×5ª~—±þgWipÅHÿSaÝk&ñ¿Î{†ý±ÿk¨ÿ]áüÓÿ4ŸÿB(¬Ï•Ö9IDhÿ0ýö!K«®±¨V?¿ˆü5ÐÿOQÿC œÿÏÿ¾Æÿ6Aév$zú_ôÆ[?®ÿam2“ê¿í蹑ûŸKÊø4ÿ)ZÇê¿gBhÿ…ô¿qýã? ¼êÍø_=ÿ5¡éyæÝ¯ÆÿzeíàŠ™øß~iÛöŠ™øß4¼b+þWoÆÿêÍø_=ÿ|Û¡þ7÷[Fõ?bh5ºWM¸ë² `= Mp¾ñjð“ Ñ;7쐵 `MðºçœþGÿo¥}ûVò~-1œŸ/sÔA„öÓÿhÿ¯¥»ñ™þ$öo‘õ™ÿ‚püqúç½ø_BcT_ÿ*(7* MãÚ«ÆúŸ5Úóÿ墪/ 6Ñù¤´q"„öÏü•q×€ìlýß¾GœÖÿ5¾éûªÙiýߤS?ÞÕÎÔÿmÞlvZÿ×{Õ÷ª³›õífý_;[ÿwôm§õ?ÆßvÿÛ4Þö#•í¸þïg]}—
-ùÏŽëÿ:ÝΡ£>݈ÿµëõ-ëÿ^áüÏü•ŽçýCó{¿ '©ƒíŸùÿ*㈖ö²Ï»/®~~Ù¿gýßÚŽ?Nÿsœÿ|Õÿl“â0þ×£ÕŒòÿ)gMšèÁ©ö§}ýO§›8Èÿg›˜tSý¤úBíŸõ+ã]ò[þ÷+†ŠXL}¸ûÃüMêûÿµWÌÄÿÆágLã‡z—ßÔÿü¦þç·üÿîWl|ÛQýöömçÏÁgŒô?R;MþŽ-ýϏëÿ¦dUã\ÿŠ-ýϯëžúß…Îÿ¬ÿ[ÅýÿL/Lx¡þÇà½ôÿƒ"´Öÿ­ŒÃZÚk6>XúùEäÿ«˜ÿ¯6„ãÓÿç
 _óÿÙÆ6^§žþ×DßÇ(þ×5폧úŸ1É
-ä?çtt*Òÿ)×Dëèÿw"„öÏü•ñª6ãÕŒþçã䊡ÿ_;µ÷ô®öŠ©þgb? VÍèvîª6ãÕfü¯ÚŒÿU3úßøÛõ¿lTi¯ÕÿP¾ñ®çCØõØFø¯ë¡Ý%5øŒqø¯µÎÿÒÕð_EýïÂçæÿ«ŒgÅÿ~
-þeüï3Ú?óÿUÆ´´×j|füo‘ýçÉ9úŸ1Ôÿ ÈÆ?KþÛ¡ÿó¥ÿ¡çÿçUl‚î×ÿèÚÇ8 Û£²òn¬ÿu•}í0üW›”ÚŸõõ¿Æ™ö¨~N}%döŸ%ÿmëz¢ÿùHû‡ð.mÊ3Õ?ô@—›)þáBÕœïŸI=­kFú‹Ã_±¥üm
-›ºßLُÑ×ÜÊú7vú›^°¥ùC~Ií¼ÜK=¸åñ·^ð—õ~ÉWdó–ü—¡ÿéhyþ‡Ð×ÞúšÜƒâsYÿãäÈì?KþËÑÿíÃ!-­êÆ-H¸úùEdÿ
-Îÿϰþáø—ñÿóÿ?­èÿáý/ZÛ´fדÿ|J£Ú¿í)4Nc£i¥?BÒº=³ö•?o­Kôû;!Bû‡ÕÿˆÌÿá]j6Àf¢ Æ&ø^$êýŠaýöSBê_1­ÿ¬ü–iý8(fÑlª€Í¦Ølê€ÍDœ~Û-%°ûÿc\“̰ËFb`ð!©Á‡ÕÀí<êt3øSÇr oMvÈšØP¼.ÂùÿËüÏN áã…gë‚,ørŽ:ˆÐþqñ¿´-íé
-aÙúÿÍÆÿëÿ2þƒpüÿ[_ýÿ|rI5ýø_×4Jnœÿ/˜`ÍXlÇ-聠MÆt
-bOŒÊ8{Iõ…Ú?ã+ã=	Üfý_;­ÿkÒ0wß´þol¼·ƒ+fêøáo™:Üífý_»Yÿ×nÖÿµÓú¿Óo;Êÿ§”7}aÎŽëÿ~°MT~xÅXþÓíﱃ+†òŸÎ˜¾i'å?8ïãð·¬æÿcùß+#œÿÿ[b­nÁ/pTç㏜ôÿ;7Bûgüoed©b•4>o_Sýü"±Ìÿ§éÿA8þ…ô¿iü/õ?½ø_ut¾_ÿ#˜¨•éÑ…Çò_ã‚Ãò*$ÛÊÿºh•õÏ©¯„ÐþqúŸ¡ý#¸‹@~3ÿŸŸÉÿç|¿f®ŸÉÿgÛƒüàŠý¯¯™ù¹üQùÁglè~3ÿŸßÌÿçgòÿM¾í¨þoж1Áõ¯éÉúàÃàï˜êOƒÏ›Æº4ü;6¢ýzþ?ÏüWF8ÿãô?úÿ@8¡ÿßW@úÿGhÿ8ýöáQZÚ¹Ÿsß^ýü"±méÿWÂñ§ÿ_eü¡ÿ™ cŒNõóÿ¥äb3òÿ3ÚFçôD ŒQêÿ¢7qmŠí
-Wý¤úBíÿKýÃ]ÒvKÿ»_1PĬmúÕ,îWýÿl쇻¶WÌä lŒê_1Sÿ7¹ÁoÙÐÿÞ¯XÑÿÚ+6ô¿ûßv¤ÿioƒj†2 MŒíÖ&:d, ¶ŸaÃà×À¨ÛÙõÀöŠqvŠv~pÅš 8x™àÅÎÿôÿ«Œþ|ÄäžA#¤þ÷8„öOÿ¿ÊÈRÅ*n|þ¤úùEbÿéÿ§©ÿ!Ž!ýoìÿCýÅú_êÊúš¾û_;$M3Nè•môÓò¿!©ÿ_ûQ:x×Wÿtò®=$W?¥¾BûÇéŽöà®…Mÿ¿0õÿKÆ„8¾b˜ÿÏ»ÐËÝfüÿ¼O=©*Lýÿ>øh{ñ®aÓÿ/lúÿ…Mÿ¿0õÿ›~ۍüaìÿgZšäì°ËÆùÿ‚Ufðu‡úŸV&F£]¶á Ö  /ŒpþÇé¬ÿádzÞ®øâ^ÎQÚ?Nÿ£ýC(©¥=¹ñùŸSýü"²Ôÿ,õ?Âñ/¤ÿM÷ó?„¯õ?œM蝆q§ÕµöÍ@ý±Z
-Šÿïu“ªŸO_
-¡ýãô?Æ@x׀̦þg¦úŸ3¡çw¿b¨ÿYúb–™Ñÿ’QƒÏ˜Ñÿš4øŒ-ýÏlêfSÿ3Sýoòm·ô?3®ÿ‘lWÿcøu'Å€½öï;ªÿô°¨J{ÅXÿ³Nõî»YÓÿõ¿ë"œÿqõ?˜
 ÿÂ+ê½aÎQÚ?®þíÂ1yìčÏùœêç‰ýdý@ýpüéþOâý¯=4jmÓ C—±~ä ¨]P¡™ÄÿÆöX:¬ÿáŒvíÒÞ× ÛŸ8Õ~fõ³êë ´\þ?Ú?„»d6똙úMèkwf¦þGÒZ¹þÓø_×ψgæêtΠý+6ô?³YÿÃlÖÿ03õ?&ßv¨ÿ¥Û¿Ô
-®åÿk|´A
-þŽIþ?kÇ=6Ìÿ§|ûwô<&ͤþGÛ]]††A¬È†õ?®ŒpþÇùÿÑÿ‚TŸ[Œ^¸†ñ¿çFhÿ8ÿ?Ú?„còX5Ï/U?¿ˆêÿ8 ÿŸ¡þ‡@8þ¸úÌÿáký×%¯RýÏëv)×ÿõ홾™ÈÞ†f ÿk’º ZÓ²ëŸS_	¡ýãô?îÿ ¼u›õÝTÿFO®ÖÿÐÞôô®öŠ©þg¼Iý+&úŸ®çÌÖ^±Uÿ×mÖÿu›õÝTÿ›|ÛQþ¿ÆZ7ºb¤ÿùöþŽ~Øcc÷¿Æ;¸b\ÿC™A
-‘öŠðß®?Öêÿ:êF8ÿãüÿøüBiß>a=éçs’:ˆÐþqþ´´´—hì¬Rýü"²ÿÔÿèÿA8þ(ÿ?­8ÿCèé&¥COÿÑ71Ù‘ÿŸÊ;5	ö19;T µ÷}0¥FGÅ]ÛyÚ?Lÿ£ÿ/†w(mêiªÿÅAEŒûCÿ¿fPÿ£½bªÿÅÆ~ËDÿ³íë]iSÿK›ú_ÚÔÿÒTÿ›|Û¡þ×ÎvÑ5¸b¤ÿÛ£Îàÿ†Æ>c¤ÿY£|Œ¡Å4ü7öý»þXÓÿõ¿#œÿqúŸÿ@(Ï»·û(ANRÚ?Nÿ£ýCx„–öj
-Ahpõó‹¨þwžü—£ÿµÿ þ‡@6þYò_–ÿŸæùÂ×ú¿F¹FùÿŸKÖ3É ¨¬È.¸8PÿbRI7õ¯= ;cXþ÷LÈì?KþÛÖÿôTÿ£þá.ù-ùÏOÕ?gúehýÔùϺ¤ûŒµ¿nÈmÿ‚©ëŸU½ò!~Kùó[ŸßÒýüTöÍ¡êç›hå8ü8éŸ6uƒo1ÑüÆä(ãŸnl“bÿ)~ÆkåÒ V?O½ülþÏ’ÿ2ô?-ó¿B8Y</õ?02ûÏ’ÿrô?GûÇpTK«¶q	«Ÿ_$öß õ?GýlüúŸÿ@øêÿguŒ±=ýÏ™Æ5qÿœ÷.õ?¯š¨ú_{î5±Ñƒ ºINQÿ;2ûê
 ´wM¨ÙÒÿš¹è_GŒƒûê]3ãûçûž}ÍLê?«z.wÍ–þ×léÍ–þ×Ì…ý¿æ(ê7Å&%×ÿ#ÇN©Cÿ‚IÎ?§RObl&.ñíÿö.؈ømVõ¿†úùÙüÓÿó¿@XŠÃík‹±ºÏ×9iDfÿ8ýö¢¥½Xã3ýÿæõÿL°ëHiüoWÿ‡ú_y„ã_(þw|þgü/НúŸöŸJÔÿhbLi¢ÿÙfÆÿϸAà&êäM3Hÿçµ
-òß©Ú?.þ×Òþ¼û„m
-€~N´©'Ïù9	к^ü¯ŸÓ µ~ÆTˆ_~Sô›2 ßÔýœ8þ¶ãüÁZŸ1’»êG¡W»ÃOµÀé_:­2I©4¸bC
-ôër §xe„ó?.þ7rþGp2=oQk|W"ïªä×k8IDhÿ¸ø_Ú?„ÒZÚ3ŸNõó‹Äþæÿ£þA8þ…ô?ÏúOâküo—ý¯•AýäbùÿiwqR ¤}÷ÐÿϹ&øØ uÓŽ¬‰ºúIõ…Ú?®þõ?wÈ™-ýï~Å@Kzà¿w¿b ÿ™ ûÙýÚ+&úŸO¦§¶WŒõ¿>Ž>cCÿ{¿bEÿk¯ØÐÿîWl|Û¡þç’SM_©l¯…[Uèiˆ]­ë]
-ô?­£R\±¡ÿuý±¢ÿ
-^¦þw5„ó?®þ/Ïÿž«çMë‚Ðÿ‹ÐþqõiÿŽÉc/רYöƒúßœýÔÿÿA8þeô??©ÿÑÞ/œÿü¡ÿEgÚƒv?ü7ùàõ8ù_LÉL´¿ödÛ×þBjbraúë£OÕϦ¯‡Ðþqúó¿@¸‹@ÁNõ?ïúufïW1¯ú•yïWõ¿öçúWLô¿`F¿eªÿ%Õ‹¯m¯ØÐÿÞ¯XÑÿÚ+&úßäÛNô¿É·ês¿eäÿgC3ÈØõغþ×õØ( ŠÉ†Alè]¬èƒ—©ÿ]
-áüóÿãó_gðùü¼¯.Ôîùr’:ˆÐþqþ´´´S7>?æsªŸ_Dõ€ñ¿þOý¯<Âñ/äÿ7ÍÿùüB¯þ¯rÁýí{ 
-鏌€¿K€Qw¶<– “TUÿUÆéAþ?§ºA®N}%„ö‹ÿÕ´ïE`7ãíLüo
-º_«vÿ­“ë_1ÿUM3ø-Ӹߨôª„ØÍø_»ÿk7ãíLüïäÛŽã“êÊÖô¯é^û`ý°O×õ?;ŽÿmÅA5nЧúŸ]ÿµŒÿ½2Âù§ÿñù/„ÒzÞ‚n·x
-ë`Ú?Nÿ£ýC8&½dC"
-V?¿ˆüõ¿ÚŽ!ýoºÿcþ/èIÙ.íæ ü¯mO«c@t3Éþ§“¶}õ/ºv¼Õ û_Ôª‰¾úùôÕÚ?õ¿ÊxM›ñ¿i¢ÿÅÆ
-"QÓÔÿ/gŸ1ÿ
-N
->c&þ7©Ô¿b+þ7mÆÿ¦Íøß4Ñÿ¦ßvÃÿ¯½b¤ÿ¹Æ4Æ
-¾ËXÿ3^©^-®Ç†úßÌoÙŠÿMëñ¿‰úß…ÎÿÔÿ*ã>½Ÿë^ª¿%ÿ?êChÿÔÿ*ã –ö2Ïôÿ›E”ÿÓõ?Oýpüqùÿÿá«ÿŸI®«·Ù “o¼)€.˜'õ?Œ±Q§`—êÞz;t tÑ…Xý¤úBíÿKÿ_ïE üfý?õÿ‹>ÅñÃúÝ0«þSÿ?×Äпbêÿç¢rý+¶êøÍú~³þ‡ŸúÿM¾íPÿ3ÚºàšÁwûÿ©ÔÄža×cõ?ü¸pû‡vŽÕý+¶êøõúžúß…Îÿ8ýÏ!œAó;à/ÈIê BûÇé´YªØ+5ŽW?¿Hì_#õ?Öÿ€ Öÿ¨Œ¯úŸO>8­úúŸÑí‰vþ¼‹F…‰`òÖô?Û„ëëæ¦õÐ	ðDíŸõ?*ã.éMýOÏë=%JÏë½zzNÿ³>®˜ê6¸ÁúŸÞÔÿô¦þ§çõ¿á·ëÞB=Ñÿ:}pܧ#ý¯«"bWŒêÿ¦Ô~J/‡ ÞÔÿôºþ§©ÿ]áüÏú•!Ì·w
-Aúÿ=¡ý³þGed©bÕ6&baõó‹HÿGÖÿ°Ôÿǧÿ9Îÿ¾êV» U3Èÿ]
-q( z×è&òß-{à° °ê"~‡	 n‡›ú߉Ú!ýoœÿ“õ?P¼;ÍÔÿˆÑô½Ù¦õ?L°o¶iý¤ꞟ©ÿÑx×÷f›Öÿð^õkˆøÍú~³þ‡Ÿ©ÿ1ù¶ýoòm7âý¸þ‡Ö¶KØ“÷ü´ H7çúÁ2r 65F
-~ÍX ´Mzð«€, ra„ó?Îÿù œLÏ뎄Óÿ¯BûÇùÿÑþ!<\B;_ãó·W?¿ˆì? õ¿@ýpüqúŸÿ@èë]rz×Óÿº\óZ§‘þ—tšÑÿ|Réí‘Úüÿ¼ö**–>BûÇåÿS´ïPØŒÿ
-Sý¯I¦çÝw¿bXÿ#6ƒXÕ0ÕÿR›Áo™èÁ…8¸bKÿ›ú_ØŒÿ
-SýoòmGõ?b:ô5Ä0öÿ÷Ê
-þŽ­øß0–ÿtj7üŒ­øß°.ÿÊF8ÿãô?>ÿ…pͯÿó…<Ky9IDhÿ8ýö!K{FfÚ?êsöoòä¿ýÏæÿƒ ÿ,ù/KÿSôÿð‡þ×Zœj°}ýÏ9£òCý/µgÜ4­ Ò¹¥ô?£cLäÿ]^φ›¶!³ÿ,ùo[ÿÓÿ?ÏüŸî"Ù’ÿÌTý³ªŸ—ÏLÿ\½Âf.öW
-.˜ºþé~@­ÙRþÌ–ðg¶t?3•ýÆ_sÃëÏŒD?Ó•üý*(f*úµ3ïà{Ž4?ô 矙H~išÐïÊ5ÅÏPð#¿#›ÿ³ä¿ýOGËüþìÝWoã>‚½ŸsÎ:ˆÌþ³ä¿ýÏÑþ1“Çên|¦þ7Œÿw@ÿ?Eýpüùÿæÿ{_ýÿB066ýø_­ÚSgùÿµÚîç~¬ ¦c8 ¶çõ0`Œ¶úYõuÚ?.ÿíÂ{8·ÿ{¿b Y­½Q£+†þÁÇ8øŒ
-°éÉkíÓü^ùÁglåÿs›ùÿÜVüïýŠo»¡¶W¥ÀàuԍöéH
-Œ>ô«w=6Ìÿ§¬f*tc10uÞ®XÍÿç(^áüËÿÇç?öçÿ»k„'Ðü˜ÿïí—ÿö¥¥½Hãóè'ÕÏ/"û×8ýOÑÿ‚püaúëbøCÿí><xÛ÷ÿÉcìPÿª=Ã*7–ÿšÆëAýçµi¢mòŸn 4€ÏƒÐþécÿßvF`þï"Þ¬ÿ¡§ú_;LýJzªÿyߏˆm¯˜êÃjzFÿÓ&¸þ[úŸÞÔÿôfý=Õÿ&ßv¨ÿµsb;öýÚKF¾€ÊêÆª™è±茏ÍTÀä´õÚ®)€N5ã+V@Mð²çœþGÿK~~ýš‹¾€Ï×9EDhÿ8ýö¡ –ö¢ÏŠúß¼ý;dý_Gýpüqþ|þáküolÇ((;ðÿ³ÊÆQü¯¶]HÜDÿÓÚÅ4pÿS!j×Π=ýOÇv|}¤þw„öóÿ£ýC¸K at n¶þoß#ÎMëÿ¦Öâ{a«nZÿט¦_ÝÃÍÔÿõAõüÝÜ´þïµü–
-ýÏmÖÿu³õGßv¬ÿM¿í¸þo°Vƒo;ªÿá}C\±‘ÿύëÿç´}Æ8X'gÓàŠ5õϱþï•Îÿ¸üôÿ†P\«Ûç_øµÎýÿ í—ÿö¡¬–v®FF!êçQþÏÔÿ"õ?ÂñGÕÿЊùÿ!ôêøìïÕ~ïõ“v16CýÏ\˦=Å›8¬ÿáLTͰþoò¬ÿ{"„ö«ÿAÿ?ïE âfý8õÿS©Ÿàï~Å(þ7õ“çµWLýÿLTÿŠiÀ¨Óà3¶êÄÍúq³þGœúÿM¾íXÿ3z îµWŒê˜œ
-ÃÛ¨ÿ'õ?œMÑ®Øªÿ×ëDêF8ÿãô?ÏùÁÉüù}
-û!ë<¡ýãô?Ú?„\-í5Ÿ~Nõó‹Äþ0þWê„ã_FÿóqêÿÇúOþÐÿbŒ.„Ðwÿ3Þ¤8ŠþmÐLª$¾Qåü ôG´¿ÀtúríçÿGû‡pÂlüoß#.Lãccû±¬aÿkÒøŠ©ÿ_ãz^uaÿûÁǦ§ÿ…Íøß°ÿfãGßv¬ÿM¿íFþ¿0ÿõÆ6·Ã>é&4>{l ÿ}Öø¨=¶¡ÿ…õèßÀèß+#œÿqúŸÿB8ƒæwÀ_“ÔA„öÓÿhÿŽÉcgndxûQÿ[·`ý_«©ÿ!?®þ¯¦ÿ7„^ý¤£Ö©/ ÚÐŽˆ
 Åÿ¯º¢ #	ÐÛ‡þÞDÝD?,ÿ¡‚M,ÿq"dö_ªþïTÿSôÿƒð.mÊÓú¿q/Lëÿ*z¡½aÆ÷/õ}ÿÂŒëŸioÞ[Êߦð·©ûMëÿŽ¿æ–ê7.úa’RiØQë>a$ùé&ÄÖjzè¦â·.øQï# ›ÿõ™ÿÂbîdz!'­ƒÈìXÿ—öá˜<Voã½Hõó‹Äþ-Pÿ3úÙø—ÒÿÜDÿSÌÿ¡§ÿéí þ‡qMÓ(=Ôÿš¦';Iÿ¬ò£ê¿µi ÿÙ&µ?©N}%dö_JÿÛ¿ö‘û?wMÈn…ÿÚ©þ§;•vxÁPÿ¾Ÿ¸ÏNô¿vÜû•.ìTÿ³ê…ÜÚ-ýÏnév+î×Nõ¿ñ×ÜÐÿì¸æGp*(§=µ. Ú±Ïßô‚
-Ю
-€– ùÙüÔÿèÿ
-a©ÎÇb͏çk~¬ÿñ@döÔÿhÿZÚ‹6:	°úùETÿGëÿ²þáøãêÿRÿƒðµþ¯qÖ¤hzú_ÔÉ?ÊÿRtÑLüÿÚ+‡ùÿ\he7ðÿ3ÁÄdcõ³êë ´\ý_Æ@x/«6ëÿª±bè–éÑ}	P[û^{ÅÔÐö+„´WLëÿ&“Ÿ±UÿWmÖÿU›õÕXœù¶£üÁ©¤ÂðëŽëÿª‚n†½:ÛïkÍàoÝPÛ+Fr`;§¾âØõÈZý_EAð²ç\ý_Æ@X¯ÿûfËú¿Õ"´\ý_Ú?–öJÏŒÿ]¨ÿ“é Øu$óÿáøÒÿ¦þ‘ó?„¯õÛ×m?þ×Õåì†ÿ:ÛÅy,ÿ…&¹ûŸ	Ú6À:šØžåYþãLí¿þ7ñÿùŸ!¼Ýt tSÀÔ™_1Ìÿ\?Â×M} Û9F÷| ÝÔ	ðƒª_CxÓÐmººM?@7uœ~Û
-O at 7vÔÚ)Ó4jðe¶
- ÛYÕ†Æ
->cì
-»ŒšƒN]- LÀ#œÿ™ÿ¯2JëvëúâÔïú¡ý3ÿ_eÖÒNÖø,}Wõó‹ÄþMÔÿÿA8þ8ýþzú_çteú@‚Q¥qú¿ URcý/j¯†ÕƒÒÖõ¿dL{ÖÕÏ©¯„Ðþqõ¹ÿƒp×€L³• ð~ÅHsN¯é&õR ¶WLõ¿{þpí3úŸïÕÿh¯ØÐÿÞ¯XÑÿÚ+6ò Þ¯Øø¶CýϺÔÅ;~ËXÿk­Ñƒo»!ÿu=¶îý×^1–ÿ¼írúcEþ¼LùïjçœþÇø?…ës0ÿßÉÚ?Nÿ£ýCÈ×ÒjhlÖáüB!¤Jþqæ_£ h 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ia64-64n2s2c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,733 +0,0 @@
-Machine (phys=0 total=516912176KB)
-  Group1 #0 (total=129224048KB)
-    Group0 #0 (total=32296336KB)
-      NUMANode #0 (phys=0 local=8064400KB total=8064400KB)
-        Socket #0 (phys=0)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-          Core #1 (phys=1)
-            PU #1 (phys=1)
-        Socket #1 (phys=3)
-          Core #2 (phys=0)
-            PU #2 (phys=2)
-          Core #3 (phys=1)
-            PU #3 (phys=3)
-      NUMANode #1 (phys=1 local=8077312KB total=8077312KB)
-        Socket #2 (phys=512)
-          Core #4 (phys=0)
-            PU #4 (phys=4)
-          Core #5 (phys=1)
-            PU #5 (phys=5)
-        Socket #3 (phys=515)
-          Core #6 (phys=0)
-            PU #6 (phys=6)
-          Core #7 (phys=1)
-            PU #7 (phys=7)
-      NUMANode #2 (phys=2 local=8077312KB total=8077312KB)
-        Socket #4 (phys=1024)
-          Core #8 (phys=0)
-            PU #8 (phys=8)
-          Core #9 (phys=1)
-            PU #9 (phys=9)
-        Socket #5 (phys=1027)
-          Core #10 (phys=0)
-            PU #10 (phys=10)
-          Core #11 (phys=1)
-            PU #11 (phys=11)
-      NUMANode #3 (phys=3 local=8077312KB total=8077312KB)
-        Socket #6 (phys=1536)
-          Core #12 (phys=0)
-            PU #12 (phys=12)
-          Core #13 (phys=1)
-            PU #13 (phys=13)
-        Socket #7 (phys=1539)
-          Core #14 (phys=0)
-            PU #14 (phys=14)
-          Core #15 (phys=1)
-            PU #15 (phys=15)
-    Group0 #1 (total=32309232KB)
-      NUMANode #4 (phys=4 local=8077312KB total=8077312KB)
-        Socket #8 (phys=2048)
-          Core #16 (phys=0)
-            PU #16 (phys=16)
-          Core #17 (phys=1)
-            PU #17 (phys=17)
-        Socket #9 (phys=2051)
-          Core #18 (phys=0)
-            PU #18 (phys=18)
-          Core #19 (phys=1)
-            PU #19 (phys=19)
-      NUMANode #5 (phys=5 local=8077312KB total=8077312KB)
-        Socket #10 (phys=2560)
-          Core #20 (phys=0)
-            PU #20 (phys=20)
-          Core #21 (phys=1)
-            PU #21 (phys=21)
-        Socket #11 (phys=2563)
-          Core #22 (phys=0)
-            PU #22 (phys=22)
-          Core #23 (phys=1)
-            PU #23 (phys=23)
-      NUMANode #6 (phys=6 local=8077296KB total=8077296KB)
-        Socket #12 (phys=3072)
-          Core #24 (phys=0)
-            PU #24 (phys=24)
-          Core #25 (phys=1)
-            PU #25 (phys=25)
-        Socket #13 (phys=3075)
-          Core #26 (phys=0)
-            PU #26 (phys=26)
-          Core #27 (phys=1)
-            PU #27 (phys=27)
-      NUMANode #7 (phys=7 local=8077312KB total=8077312KB)
-        Socket #14 (phys=3584)
-          Core #28 (phys=0)
-            PU #28 (phys=28)
-          Core #29 (phys=1)
-            PU #29 (phys=29)
-        Socket #15 (phys=3587)
-          Core #30 (phys=0)
-            PU #30 (phys=30)
-          Core #31 (phys=1)
-            PU #31 (phys=31)
-    Group0 #2 (total=32309248KB)
-      NUMANode #8 (phys=8 local=8077312KB total=8077312KB)
-        Socket #16 (phys=4096)
-          Core #32 (phys=0)
-            PU #32 (phys=32)
-          Core #33 (phys=1)
-            PU #33 (phys=33)
-        Socket #17 (phys=4099)
-          Core #34 (phys=0)
-            PU #34 (phys=34)
-          Core #35 (phys=1)
-            PU #35 (phys=35)
-      NUMANode #9 (phys=9 local=8077312KB total=8077312KB)
-        Socket #18 (phys=4608)
-          Core #36 (phys=0)
-            PU #36 (phys=36)
-          Core #37 (phys=1)
-            PU #37 (phys=37)
-        Socket #19 (phys=4611)
-          Core #38 (phys=0)
-            PU #38 (phys=38)
-          Core #39 (phys=1)
-            PU #39 (phys=39)
-      NUMANode #10 (phys=10 local=8077312KB total=8077312KB)
-        Socket #20 (phys=5120)
-          Core #40 (phys=0)
-            PU #40 (phys=40)
-          Core #41 (phys=1)
-            PU #41 (phys=41)
-        Socket #21 (phys=5123)
-          Core #42 (phys=0)
-            PU #42 (phys=42)
-          Core #43 (phys=1)
-            PU #43 (phys=43)
-      NUMANode #11 (phys=11 local=8077312KB total=8077312KB)
-        Socket #22 (phys=5632)
-          Core #44 (phys=0)
-            PU #44 (phys=44)
-          Core #45 (phys=1)
-            PU #45 (phys=45)
-        Socket #23 (phys=5635)
-          Core #46 (phys=0)
-            PU #46 (phys=46)
-          Core #47 (phys=1)
-            PU #47 (phys=47)
-    Group0 #3 (total=32309232KB)
-      NUMANode #12 (phys=12 local=8077312KB total=8077312KB)
-        Socket #24 (phys=6144)
-          Core #48 (phys=0)
-            PU #48 (phys=48)
-          Core #49 (phys=1)
-            PU #49 (phys=49)
-        Socket #25 (phys=6147)
-          Core #50 (phys=0)
-            PU #50 (phys=50)
-          Core #51 (phys=1)
-            PU #51 (phys=51)
-      NUMANode #13 (phys=13 local=8077312KB total=8077312KB)
-        Socket #26 (phys=6656)
-          Core #52 (phys=0)
-            PU #52 (phys=52)
-          Core #53 (phys=1)
-            PU #53 (phys=53)
-        Socket #27 (phys=6659)
-          Core #54 (phys=0)
-            PU #54 (phys=54)
-          Core #55 (phys=1)
-            PU #55 (phys=55)
-      NUMANode #14 (phys=14 local=8077296KB total=8077296KB)
-        Socket #28 (phys=7168)
-          Core #56 (phys=0)
-            PU #56 (phys=56)
-          Core #57 (phys=1)
-            PU #57 (phys=57)
-        Socket #29 (phys=7171)
-          Core #58 (phys=0)
-            PU #58 (phys=58)
-          Core #59 (phys=1)
-            PU #59 (phys=59)
-      NUMANode #15 (phys=15 local=8077312KB total=8077312KB)
-        Socket #30 (phys=7680)
-          Core #60 (phys=0)
-            PU #60 (phys=60)
-          Core #61 (phys=1)
-            PU #61 (phys=61)
-        Socket #31 (phys=7683)
-          Core #62 (phys=0)
-            PU #62 (phys=62)
-          Core #63 (phys=1)
-            PU #63 (phys=63)
-  Group1 #1 (total=129236960KB)
-    Group0 #4 (total=32309248KB)
-      NUMANode #16 (phys=16 local=8077312KB total=8077312KB)
-        Socket #32 (phys=8192)
-          Core #64 (phys=0)
-            PU #64 (phys=64)
-          Core #65 (phys=1)
-            PU #65 (phys=65)
-        Socket #33 (phys=8195)
-          Core #66 (phys=0)
-            PU #66 (phys=66)
-          Core #67 (phys=1)
-            PU #67 (phys=67)
-      NUMANode #17 (phys=17 local=8077312KB total=8077312KB)
-        Socket #34 (phys=8704)
-          Core #68 (phys=0)
-            PU #68 (phys=68)
-          Core #69 (phys=1)
-            PU #69 (phys=69)
-        Socket #35 (phys=8707)
-          Core #70 (phys=0)
-            PU #70 (phys=70)
-          Core #71 (phys=1)
-            PU #71 (phys=71)
-      NUMANode #18 (phys=18 local=8077312KB total=8077312KB)
-        Socket #36 (phys=9216)
-          Core #72 (phys=0)
-            PU #72 (phys=72)
-          Core #73 (phys=1)
-            PU #73 (phys=73)
-        Socket #37 (phys=9219)
-          Core #74 (phys=0)
-            PU #74 (phys=74)
-          Core #75 (phys=1)
-            PU #75 (phys=75)
-      NUMANode #19 (phys=19 local=8077312KB total=8077312KB)
-        Socket #38 (phys=9728)
-          Core #76 (phys=0)
-            PU #76 (phys=76)
-          Core #77 (phys=1)
-            PU #77 (phys=77)
-        Socket #39 (phys=9731)
-          Core #78 (phys=0)
-            PU #78 (phys=78)
-          Core #79 (phys=1)
-            PU #79 (phys=79)
-    Group0 #5 (total=32309232KB)
-      NUMANode #20 (phys=20 local=8077312KB total=8077312KB)
-        Socket #40 (phys=10240)
-          Core #80 (phys=0)
-            PU #80 (phys=80)
-          Core #81 (phys=1)
-            PU #81 (phys=81)
-        Socket #41 (phys=10243)
-          Core #82 (phys=0)
-            PU #82 (phys=82)
-          Core #83 (phys=1)
-            PU #83 (phys=83)
-      NUMANode #21 (phys=21 local=8077312KB total=8077312KB)
-        Socket #42 (phys=10752)
-          Core #84 (phys=0)
-            PU #84 (phys=84)
-          Core #85 (phys=1)
-            PU #85 (phys=85)
-        Socket #43 (phys=10755)
-          Core #86 (phys=0)
-            PU #86 (phys=86)
-          Core #87 (phys=1)
-            PU #87 (phys=87)
-      NUMANode #22 (phys=22 local=8077296KB total=8077296KB)
-        Socket #44 (phys=11264)
-          Core #88 (phys=0)
-            PU #88 (phys=88)
-          Core #89 (phys=1)
-            PU #89 (phys=89)
-        Socket #45 (phys=11267)
-          Core #90 (phys=0)
-            PU #90 (phys=90)
-          Core #91 (phys=1)
-            PU #91 (phys=91)
-      NUMANode #23 (phys=23 local=8077312KB total=8077312KB)
-        Socket #46 (phys=11776)
-          Core #92 (phys=0)
-            PU #92 (phys=92)
-          Core #93 (phys=1)
-            PU #93 (phys=93)
-        Socket #47 (phys=11779)
-          Core #94 (phys=0)
-            PU #94 (phys=94)
-          Core #95 (phys=1)
-            PU #95 (phys=95)
-    Group0 #6 (total=32309248KB)
-      NUMANode #24 (phys=24 local=8077312KB total=8077312KB)
-        Socket #48 (phys=12288)
-          Core #96 (phys=0)
-            PU #96 (phys=96)
-          Core #97 (phys=1)
-            PU #97 (phys=97)
-        Socket #49 (phys=12291)
-          Core #98 (phys=0)
-            PU #98 (phys=98)
-          Core #99 (phys=1)
-            PU #99 (phys=99)
-      NUMANode #25 (phys=25 local=8077312KB total=8077312KB)
-        Socket #50 (phys=12800)
-          Core #100 (phys=0)
-            PU #100 (phys=100)
-          Core #101 (phys=1)
-            PU #101 (phys=101)
-        Socket #51 (phys=12803)
-          Core #102 (phys=0)
-            PU #102 (phys=102)
-          Core #103 (phys=1)
-            PU #103 (phys=103)
-      NUMANode #26 (phys=26 local=8077312KB total=8077312KB)
-        Socket #52 (phys=13312)
-          Core #104 (phys=0)
-            PU #104 (phys=104)
-          Core #105 (phys=1)
-            PU #105 (phys=105)
-        Socket #53 (phys=13315)
-          Core #106 (phys=0)
-            PU #106 (phys=106)
-          Core #107 (phys=1)
-            PU #107 (phys=107)
-      NUMANode #27 (phys=27 local=8077312KB total=8077312KB)
-        Socket #54 (phys=13824)
-          Core #108 (phys=0)
-            PU #108 (phys=108)
-          Core #109 (phys=1)
-            PU #109 (phys=109)
-        Socket #55 (phys=13827)
-          Core #110 (phys=0)
-            PU #110 (phys=110)
-          Core #111 (phys=1)
-            PU #111 (phys=111)
-    Group0 #7 (total=32309232KB)
-      NUMANode #28 (phys=28 local=8077312KB total=8077312KB)
-        Socket #56 (phys=14336)
-          Core #112 (phys=0)
-            PU #112 (phys=112)
-          Core #113 (phys=1)
-            PU #113 (phys=113)
-        Socket #57 (phys=14339)
-          Core #114 (phys=0)
-            PU #114 (phys=114)
-          Core #115 (phys=1)
-            PU #115 (phys=115)
-      NUMANode #29 (phys=29 local=8077296KB total=8077296KB)
-        Socket #58 (phys=14848)
-          Core #116 (phys=0)
-            PU #116 (phys=116)
-          Core #117 (phys=1)
-            PU #117 (phys=117)
-        Socket #59 (phys=14851)
-          Core #118 (phys=0)
-            PU #118 (phys=118)
-          Core #119 (phys=1)
-            PU #119 (phys=119)
-      NUMANode #30 (phys=30 local=8077312KB total=8077312KB)
-        Socket #60 (phys=15360)
-          Core #120 (phys=0)
-            PU #120 (phys=120)
-          Core #121 (phys=1)
-            PU #121 (phys=121)
-        Socket #61 (phys=15363)
-          Core #122 (phys=0)
-            PU #122 (phys=122)
-          Core #123 (phys=1)
-            PU #123 (phys=123)
-      NUMANode #31 (phys=31 local=8077312KB total=8077312KB)
-        Socket #62 (phys=15872)
-          Core #124 (phys=0)
-            PU #124 (phys=124)
-          Core #125 (phys=1)
-            PU #125 (phys=125)
-        Socket #63 (phys=15875)
-          Core #126 (phys=0)
-            PU #126 (phys=126)
-          Core #127 (phys=1)
-            PU #127 (phys=127)
-  Group1 #2 (total=129236960KB)
-    Group0 #8 (total=32309248KB)
-      NUMANode #32 (phys=32 local=8077312KB total=8077312KB)
-        Socket #64 (phys=16384)
-          Core #128 (phys=0)
-            PU #128 (phys=128)
-          Core #129 (phys=1)
-            PU #129 (phys=129)
-        Socket #65 (phys=16387)
-          Core #130 (phys=0)
-            PU #130 (phys=130)
-          Core #131 (phys=1)
-            PU #131 (phys=131)
-      NUMANode #33 (phys=33 local=8077312KB total=8077312KB)
-        Socket #66 (phys=16896)
-          Core #132 (phys=0)
-            PU #132 (phys=132)
-          Core #133 (phys=1)
-            PU #133 (phys=133)
-        Socket #67 (phys=16899)
-          Core #134 (phys=0)
-            PU #134 (phys=134)
-          Core #135 (phys=1)
-            PU #135 (phys=135)
-      NUMANode #34 (phys=34 local=8077312KB total=8077312KB)
-        Socket #68 (phys=17408)
-          Core #136 (phys=0)
-            PU #136 (phys=136)
-          Core #137 (phys=1)
-            PU #137 (phys=137)
-        Socket #69 (phys=17411)
-          Core #138 (phys=0)
-            PU #138 (phys=138)
-          Core #139 (phys=1)
-            PU #139 (phys=139)
-      NUMANode #35 (phys=35 local=8077312KB total=8077312KB)
-        Socket #70 (phys=17920)
-          Core #140 (phys=0)
-            PU #140 (phys=140)
-          Core #141 (phys=1)
-            PU #141 (phys=141)
-        Socket #71 (phys=17923)
-          Core #142 (phys=0)
-            PU #142 (phys=142)
-          Core #143 (phys=1)
-            PU #143 (phys=143)
-    Group0 #9 (total=32309232KB)
-      NUMANode #36 (phys=36 local=8077312KB total=8077312KB)
-        Socket #72 (phys=18432)
-          Core #144 (phys=0)
-            PU #144 (phys=144)
-          Core #145 (phys=1)
-            PU #145 (phys=145)
-        Socket #73 (phys=18435)
-          Core #146 (phys=0)
-            PU #146 (phys=146)
-          Core #147 (phys=1)
-            PU #147 (phys=147)
-      NUMANode #37 (phys=37 local=8077296KB total=8077296KB)
-        Socket #74 (phys=18944)
-          Core #148 (phys=0)
-            PU #148 (phys=148)
-          Core #149 (phys=1)
-            PU #149 (phys=149)
-        Socket #75 (phys=18947)
-          Core #150 (phys=0)
-            PU #150 (phys=150)
-          Core #151 (phys=1)
-            PU #151 (phys=151)
-      NUMANode #38 (phys=38 local=8077312KB total=8077312KB)
-        Socket #76 (phys=19456)
-          Core #152 (phys=0)
-            PU #152 (phys=152)
-          Core #153 (phys=1)
-            PU #153 (phys=153)
-        Socket #77 (phys=19459)
-          Core #154 (phys=0)
-            PU #154 (phys=154)
-          Core #155 (phys=1)
-            PU #155 (phys=155)
-      NUMANode #39 (phys=39 local=8077312KB total=8077312KB)
-        Socket #78 (phys=19968)
-          Core #156 (phys=0)
-            PU #156 (phys=156)
-          Core #157 (phys=1)
-            PU #157 (phys=157)
-        Socket #79 (phys=19971)
-          Core #158 (phys=0)
-            PU #158 (phys=158)
-          Core #159 (phys=1)
-            PU #159 (phys=159)
-    Group0 #10 (total=32309248KB)
-      NUMANode #40 (phys=40 local=8077312KB total=8077312KB)
-        Socket #80 (phys=20480)
-          Core #160 (phys=0)
-            PU #160 (phys=160)
-          Core #161 (phys=1)
-            PU #161 (phys=161)
-        Socket #81 (phys=20483)
-          Core #162 (phys=0)
-            PU #162 (phys=162)
-          Core #163 (phys=1)
-            PU #163 (phys=163)
-      NUMANode #41 (phys=41 local=8077312KB total=8077312KB)
-        Socket #82 (phys=20992)
-          Core #164 (phys=0)
-            PU #164 (phys=164)
-          Core #165 (phys=1)
-            PU #165 (phys=165)
-        Socket #83 (phys=20995)
-          Core #166 (phys=0)
-            PU #166 (phys=166)
-          Core #167 (phys=1)
-            PU #167 (phys=167)
-      NUMANode #42 (phys=42 local=8077312KB total=8077312KB)
-        Socket #84 (phys=21504)
-          Core #168 (phys=0)
-            PU #168 (phys=168)
-          Core #169 (phys=1)
-            PU #169 (phys=169)
-        Socket #85 (phys=21507)
-          Core #170 (phys=0)
-            PU #170 (phys=170)
-          Core #171 (phys=1)
-            PU #171 (phys=171)
-      NUMANode #43 (phys=43 local=8077312KB total=8077312KB)
-        Socket #86 (phys=22016)
-          Core #172 (phys=0)
-            PU #172 (phys=172)
-          Core #173 (phys=1)
-            PU #173 (phys=173)
-        Socket #87 (phys=22019)
-          Core #174 (phys=0)
-            PU #174 (phys=174)
-          Core #175 (phys=1)
-            PU #175 (phys=175)
-    Group0 #11 (total=32309232KB)
-      NUMANode #44 (phys=44 local=8077312KB total=8077312KB)
-        Socket #88 (phys=22528)
-          Core #176 (phys=0)
-            PU #176 (phys=176)
-          Core #177 (phys=1)
-            PU #177 (phys=177)
-        Socket #89 (phys=22531)
-          Core #178 (phys=0)
-            PU #178 (phys=178)
-          Core #179 (phys=1)
-            PU #179 (phys=179)
-      NUMANode #45 (phys=45 local=8077296KB total=8077296KB)
-        Socket #90 (phys=23040)
-          Core #180 (phys=0)
-            PU #180 (phys=180)
-          Core #181 (phys=1)
-            PU #181 (phys=181)
-        Socket #91 (phys=23043)
-          Core #182 (phys=0)
-            PU #182 (phys=182)
-          Core #183 (phys=1)
-            PU #183 (phys=183)
-      NUMANode #46 (phys=46 local=8077312KB total=8077312KB)
-        Socket #92 (phys=23552)
-          Core #184 (phys=0)
-            PU #184 (phys=184)
-          Core #185 (phys=1)
-            PU #185 (phys=185)
-        Socket #93 (phys=23555)
-          Core #186 (phys=0)
-            PU #186 (phys=186)
-          Core #187 (phys=1)
-            PU #187 (phys=187)
-      NUMANode #47 (phys=47 local=8077312KB total=8077312KB)
-        Socket #94 (phys=24064)
-          Core #188 (phys=0)
-            PU #188 (phys=188)
-          Core #189 (phys=1)
-            PU #189 (phys=189)
-        Socket #95 (phys=24067)
-          Core #190 (phys=0)
-            PU #190 (phys=190)
-          Core #191 (phys=1)
-            PU #191 (phys=191)
-  Group1 #3 (total=129214208KB)
-    Group0 #12 (total=32309248KB)
-      NUMANode #48 (phys=48 local=8077312KB total=8077312KB)
-        Socket #96 (phys=24576)
-          Core #192 (phys=0)
-            PU #192 (phys=192)
-          Core #193 (phys=1)
-            PU #193 (phys=193)
-        Socket #97 (phys=24579)
-          Core #194 (phys=0)
-            PU #194 (phys=194)
-          Core #195 (phys=1)
-            PU #195 (phys=195)
-      NUMANode #49 (phys=49 local=8077312KB total=8077312KB)
-        Socket #98 (phys=25088)
-          Core #196 (phys=0)
-            PU #196 (phys=196)
-          Core #197 (phys=1)
-            PU #197 (phys=197)
-        Socket #99 (phys=25091)
-          Core #198 (phys=0)
-            PU #198 (phys=198)
-          Core #199 (phys=1)
-            PU #199 (phys=199)
-      NUMANode #50 (phys=50 local=8077312KB total=8077312KB)
-        Socket #100 (phys=25600)
-          Core #200 (phys=0)
-            PU #200 (phys=200)
-          Core #201 (phys=1)
-            PU #201 (phys=201)
-        Socket #101 (phys=25603)
-          Core #202 (phys=0)
-            PU #202 (phys=202)
-          Core #203 (phys=1)
-            PU #203 (phys=203)
-      NUMANode #51 (phys=51 local=8077312KB total=8077312KB)
-        Socket #102 (phys=26112)
-          Core #204 (phys=0)
-            PU #204 (phys=204)
-          Core #205 (phys=1)
-            PU #205 (phys=205)
-        Socket #103 (phys=26115)
-          Core #206 (phys=0)
-            PU #206 (phys=206)
-          Core #207 (phys=1)
-            PU #207 (phys=207)
-    Group0 #13 (total=32309232KB)
-      NUMANode #52 (phys=52 local=8077312KB total=8077312KB)
-        Socket #104 (phys=26624)
-          Core #208 (phys=0)
-            PU #208 (phys=208)
-          Core #209 (phys=1)
-            PU #209 (phys=209)
-        Socket #105 (phys=26627)
-          Core #210 (phys=0)
-            PU #210 (phys=210)
-          Core #211 (phys=1)
-            PU #211 (phys=211)
-      NUMANode #53 (phys=53 local=8077296KB total=8077296KB)
-        Socket #106 (phys=27136)
-          Core #212 (phys=0)
-            PU #212 (phys=212)
-          Core #213 (phys=1)
-            PU #213 (phys=213)
-        Socket #107 (phys=27139)
-          Core #214 (phys=0)
-            PU #214 (phys=214)
-          Core #215 (phys=1)
-            PU #215 (phys=215)
-      NUMANode #54 (phys=54 local=8077312KB total=8077312KB)
-        Socket #108 (phys=27648)
-          Core #216 (phys=0)
-            PU #216 (phys=216)
-          Core #217 (phys=1)
-            PU #217 (phys=217)
-        Socket #109 (phys=27651)
-          Core #218 (phys=0)
-            PU #218 (phys=218)
-          Core #219 (phys=1)
-            PU #219 (phys=219)
-      NUMANode #55 (phys=55 local=8077312KB total=8077312KB)
-        Socket #110 (phys=28160)
-          Core #220 (phys=0)
-            PU #220 (phys=220)
-          Core #221 (phys=1)
-            PU #221 (phys=221)
-        Socket #111 (phys=28163)
-          Core #222 (phys=0)
-            PU #222 (phys=222)
-          Core #223 (phys=1)
-            PU #223 (phys=223)
-    Group0 #14 (total=32309248KB)
-      NUMANode #56 (phys=56 local=8077312KB total=8077312KB)
-        Socket #112 (phys=28672)
-          Core #224 (phys=0)
-            PU #224 (phys=224)
-          Core #225 (phys=1)
-            PU #225 (phys=225)
-        Socket #113 (phys=28675)
-          Core #226 (phys=0)
-            PU #226 (phys=226)
-          Core #227 (phys=1)
-            PU #227 (phys=227)
-      NUMANode #57 (phys=57 local=8077312KB total=8077312KB)
-        Socket #114 (phys=29184)
-          Core #228 (phys=0)
-            PU #228 (phys=228)
-          Core #229 (phys=1)
-            PU #229 (phys=229)
-        Socket #115 (phys=29187)
-          Core #230 (phys=0)
-            PU #230 (phys=230)
-          Core #231 (phys=1)
-            PU #231 (phys=231)
-      NUMANode #58 (phys=58 local=8077312KB total=8077312KB)
-        Socket #116 (phys=29696)
-          Core #232 (phys=0)
-            PU #232 (phys=232)
-          Core #233 (phys=1)
-            PU #233 (phys=233)
-        Socket #117 (phys=29699)
-          Core #234 (phys=0)
-            PU #234 (phys=234)
-          Core #235 (phys=1)
-            PU #235 (phys=235)
-      NUMANode #59 (phys=59 local=8077312KB total=8077312KB)
-        Socket #118 (phys=30208)
-          Core #236 (phys=0)
-            PU #236 (phys=236)
-          Core #237 (phys=1)
-            PU #237 (phys=237)
-        Socket #119 (phys=30211)
-          Core #238 (phys=0)
-            PU #238 (phys=238)
-          Core #239 (phys=1)
-            PU #239 (phys=239)
-    Group0 #15 (total=32286480KB)
-      NUMANode #60 (phys=60 local=8077312KB total=8077312KB)
-        Socket #120 (phys=30720)
-          Core #240 (phys=0)
-            PU #240 (phys=240)
-          Core #241 (phys=1)
-            PU #241 (phys=241)
-        Socket #121 (phys=30723)
-          Core #242 (phys=0)
-            PU #242 (phys=242)
-          Core #243 (phys=1)
-            PU #243 (phys=243)
-      NUMANode #61 (phys=61 local=8077296KB total=8077296KB)
-        Socket #122 (phys=31232)
-          Core #244 (phys=0)
-            PU #244 (phys=244)
-          Core #245 (phys=1)
-            PU #245 (phys=245)
-        Socket #123 (phys=31235)
-          Core #246 (phys=0)
-            PU #246 (phys=246)
-          Core #247 (phys=1)
-            PU #247 (phys=247)
-      NUMANode #62 (phys=62 local=8077312KB total=8077312KB)
-        Socket #124 (phys=31744)
-          Core #248 (phys=0)
-            PU #248 (phys=248)
-          Core #249 (phys=1)
-            PU #249 (phys=249)
-        Socket #125 (phys=31747)
-          Core #250 (phys=0)
-            PU #250 (phys=250)
-          Core #251 (phys=1)
-            PU #251 (phys=251)
-      NUMANode #63 (phys=63 local=8054560KB total=8054560KB)
-        Socket #126 (phys=32256)
-          Core #252 (phys=0)
-            PU #252 (phys=252)
-          Core #253 (phys=1)
-            PU #253 (phys=253)
-        Socket #127 (phys=32259)
-          Core #254 (phys=0)
-            PU #254 (phys=254)
-          Core #255 (phys=1)
-            PU #255 (phys=255)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Groups (type #7)
-  depth 2:	16 Groups (type #7)
-   depth 3:	64 NUMANodes (type #2)
-    depth 4:	128 Sockets (type #3)
-     depth 5:	256 Cores (type #5)
-      depth 6:	256 PUs (type #6)
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.exclude
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.exclude	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.exclude	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+*/sys/devices/system/cpu/cpu*/cache

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,599 @@
+Machine (phys=0 total=516423680KB Backend=Linux)
+  Group0 #0 (total=124780544KB)
+    NUMANode #0 (phys=0 local=58458112KB total=58458112KB)
+      Socket #0
+        L3Cache #0 (4096KB line=128)
+          L2Cache #0 (256KB line=128)
+            L1Cache #0 (32KB line=128)
+              Core #0 (phys=0)
+                PU #0 (phys=0)
+                PU #1 (phys=1)
+                PU #2 (phys=2)
+                PU #3 (phys=3)
+      Socket #1
+        L3Cache #1 (4096KB line=128)
+          L2Cache #1 (256KB line=128)
+            L1Cache #1 (32KB line=128)
+              Core #1 (phys=4)
+                PU #4 (phys=4)
+                PU #5 (phys=5)
+                PU #6 (phys=6)
+                PU #7 (phys=7)
+      Socket #2
+        L3Cache #2 (4096KB line=128)
+          L2Cache #2 (256KB line=128)
+            L1Cache #2 (32KB line=128)
+              Core #2 (phys=8)
+                PU #8 (phys=8)
+                PU #9 (phys=9)
+                PU #10 (phys=10)
+                PU #11 (phys=11)
+      Socket #3
+        L3Cache #3 (4096KB line=128)
+          L2Cache #3 (256KB line=128)
+            L1Cache #3 (32KB line=128)
+              Core #3 (phys=12)
+                PU #12 (phys=12)
+                PU #13 (phys=13)
+                PU #14 (phys=14)
+                PU #15 (phys=15)
+      Socket #4
+        L3Cache #4 (4096KB line=128)
+          L2Cache #4 (256KB line=128)
+            L1Cache #4 (32KB line=128)
+              Core #4 (phys=16)
+                PU #16 (phys=16)
+                PU #17 (phys=17)
+                PU #18 (phys=18)
+                PU #19 (phys=19)
+      Socket #5
+        L3Cache #5 (4096KB line=128)
+          L2Cache #5 (256KB line=128)
+            L1Cache #5 (32KB line=128)
+              Core #5 (phys=20)
+                PU #20 (phys=20)
+                PU #21 (phys=21)
+                PU #22 (phys=22)
+                PU #23 (phys=23)
+      Socket #6
+        L3Cache #6 (4096KB line=128)
+          L2Cache #6 (256KB line=128)
+            L1Cache #6 (32KB line=128)
+              Core #6 (phys=24)
+                PU #24 (phys=24)
+                PU #25 (phys=25)
+                PU #26 (phys=26)
+                PU #27 (phys=27)
+      Socket #7
+        L3Cache #7 (4096KB line=128)
+          L2Cache #7 (256KB line=128)
+            L1Cache #7 (32KB line=128)
+              Core #7 (phys=28)
+                PU #28 (phys=28)
+                PU #29 (phys=29)
+                PU #30 (phys=30)
+                PU #31 (phys=31)
+    NUMANode #1 (phys=1 local=66322432KB total=66322432KB)
+      Socket #8
+        L3Cache #8 (4096KB line=128)
+          L2Cache #8 (256KB line=128)
+            L1Cache #8 (32KB line=128)
+              Core #8 (phys=32)
+                PU #32 (phys=32)
+                PU #33 (phys=33)
+                PU #34 (phys=34)
+                PU #35 (phys=35)
+      Socket #9
+        L3Cache #9 (4096KB line=128)
+          L2Cache #9 (256KB line=128)
+            L1Cache #9 (32KB line=128)
+              Core #9 (phys=36)
+                PU #36 (phys=36)
+                PU #37 (phys=37)
+                PU #38 (phys=38)
+                PU #39 (phys=39)
+      Socket #10
+        L3Cache #10 (4096KB line=128)
+          L2Cache #10 (256KB line=128)
+            L1Cache #10 (32KB line=128)
+              Core #10 (phys=40)
+                PU #40 (phys=40)
+                PU #41 (phys=41)
+                PU #42 (phys=42)
+                PU #43 (phys=43)
+      Socket #11
+        L3Cache #11 (4096KB line=128)
+          L2Cache #11 (256KB line=128)
+            L1Cache #11 (32KB line=128)
+              Core #11 (phys=44)
+                PU #44 (phys=44)
+                PU #45 (phys=45)
+                PU #46 (phys=46)
+                PU #47 (phys=47)
+      Socket #12
+        L3Cache #12 (4096KB line=128)
+          L2Cache #12 (256KB line=128)
+            L1Cache #12 (32KB line=128)
+              Core #12 (phys=48)
+                PU #48 (phys=48)
+                PU #49 (phys=49)
+                PU #50 (phys=50)
+                PU #51 (phys=51)
+      Socket #13
+        L3Cache #13 (4096KB line=128)
+          L2Cache #13 (256KB line=128)
+            L1Cache #13 (32KB line=128)
+              Core #13 (phys=52)
+                PU #52 (phys=52)
+                PU #53 (phys=53)
+                PU #54 (phys=54)
+                PU #55 (phys=55)
+      Socket #14
+        L3Cache #14 (4096KB line=128)
+          L2Cache #14 (256KB line=128)
+            L1Cache #14 (32KB line=128)
+              Core #14 (phys=56)
+                PU #56 (phys=56)
+                PU #57 (phys=57)
+                PU #58 (phys=58)
+                PU #59 (phys=59)
+      Socket #15
+        L3Cache #15 (4096KB line=128)
+          L2Cache #15 (256KB line=128)
+            L1Cache #15 (32KB line=128)
+              Core #15 (phys=60)
+                PU #60 (phys=60)
+                PU #61 (phys=61)
+                PU #62 (phys=62)
+                PU #63 (phys=63)
+  Group0 #1 (total=133955584KB)
+    NUMANode #2 (phys=4 local=66846720KB total=66846720KB)
+      Socket #16
+        L3Cache #16 (4096KB line=128)
+          L2Cache #16 (256KB line=128)
+            L1Cache #16 (32KB line=128)
+              Core #16 (phys=64)
+                PU #64 (phys=64)
+                PU #65 (phys=65)
+                PU #66 (phys=66)
+                PU #67 (phys=67)
+      Socket #17
+        L3Cache #17 (4096KB line=128)
+          L2Cache #17 (256KB line=128)
+            L1Cache #17 (32KB line=128)
+              Core #17 (phys=68)
+                PU #68 (phys=68)
+                PU #69 (phys=69)
+                PU #70 (phys=70)
+                PU #71 (phys=71)
+      Socket #18
+        L3Cache #18 (4096KB line=128)
+          L2Cache #18 (256KB line=128)
+            L1Cache #18 (32KB line=128)
+              Core #18 (phys=72)
+                PU #72 (phys=72)
+                PU #73 (phys=73)
+                PU #74 (phys=74)
+                PU #75 (phys=75)
+      Socket #19
+        L3Cache #19 (4096KB line=128)
+          L2Cache #19 (256KB line=128)
+            L1Cache #19 (32KB line=128)
+              Core #19 (phys=76)
+                PU #76 (phys=76)
+                PU #77 (phys=77)
+                PU #78 (phys=78)
+                PU #79 (phys=79)
+      Socket #20
+        L3Cache #20 (4096KB line=128)
+          L2Cache #20 (256KB line=128)
+            L1Cache #20 (32KB line=128)
+              Core #20 (phys=80)
+                PU #80 (phys=80)
+                PU #81 (phys=81)
+                PU #82 (phys=82)
+                PU #83 (phys=83)
+      Socket #21
+        L3Cache #21 (4096KB line=128)
+          L2Cache #21 (256KB line=128)
+            L1Cache #21 (32KB line=128)
+              Core #21 (phys=84)
+                PU #84 (phys=84)
+                PU #85 (phys=85)
+                PU #86 (phys=86)
+                PU #87 (phys=87)
+      Socket #22
+        L3Cache #22 (4096KB line=128)
+          L2Cache #22 (256KB line=128)
+            L1Cache #22 (32KB line=128)
+              Core #22 (phys=88)
+                PU #88 (phys=88)
+                PU #89 (phys=89)
+                PU #90 (phys=90)
+                PU #91 (phys=91)
+      Socket #23
+        L3Cache #23 (4096KB line=128)
+          L2Cache #23 (256KB line=128)
+            L1Cache #23 (32KB line=128)
+              Core #23 (phys=92)
+                PU #92 (phys=92)
+                PU #93 (phys=93)
+                PU #94 (phys=94)
+                PU #95 (phys=95)
+    NUMANode #3 (phys=5 local=67108864KB total=67108864KB)
+      Socket #24
+        L3Cache #24 (4096KB line=128)
+          L2Cache #24 (256KB line=128)
+            L1Cache #24 (32KB line=128)
+              Core #24 (phys=96)
+                PU #96 (phys=96)
+                PU #97 (phys=97)
+                PU #98 (phys=98)
+                PU #99 (phys=99)
+      Socket #25
+        L3Cache #25 (4096KB line=128)
+          L2Cache #25 (256KB line=128)
+            L1Cache #25 (32KB line=128)
+              Core #25 (phys=100)
+                PU #100 (phys=100)
+                PU #101 (phys=101)
+                PU #102 (phys=102)
+                PU #103 (phys=103)
+      Socket #26
+        L3Cache #26 (4096KB line=128)
+          L2Cache #26 (256KB line=128)
+            L1Cache #26 (32KB line=128)
+              Core #26 (phys=104)
+                PU #104 (phys=104)
+                PU #105 (phys=105)
+                PU #106 (phys=106)
+                PU #107 (phys=107)
+      Socket #27
+        L3Cache #27 (4096KB line=128)
+          L2Cache #27 (256KB line=128)
+            L1Cache #27 (32KB line=128)
+              Core #27 (phys=108)
+                PU #108 (phys=108)
+                PU #109 (phys=109)
+                PU #110 (phys=110)
+                PU #111 (phys=111)
+      Socket #28
+        L3Cache #28 (4096KB line=128)
+          L2Cache #28 (256KB line=128)
+            L1Cache #28 (32KB line=128)
+              Core #28 (phys=112)
+                PU #112 (phys=112)
+                PU #113 (phys=113)
+                PU #114 (phys=114)
+                PU #115 (phys=115)
+      Socket #29
+        L3Cache #29 (4096KB line=128)
+          L2Cache #29 (256KB line=128)
+            L1Cache #29 (32KB line=128)
+              Core #29 (phys=116)
+                PU #116 (phys=116)
+                PU #117 (phys=117)
+                PU #118 (phys=118)
+                PU #119 (phys=119)
+      Socket #30
+        L3Cache #30 (4096KB line=128)
+          L2Cache #30 (256KB line=128)
+            L1Cache #30 (32KB line=128)
+              Core #30 (phys=120)
+                PU #120 (phys=120)
+                PU #121 (phys=121)
+                PU #122 (phys=122)
+                PU #123 (phys=123)
+      Socket #31
+        L3Cache #31 (4096KB line=128)
+          L2Cache #31 (256KB line=128)
+            L1Cache #31 (32KB line=128)
+              Core #31 (phys=124)
+                PU #124 (phys=124)
+                PU #125 (phys=125)
+                PU #126 (phys=126)
+                PU #127 (phys=127)
+  Group0 #2 (total=133955584KB)
+    NUMANode #4 (phys=8 local=66846720KB total=66846720KB)
+      Socket #32
+        L3Cache #32 (4096KB line=128)
+          L2Cache #32 (256KB line=128)
+            L1Cache #32 (32KB line=128)
+              Core #32 (phys=128)
+                PU #128 (phys=128)
+                PU #129 (phys=129)
+                PU #130 (phys=130)
+                PU #131 (phys=131)
+      Socket #33
+        L3Cache #33 (4096KB line=128)
+          L2Cache #33 (256KB line=128)
+            L1Cache #33 (32KB line=128)
+              Core #33 (phys=132)
+                PU #132 (phys=132)
+                PU #133 (phys=133)
+                PU #134 (phys=134)
+                PU #135 (phys=135)
+      Socket #34
+        L3Cache #34 (4096KB line=128)
+          L2Cache #34 (256KB line=128)
+            L1Cache #34 (32KB line=128)
+              Core #34 (phys=136)
+                PU #136 (phys=136)
+                PU #137 (phys=137)
+                PU #138 (phys=138)
+                PU #139 (phys=139)
+      Socket #35
+        L3Cache #35 (4096KB line=128)
+          L2Cache #35 (256KB line=128)
+            L1Cache #35 (32KB line=128)
+              Core #35 (phys=140)
+                PU #140 (phys=140)
+                PU #141 (phys=141)
+                PU #142 (phys=142)
+                PU #143 (phys=143)
+      Socket #36
+        L3Cache #36 (4096KB line=128)
+          L2Cache #36 (256KB line=128)
+            L1Cache #36 (32KB line=128)
+              Core #36 (phys=144)
+                PU #144 (phys=144)
+                PU #145 (phys=145)
+                PU #146 (phys=146)
+                PU #147 (phys=147)
+      Socket #37
+        L3Cache #37 (4096KB line=128)
+          L2Cache #37 (256KB line=128)
+            L1Cache #37 (32KB line=128)
+              Core #37 (phys=148)
+                PU #148 (phys=148)
+                PU #149 (phys=149)
+                PU #150 (phys=150)
+                PU #151 (phys=151)
+      Socket #38
+        L3Cache #38 (4096KB line=128)
+          L2Cache #38 (256KB line=128)
+            L1Cache #38 (32KB line=128)
+              Core #38 (phys=152)
+                PU #152 (phys=152)
+                PU #153 (phys=153)
+                PU #154 (phys=154)
+                PU #155 (phys=155)
+      Socket #39
+        L3Cache #39 (4096KB line=128)
+          L2Cache #39 (256KB line=128)
+            L1Cache #39 (32KB line=128)
+              Core #39 (phys=156)
+                PU #156 (phys=156)
+                PU #157 (phys=157)
+                PU #158 (phys=158)
+                PU #159 (phys=159)
+    NUMANode #5 (phys=9 local=67108864KB total=67108864KB)
+      Socket #40
+        L3Cache #40 (4096KB line=128)
+          L2Cache #40 (256KB line=128)
+            L1Cache #40 (32KB line=128)
+              Core #40 (phys=160)
+                PU #160 (phys=160)
+                PU #161 (phys=161)
+                PU #162 (phys=162)
+                PU #163 (phys=163)
+      Socket #41
+        L3Cache #41 (4096KB line=128)
+          L2Cache #41 (256KB line=128)
+            L1Cache #41 (32KB line=128)
+              Core #41 (phys=164)
+                PU #164 (phys=164)
+                PU #165 (phys=165)
+                PU #166 (phys=166)
+                PU #167 (phys=167)
+      Socket #42
+        L3Cache #42 (4096KB line=128)
+          L2Cache #42 (256KB line=128)
+            L1Cache #42 (32KB line=128)
+              Core #42 (phys=168)
+                PU #168 (phys=168)
+                PU #169 (phys=169)
+                PU #170 (phys=170)
+                PU #171 (phys=171)
+      Socket #43
+        L3Cache #43 (4096KB line=128)
+          L2Cache #43 (256KB line=128)
+            L1Cache #43 (32KB line=128)
+              Core #43 (phys=172)
+                PU #172 (phys=172)
+                PU #173 (phys=173)
+                PU #174 (phys=174)
+                PU #175 (phys=175)
+      Socket #44
+        L3Cache #44 (4096KB line=128)
+          L2Cache #44 (256KB line=128)
+            L1Cache #44 (32KB line=128)
+              Core #44 (phys=176)
+                PU #176 (phys=176)
+                PU #177 (phys=177)
+                PU #178 (phys=178)
+                PU #179 (phys=179)
+      Socket #45
+        L3Cache #45 (4096KB line=128)
+          L2Cache #45 (256KB line=128)
+            L1Cache #45 (32KB line=128)
+              Core #45 (phys=180)
+                PU #180 (phys=180)
+                PU #181 (phys=181)
+                PU #182 (phys=182)
+                PU #183 (phys=183)
+      Socket #46
+        L3Cache #46 (4096KB line=128)
+          L2Cache #46 (256KB line=128)
+            L1Cache #46 (32KB line=128)
+              Core #46 (phys=184)
+                PU #184 (phys=184)
+                PU #185 (phys=185)
+                PU #186 (phys=186)
+                PU #187 (phys=187)
+      Socket #47
+        L3Cache #47 (4096KB line=128)
+          L2Cache #47 (256KB line=128)
+            L1Cache #47 (32KB line=128)
+              Core #47 (phys=188)
+                PU #188 (phys=188)
+                PU #189 (phys=189)
+                PU #190 (phys=190)
+                PU #191 (phys=191)
+  Group0 #3 (total=123731968KB)
+    NUMANode #6 (phys=12 local=66846720KB total=66846720KB)
+      Socket #48
+        L3Cache #48 (4096KB line=128)
+          L2Cache #48 (256KB line=128)
+            L1Cache #48 (32KB line=128)
+              Core #48 (phys=192)
+                PU #192 (phys=192)
+                PU #193 (phys=193)
+                PU #194 (phys=194)
+                PU #195 (phys=195)
+      Socket #49
+        L3Cache #49 (4096KB line=128)
+          L2Cache #49 (256KB line=128)
+            L1Cache #49 (32KB line=128)
+              Core #49 (phys=196)
+                PU #196 (phys=196)
+                PU #197 (phys=197)
+                PU #198 (phys=198)
+                PU #199 (phys=199)
+      Socket #50
+        L3Cache #50 (4096KB line=128)
+          L2Cache #50 (256KB line=128)
+            L1Cache #50 (32KB line=128)
+              Core #50 (phys=200)
+                PU #200 (phys=200)
+                PU #201 (phys=201)
+                PU #202 (phys=202)
+                PU #203 (phys=203)
+      Socket #51
+        L3Cache #51 (4096KB line=128)
+          L2Cache #51 (256KB line=128)
+            L1Cache #51 (32KB line=128)
+              Core #51 (phys=204)
+                PU #204 (phys=204)
+                PU #205 (phys=205)
+                PU #206 (phys=206)
+                PU #207 (phys=207)
+      Socket #52
+        L3Cache #52 (4096KB line=128)
+          L2Cache #52 (256KB line=128)
+            L1Cache #52 (32KB line=128)
+              Core #52 (phys=208)
+                PU #208 (phys=208)
+                PU #209 (phys=209)
+                PU #210 (phys=210)
+                PU #211 (phys=211)
+      Socket #53
+        L3Cache #53 (4096KB line=128)
+          L2Cache #53 (256KB line=128)
+            L1Cache #53 (32KB line=128)
+              Core #53 (phys=212)
+                PU #212 (phys=212)
+                PU #213 (phys=213)
+                PU #214 (phys=214)
+                PU #215 (phys=215)
+      Socket #54
+        L3Cache #54 (4096KB line=128)
+          L2Cache #54 (256KB line=128)
+            L1Cache #54 (32KB line=128)
+              Core #54 (phys=216)
+                PU #216 (phys=216)
+                PU #217 (phys=217)
+                PU #218 (phys=218)
+                PU #219 (phys=219)
+      Socket #55
+        L3Cache #55 (4096KB line=128)
+          L2Cache #55 (256KB line=128)
+            L1Cache #55 (32KB line=128)
+              Core #55 (phys=220)
+                PU #220 (phys=220)
+                PU #221 (phys=221)
+                PU #222 (phys=222)
+                PU #223 (phys=223)
+    NUMANode #7 (phys=13 local=56885248KB total=56885248KB)
+      Socket #56
+        L3Cache #56 (4096KB line=128)
+          L2Cache #56 (256KB line=128)
+            L1Cache #56 (32KB line=128)
+              Core #56 (phys=224)
+                PU #224 (phys=224)
+                PU #225 (phys=225)
+                PU #226 (phys=226)
+                PU #227 (phys=227)
+      Socket #57
+        L3Cache #57 (4096KB line=128)
+          L2Cache #57 (256KB line=128)
+            L1Cache #57 (32KB line=128)
+              Core #57 (phys=228)
+                PU #228 (phys=228)
+                PU #229 (phys=229)
+                PU #230 (phys=230)
+                PU #231 (phys=231)
+      Socket #58
+        L3Cache #58 (4096KB line=128)
+          L2Cache #58 (256KB line=128)
+            L1Cache #58 (32KB line=128)
+              Core #58 (phys=232)
+                PU #232 (phys=232)
+                PU #233 (phys=233)
+                PU #234 (phys=234)
+                PU #235 (phys=235)
+      Socket #59
+        L3Cache #59 (4096KB line=128)
+          L2Cache #59 (256KB line=128)
+            L1Cache #59 (32KB line=128)
+              Core #59 (phys=236)
+                PU #236 (phys=236)
+                PU #237 (phys=237)
+                PU #238 (phys=238)
+                PU #239 (phys=239)
+      Socket #60
+        L3Cache #60 (4096KB line=128)
+          L2Cache #60 (256KB line=128)
+            L1Cache #60 (32KB line=128)
+              Core #60 (phys=240)
+                PU #240 (phys=240)
+                PU #241 (phys=241)
+                PU #242 (phys=242)
+                PU #243 (phys=243)
+      Socket #61
+        L3Cache #61 (4096KB line=128)
+          L2Cache #61 (256KB line=128)
+            L1Cache #61 (32KB line=128)
+              Core #61 (phys=244)
+                PU #244 (phys=244)
+                PU #245 (phys=245)
+                PU #246 (phys=246)
+                PU #247 (phys=247)
+      Socket #62
+        L3Cache #62 (4096KB line=128)
+          L2Cache #62 (256KB line=128)
+            L1Cache #62 (32KB line=128)
+              Core #62 (phys=248)
+                PU #248 (phys=248)
+                PU #249 (phys=249)
+                PU #250 (phys=250)
+                PU #251 (phys=251)
+      Socket #63
+        L3Cache #63 (4096KB line=128)
+          L2Cache #63 (256KB line=128)
+            L1Cache #63 (32KB line=128)
+              Core #63 (phys=252)
+                PU #252 (phys=252)
+                PU #253 (phys=253)
+                PU #254 (phys=254)
+                PU #255 (phys=255)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Groups (type #7)
+  depth 2:	8 NUMANodes (type #2)
+   depth 3:	64 Sockets (type #3)
+    depth 4:	64 Caches (type #4)
+     depth 5:	64 Caches (type #4)
+      depth 6:	64 Caches (type #4)
+       depth 7:	64 Cores (type #5)
+        depth 8:	256 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nocache.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+256ppc-8n8s4t.tar.bz2

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.exclude
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.exclude	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.exclude	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+*/sys

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,520 @@
+Machine (phys=0 local=514318208KB total=514318208KB Backend=Linux)
+  L3Cache #0 (4096KB line=128)
+    L2Cache #0 (256KB line=128)
+      L1Cache #0 (32KB line=128)
+        Core #0 (phys=0)
+          PU #0 (phys=0)
+          PU #1 (phys=1)
+          PU #2 (phys=2)
+          PU #3 (phys=3)
+  L3Cache #1 (4096KB line=128)
+    L2Cache #1 (256KB line=128)
+      L1Cache #1 (32KB line=128)
+        Core #1 (phys=4)
+          PU #4 (phys=4)
+          PU #5 (phys=5)
+          PU #6 (phys=6)
+          PU #7 (phys=7)
+  L3Cache #2 (4096KB line=128)
+    L2Cache #2 (256KB line=128)
+      L1Cache #2 (32KB line=128)
+        Core #2 (phys=8)
+          PU #8 (phys=8)
+          PU #9 (phys=9)
+          PU #10 (phys=10)
+          PU #11 (phys=11)
+  L3Cache #3 (4096KB line=128)
+    L2Cache #3 (256KB line=128)
+      L1Cache #3 (32KB line=128)
+        Core #3 (phys=12)
+          PU #12 (phys=12)
+          PU #13 (phys=13)
+          PU #14 (phys=14)
+          PU #15 (phys=15)
+  L3Cache #4 (4096KB line=128)
+    L2Cache #4 (256KB line=128)
+      L1Cache #4 (32KB line=128)
+        Core #4 (phys=16)
+          PU #16 (phys=16)
+          PU #17 (phys=17)
+          PU #18 (phys=18)
+          PU #19 (phys=19)
+  L3Cache #5 (4096KB line=128)
+    L2Cache #5 (256KB line=128)
+      L1Cache #5 (32KB line=128)
+        Core #5 (phys=20)
+          PU #20 (phys=20)
+          PU #21 (phys=21)
+          PU #22 (phys=22)
+          PU #23 (phys=23)
+  L3Cache #6 (4096KB line=128)
+    L2Cache #6 (256KB line=128)
+      L1Cache #6 (32KB line=128)
+        Core #6 (phys=24)
+          PU #24 (phys=24)
+          PU #25 (phys=25)
+          PU #26 (phys=26)
+          PU #27 (phys=27)
+  L3Cache #7 (4096KB line=128)
+    L2Cache #7 (256KB line=128)
+      L1Cache #7 (32KB line=128)
+        Core #7 (phys=28)
+          PU #28 (phys=28)
+          PU #29 (phys=29)
+          PU #30 (phys=30)
+          PU #31 (phys=31)
+  L3Cache #8 (4096KB line=128)
+    L2Cache #8 (256KB line=128)
+      L1Cache #8 (32KB line=128)
+        Core #8 (phys=32)
+          PU #32 (phys=32)
+          PU #33 (phys=33)
+          PU #34 (phys=34)
+          PU #35 (phys=35)
+  L3Cache #9 (4096KB line=128)
+    L2Cache #9 (256KB line=128)
+      L1Cache #9 (32KB line=128)
+        Core #9 (phys=36)
+          PU #36 (phys=36)
+          PU #37 (phys=37)
+          PU #38 (phys=38)
+          PU #39 (phys=39)
+  L3Cache #10 (4096KB line=128)
+    L2Cache #10 (256KB line=128)
+      L1Cache #10 (32KB line=128)
+        Core #10 (phys=40)
+          PU #40 (phys=40)
+          PU #41 (phys=41)
+          PU #42 (phys=42)
+          PU #43 (phys=43)
+  L3Cache #11 (4096KB line=128)
+    L2Cache #11 (256KB line=128)
+      L1Cache #11 (32KB line=128)
+        Core #11 (phys=44)
+          PU #44 (phys=44)
+          PU #45 (phys=45)
+          PU #46 (phys=46)
+          PU #47 (phys=47)
+  L3Cache #12 (4096KB line=128)
+    L2Cache #12 (256KB line=128)
+      L1Cache #12 (32KB line=128)
+        Core #12 (phys=48)
+          PU #48 (phys=48)
+          PU #49 (phys=49)
+          PU #50 (phys=50)
+          PU #51 (phys=51)
+  L3Cache #13 (4096KB line=128)
+    L2Cache #13 (256KB line=128)
+      L1Cache #13 (32KB line=128)
+        Core #13 (phys=52)
+          PU #52 (phys=52)
+          PU #53 (phys=53)
+          PU #54 (phys=54)
+          PU #55 (phys=55)
+  L3Cache #14 (4096KB line=128)
+    L2Cache #14 (256KB line=128)
+      L1Cache #14 (32KB line=128)
+        Core #14 (phys=56)
+          PU #56 (phys=56)
+          PU #57 (phys=57)
+          PU #58 (phys=58)
+          PU #59 (phys=59)
+  L3Cache #15 (4096KB line=128)
+    L2Cache #15 (256KB line=128)
+      L1Cache #15 (32KB line=128)
+        Core #15 (phys=60)
+          PU #60 (phys=60)
+          PU #61 (phys=61)
+          PU #62 (phys=62)
+          PU #63 (phys=63)
+  L3Cache #16 (4096KB line=128)
+    L2Cache #16 (256KB line=128)
+      L1Cache #16 (32KB line=128)
+        Core #16 (phys=64)
+          PU #64 (phys=64)
+          PU #65 (phys=65)
+          PU #66 (phys=66)
+          PU #67 (phys=67)
+  L3Cache #17 (4096KB line=128)
+    L2Cache #17 (256KB line=128)
+      L1Cache #17 (32KB line=128)
+        Core #17 (phys=68)
+          PU #68 (phys=68)
+          PU #69 (phys=69)
+          PU #70 (phys=70)
+          PU #71 (phys=71)
+  L3Cache #18 (4096KB line=128)
+    L2Cache #18 (256KB line=128)
+      L1Cache #18 (32KB line=128)
+        Core #18 (phys=72)
+          PU #72 (phys=72)
+          PU #73 (phys=73)
+          PU #74 (phys=74)
+          PU #75 (phys=75)
+  L3Cache #19 (4096KB line=128)
+    L2Cache #19 (256KB line=128)
+      L1Cache #19 (32KB line=128)
+        Core #19 (phys=76)
+          PU #76 (phys=76)
+          PU #77 (phys=77)
+          PU #78 (phys=78)
+          PU #79 (phys=79)
+  L3Cache #20 (4096KB line=128)
+    L2Cache #20 (256KB line=128)
+      L1Cache #20 (32KB line=128)
+        Core #20 (phys=80)
+          PU #80 (phys=80)
+          PU #81 (phys=81)
+          PU #82 (phys=82)
+          PU #83 (phys=83)
+  L3Cache #21 (4096KB line=128)
+    L2Cache #21 (256KB line=128)
+      L1Cache #21 (32KB line=128)
+        Core #21 (phys=84)
+          PU #84 (phys=84)
+          PU #85 (phys=85)
+          PU #86 (phys=86)
+          PU #87 (phys=87)
+  L3Cache #22 (4096KB line=128)
+    L2Cache #22 (256KB line=128)
+      L1Cache #22 (32KB line=128)
+        Core #22 (phys=88)
+          PU #88 (phys=88)
+          PU #89 (phys=89)
+          PU #90 (phys=90)
+          PU #91 (phys=91)
+  L3Cache #23 (4096KB line=128)
+    L2Cache #23 (256KB line=128)
+      L1Cache #23 (32KB line=128)
+        Core #23 (phys=92)
+          PU #92 (phys=92)
+          PU #93 (phys=93)
+          PU #94 (phys=94)
+          PU #95 (phys=95)
+  L3Cache #24 (4096KB line=128)
+    L2Cache #24 (256KB line=128)
+      L1Cache #24 (32KB line=128)
+        Core #24 (phys=96)
+          PU #96 (phys=96)
+          PU #97 (phys=97)
+          PU #98 (phys=98)
+          PU #99 (phys=99)
+  L3Cache #25 (4096KB line=128)
+    L2Cache #25 (256KB line=128)
+      L1Cache #25 (32KB line=128)
+        Core #25 (phys=100)
+          PU #100 (phys=100)
+          PU #101 (phys=101)
+          PU #102 (phys=102)
+          PU #103 (phys=103)
+  L3Cache #26 (4096KB line=128)
+    L2Cache #26 (256KB line=128)
+      L1Cache #26 (32KB line=128)
+        Core #26 (phys=104)
+          PU #104 (phys=104)
+          PU #105 (phys=105)
+          PU #106 (phys=106)
+          PU #107 (phys=107)
+  L3Cache #27 (4096KB line=128)
+    L2Cache #27 (256KB line=128)
+      L1Cache #27 (32KB line=128)
+        Core #27 (phys=108)
+          PU #108 (phys=108)
+          PU #109 (phys=109)
+          PU #110 (phys=110)
+          PU #111 (phys=111)
+  L3Cache #28 (4096KB line=128)
+    L2Cache #28 (256KB line=128)
+      L1Cache #28 (32KB line=128)
+        Core #28 (phys=112)
+          PU #112 (phys=112)
+          PU #113 (phys=113)
+          PU #114 (phys=114)
+          PU #115 (phys=115)
+  L3Cache #29 (4096KB line=128)
+    L2Cache #29 (256KB line=128)
+      L1Cache #29 (32KB line=128)
+        Core #29 (phys=116)
+          PU #116 (phys=116)
+          PU #117 (phys=117)
+          PU #118 (phys=118)
+          PU #119 (phys=119)
+  L3Cache #30 (4096KB line=128)
+    L2Cache #30 (256KB line=128)
+      L1Cache #30 (32KB line=128)
+        Core #30 (phys=120)
+          PU #120 (phys=120)
+          PU #121 (phys=121)
+          PU #122 (phys=122)
+          PU #123 (phys=123)
+  L3Cache #31 (4096KB line=128)
+    L2Cache #31 (256KB line=128)
+      L1Cache #31 (32KB line=128)
+        Core #31 (phys=124)
+          PU #124 (phys=124)
+          PU #125 (phys=125)
+          PU #126 (phys=126)
+          PU #127 (phys=127)
+  L3Cache #32 (4096KB line=128)
+    L2Cache #32 (256KB line=128)
+      L1Cache #32 (32KB line=128)
+        Core #32 (phys=128)
+          PU #128 (phys=128)
+          PU #129 (phys=129)
+          PU #130 (phys=130)
+          PU #131 (phys=131)
+  L3Cache #33 (4096KB line=128)
+    L2Cache #33 (256KB line=128)
+      L1Cache #33 (32KB line=128)
+        Core #33 (phys=132)
+          PU #132 (phys=132)
+          PU #133 (phys=133)
+          PU #134 (phys=134)
+          PU #135 (phys=135)
+  L3Cache #34 (4096KB line=128)
+    L2Cache #34 (256KB line=128)
+      L1Cache #34 (32KB line=128)
+        Core #34 (phys=136)
+          PU #136 (phys=136)
+          PU #137 (phys=137)
+          PU #138 (phys=138)
+          PU #139 (phys=139)
+  L3Cache #35 (4096KB line=128)
+    L2Cache #35 (256KB line=128)
+      L1Cache #35 (32KB line=128)
+        Core #35 (phys=140)
+          PU #140 (phys=140)
+          PU #141 (phys=141)
+          PU #142 (phys=142)
+          PU #143 (phys=143)
+  L3Cache #36 (4096KB line=128)
+    L2Cache #36 (256KB line=128)
+      L1Cache #36 (32KB line=128)
+        Core #36 (phys=144)
+          PU #144 (phys=144)
+          PU #145 (phys=145)
+          PU #146 (phys=146)
+          PU #147 (phys=147)
+  L3Cache #37 (4096KB line=128)
+    L2Cache #37 (256KB line=128)
+      L1Cache #37 (32KB line=128)
+        Core #37 (phys=148)
+          PU #148 (phys=148)
+          PU #149 (phys=149)
+          PU #150 (phys=150)
+          PU #151 (phys=151)
+  L3Cache #38 (4096KB line=128)
+    L2Cache #38 (256KB line=128)
+      L1Cache #38 (32KB line=128)
+        Core #38 (phys=152)
+          PU #152 (phys=152)
+          PU #153 (phys=153)
+          PU #154 (phys=154)
+          PU #155 (phys=155)
+  L3Cache #39 (4096KB line=128)
+    L2Cache #39 (256KB line=128)
+      L1Cache #39 (32KB line=128)
+        Core #39 (phys=156)
+          PU #156 (phys=156)
+          PU #157 (phys=157)
+          PU #158 (phys=158)
+          PU #159 (phys=159)
+  L3Cache #40 (4096KB line=128)
+    L2Cache #40 (256KB line=128)
+      L1Cache #40 (32KB line=128)
+        Core #40 (phys=160)
+          PU #160 (phys=160)
+          PU #161 (phys=161)
+          PU #162 (phys=162)
+          PU #163 (phys=163)
+  L3Cache #41 (4096KB line=128)
+    L2Cache #41 (256KB line=128)
+      L1Cache #41 (32KB line=128)
+        Core #41 (phys=164)
+          PU #164 (phys=164)
+          PU #165 (phys=165)
+          PU #166 (phys=166)
+          PU #167 (phys=167)
+  L3Cache #42 (4096KB line=128)
+    L2Cache #42 (256KB line=128)
+      L1Cache #42 (32KB line=128)
+        Core #42 (phys=168)
+          PU #168 (phys=168)
+          PU #169 (phys=169)
+          PU #170 (phys=170)
+          PU #171 (phys=171)
+  L3Cache #43 (4096KB line=128)
+    L2Cache #43 (256KB line=128)
+      L1Cache #43 (32KB line=128)
+        Core #43 (phys=172)
+          PU #172 (phys=172)
+          PU #173 (phys=173)
+          PU #174 (phys=174)
+          PU #175 (phys=175)
+  L3Cache #44 (4096KB line=128)
+    L2Cache #44 (256KB line=128)
+      L1Cache #44 (32KB line=128)
+        Core #44 (phys=176)
+          PU #176 (phys=176)
+          PU #177 (phys=177)
+          PU #178 (phys=178)
+          PU #179 (phys=179)
+  L3Cache #45 (4096KB line=128)
+    L2Cache #45 (256KB line=128)
+      L1Cache #45 (32KB line=128)
+        Core #45 (phys=180)
+          PU #180 (phys=180)
+          PU #181 (phys=181)
+          PU #182 (phys=182)
+          PU #183 (phys=183)
+  L3Cache #46 (4096KB line=128)
+    L2Cache #46 (256KB line=128)
+      L1Cache #46 (32KB line=128)
+        Core #46 (phys=184)
+          PU #184 (phys=184)
+          PU #185 (phys=185)
+          PU #186 (phys=186)
+          PU #187 (phys=187)
+  L3Cache #47 (4096KB line=128)
+    L2Cache #47 (256KB line=128)
+      L1Cache #47 (32KB line=128)
+        Core #47 (phys=188)
+          PU #188 (phys=188)
+          PU #189 (phys=189)
+          PU #190 (phys=190)
+          PU #191 (phys=191)
+  L3Cache #48 (4096KB line=128)
+    L2Cache #48 (256KB line=128)
+      L1Cache #48 (32KB line=128)
+        Core #48 (phys=192)
+          PU #192 (phys=192)
+          PU #193 (phys=193)
+          PU #194 (phys=194)
+          PU #195 (phys=195)
+  L3Cache #49 (4096KB line=128)
+    L2Cache #49 (256KB line=128)
+      L1Cache #49 (32KB line=128)
+        Core #49 (phys=196)
+          PU #196 (phys=196)
+          PU #197 (phys=197)
+          PU #198 (phys=198)
+          PU #199 (phys=199)
+  L3Cache #50 (4096KB line=128)
+    L2Cache #50 (256KB line=128)
+      L1Cache #50 (32KB line=128)
+        Core #50 (phys=200)
+          PU #200 (phys=200)
+          PU #201 (phys=201)
+          PU #202 (phys=202)
+          PU #203 (phys=203)
+  L3Cache #51 (4096KB line=128)
+    L2Cache #51 (256KB line=128)
+      L1Cache #51 (32KB line=128)
+        Core #51 (phys=204)
+          PU #204 (phys=204)
+          PU #205 (phys=205)
+          PU #206 (phys=206)
+          PU #207 (phys=207)
+  L3Cache #52 (4096KB line=128)
+    L2Cache #52 (256KB line=128)
+      L1Cache #52 (32KB line=128)
+        Core #52 (phys=208)
+          PU #208 (phys=208)
+          PU #209 (phys=209)
+          PU #210 (phys=210)
+          PU #211 (phys=211)
+  L3Cache #53 (4096KB line=128)
+    L2Cache #53 (256KB line=128)
+      L1Cache #53 (32KB line=128)
+        Core #53 (phys=212)
+          PU #212 (phys=212)
+          PU #213 (phys=213)
+          PU #214 (phys=214)
+          PU #215 (phys=215)
+  L3Cache #54 (4096KB line=128)
+    L2Cache #54 (256KB line=128)
+      L1Cache #54 (32KB line=128)
+        Core #54 (phys=216)
+          PU #216 (phys=216)
+          PU #217 (phys=217)
+          PU #218 (phys=218)
+          PU #219 (phys=219)
+  L3Cache #55 (4096KB line=128)
+    L2Cache #55 (256KB line=128)
+      L1Cache #55 (32KB line=128)
+        Core #55 (phys=220)
+          PU #220 (phys=220)
+          PU #221 (phys=221)
+          PU #222 (phys=222)
+          PU #223 (phys=223)
+  L3Cache #56 (4096KB line=128)
+    L2Cache #56 (256KB line=128)
+      L1Cache #56 (32KB line=128)
+        Core #56 (phys=224)
+          PU #224 (phys=224)
+          PU #225 (phys=225)
+          PU #226 (phys=226)
+          PU #227 (phys=227)
+  L3Cache #57 (4096KB line=128)
+    L2Cache #57 (256KB line=128)
+      L1Cache #57 (32KB line=128)
+        Core #57 (phys=228)
+          PU #228 (phys=228)
+          PU #229 (phys=229)
+          PU #230 (phys=230)
+          PU #231 (phys=231)
+  L3Cache #58 (4096KB line=128)
+    L2Cache #58 (256KB line=128)
+      L1Cache #58 (32KB line=128)
+        Core #58 (phys=232)
+          PU #232 (phys=232)
+          PU #233 (phys=233)
+          PU #234 (phys=234)
+          PU #235 (phys=235)
+  L3Cache #59 (4096KB line=128)
+    L2Cache #59 (256KB line=128)
+      L1Cache #59 (32KB line=128)
+        Core #59 (phys=236)
+          PU #236 (phys=236)
+          PU #237 (phys=237)
+          PU #238 (phys=238)
+          PU #239 (phys=239)
+  L3Cache #60 (4096KB line=128)
+    L2Cache #60 (256KB line=128)
+      L1Cache #60 (32KB line=128)
+        Core #60 (phys=240)
+          PU #240 (phys=240)
+          PU #241 (phys=241)
+          PU #242 (phys=242)
+          PU #243 (phys=243)
+  L3Cache #61 (4096KB line=128)
+    L2Cache #61 (256KB line=128)
+      L1Cache #61 (32KB line=128)
+        Core #61 (phys=244)
+          PU #244 (phys=244)
+          PU #245 (phys=245)
+          PU #246 (phys=246)
+          PU #247 (phys=247)
+  L3Cache #62 (4096KB line=128)
+    L2Cache #62 (256KB line=128)
+      L1Cache #62 (32KB line=128)
+        Core #62 (phys=248)
+          PU #248 (phys=248)
+          PU #249 (phys=249)
+          PU #250 (phys=250)
+          PU #251 (phys=251)
+  L3Cache #63 (4096KB line=128)
+    L2Cache #63 (256KB line=128)
+      L1Cache #63 (32KB line=128)
+        Core #63 (phys=252)
+          PU #252 (phys=252)
+          PU #253 (phys=253)
+          PU #254 (phys=254)
+          PU #255 (phys=255)
+depth 0:	1 Machine (type #1)
+ depth 1:	64 Caches (type #4)
+  depth 2:	64 Caches (type #4)
+   depth 3:	64 Caches (type #4)
+    depth 4:	64 Cores (type #5)
+     depth 5:	256 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.source
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.source	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t-nosys.source	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1 @@
+256ppc-8n8s4t.tar.bz2

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,599 @@
+Machine (phys=0 total=516423680KB Backend=Linux)
+  Group0 #0 (total=124780544KB)
+    NUMANode #0 (phys=0 local=58458112KB total=58458112KB)
+      Socket #0
+        L3Cache #0 (4096KB line=128)
+          L2Cache #0 (256KB line=128)
+            L1Cache #0 (32KB line=128)
+              Core #0 (phys=0)
+                PU #0 (phys=0)
+                PU #1 (phys=1)
+                PU #2 (phys=2)
+                PU #3 (phys=3)
+      Socket #1
+        L3Cache #1 (4096KB line=128)
+          L2Cache #1 (256KB line=128)
+            L1Cache #1 (32KB line=128)
+              Core #1 (phys=4)
+                PU #4 (phys=4)
+                PU #5 (phys=5)
+                PU #6 (phys=6)
+                PU #7 (phys=7)
+      Socket #2
+        L3Cache #2 (4096KB line=128)
+          L2Cache #2 (256KB line=128)
+            L1Cache #2 (32KB line=128)
+              Core #2 (phys=8)
+                PU #8 (phys=8)
+                PU #9 (phys=9)
+                PU #10 (phys=10)
+                PU #11 (phys=11)
+      Socket #3
+        L3Cache #3 (4096KB line=128)
+          L2Cache #3 (256KB line=128)
+            L1Cache #3 (32KB line=128)
+              Core #3 (phys=12)
+                PU #12 (phys=12)
+                PU #13 (phys=13)
+                PU #14 (phys=14)
+                PU #15 (phys=15)
+      Socket #4
+        L3Cache #4 (4096KB line=128)
+          L2Cache #4 (256KB line=128)
+            L1Cache #4 (32KB line=128)
+              Core #4 (phys=16)
+                PU #16 (phys=16)
+                PU #17 (phys=17)
+                PU #18 (phys=18)
+                PU #19 (phys=19)
+      Socket #5
+        L3Cache #5 (4096KB line=128)
+          L2Cache #5 (256KB line=128)
+            L1Cache #5 (32KB line=128)
+              Core #5 (phys=20)
+                PU #20 (phys=20)
+                PU #21 (phys=21)
+                PU #22 (phys=22)
+                PU #23 (phys=23)
+      Socket #6
+        L3Cache #6 (4096KB line=128)
+          L2Cache #6 (256KB line=128)
+            L1Cache #6 (32KB line=128)
+              Core #6 (phys=24)
+                PU #24 (phys=24)
+                PU #25 (phys=25)
+                PU #26 (phys=26)
+                PU #27 (phys=27)
+      Socket #7
+        L3Cache #7 (4096KB line=128)
+          L2Cache #7 (256KB line=128)
+            L1Cache #7 (32KB line=128)
+              Core #7 (phys=28)
+                PU #28 (phys=28)
+                PU #29 (phys=29)
+                PU #30 (phys=30)
+                PU #31 (phys=31)
+    NUMANode #1 (phys=1 local=66322432KB total=66322432KB)
+      Socket #8
+        L3Cache #8 (4096KB line=128)
+          L2Cache #8 (256KB line=128)
+            L1Cache #8 (32KB line=128)
+              Core #8 (phys=32)
+                PU #32 (phys=32)
+                PU #33 (phys=33)
+                PU #34 (phys=34)
+                PU #35 (phys=35)
+      Socket #9
+        L3Cache #9 (4096KB line=128)
+          L2Cache #9 (256KB line=128)
+            L1Cache #9 (32KB line=128)
+              Core #9 (phys=36)
+                PU #36 (phys=36)
+                PU #37 (phys=37)
+                PU #38 (phys=38)
+                PU #39 (phys=39)
+      Socket #10
+        L3Cache #10 (4096KB line=128)
+          L2Cache #10 (256KB line=128)
+            L1Cache #10 (32KB line=128)
+              Core #10 (phys=40)
+                PU #40 (phys=40)
+                PU #41 (phys=41)
+                PU #42 (phys=42)
+                PU #43 (phys=43)
+      Socket #11
+        L3Cache #11 (4096KB line=128)
+          L2Cache #11 (256KB line=128)
+            L1Cache #11 (32KB line=128)
+              Core #11 (phys=44)
+                PU #44 (phys=44)
+                PU #45 (phys=45)
+                PU #46 (phys=46)
+                PU #47 (phys=47)
+      Socket #12
+        L3Cache #12 (4096KB line=128)
+          L2Cache #12 (256KB line=128)
+            L1Cache #12 (32KB line=128)
+              Core #12 (phys=48)
+                PU #48 (phys=48)
+                PU #49 (phys=49)
+                PU #50 (phys=50)
+                PU #51 (phys=51)
+      Socket #13
+        L3Cache #13 (4096KB line=128)
+          L2Cache #13 (256KB line=128)
+            L1Cache #13 (32KB line=128)
+              Core #13 (phys=52)
+                PU #52 (phys=52)
+                PU #53 (phys=53)
+                PU #54 (phys=54)
+                PU #55 (phys=55)
+      Socket #14
+        L3Cache #14 (4096KB line=128)
+          L2Cache #14 (256KB line=128)
+            L1Cache #14 (32KB line=128)
+              Core #14 (phys=56)
+                PU #56 (phys=56)
+                PU #57 (phys=57)
+                PU #58 (phys=58)
+                PU #59 (phys=59)
+      Socket #15
+        L3Cache #15 (4096KB line=128)
+          L2Cache #15 (256KB line=128)
+            L1Cache #15 (32KB line=128)
+              Core #15 (phys=60)
+                PU #60 (phys=60)
+                PU #61 (phys=61)
+                PU #62 (phys=62)
+                PU #63 (phys=63)
+  Group0 #1 (total=133955584KB)
+    NUMANode #2 (phys=4 local=66846720KB total=66846720KB)
+      Socket #16
+        L3Cache #16 (4096KB line=128)
+          L2Cache #16 (256KB line=128)
+            L1Cache #16 (32KB line=128)
+              Core #16 (phys=64)
+                PU #64 (phys=64)
+                PU #65 (phys=65)
+                PU #66 (phys=66)
+                PU #67 (phys=67)
+      Socket #17
+        L3Cache #17 (4096KB line=128)
+          L2Cache #17 (256KB line=128)
+            L1Cache #17 (32KB line=128)
+              Core #17 (phys=68)
+                PU #68 (phys=68)
+                PU #69 (phys=69)
+                PU #70 (phys=70)
+                PU #71 (phys=71)
+      Socket #18
+        L3Cache #18 (4096KB line=128)
+          L2Cache #18 (256KB line=128)
+            L1Cache #18 (32KB line=128)
+              Core #18 (phys=72)
+                PU #72 (phys=72)
+                PU #73 (phys=73)
+                PU #74 (phys=74)
+                PU #75 (phys=75)
+      Socket #19
+        L3Cache #19 (4096KB line=128)
+          L2Cache #19 (256KB line=128)
+            L1Cache #19 (32KB line=128)
+              Core #19 (phys=76)
+                PU #76 (phys=76)
+                PU #77 (phys=77)
+                PU #78 (phys=78)
+                PU #79 (phys=79)
+      Socket #20
+        L3Cache #20 (4096KB line=128)
+          L2Cache #20 (256KB line=128)
+            L1Cache #20 (32KB line=128)
+              Core #20 (phys=80)
+                PU #80 (phys=80)
+                PU #81 (phys=81)
+                PU #82 (phys=82)
+                PU #83 (phys=83)
+      Socket #21
+        L3Cache #21 (4096KB line=128)
+          L2Cache #21 (256KB line=128)
+            L1Cache #21 (32KB line=128)
+              Core #21 (phys=84)
+                PU #84 (phys=84)
+                PU #85 (phys=85)
+                PU #86 (phys=86)
+                PU #87 (phys=87)
+      Socket #22
+        L3Cache #22 (4096KB line=128)
+          L2Cache #22 (256KB line=128)
+            L1Cache #22 (32KB line=128)
+              Core #22 (phys=88)
+                PU #88 (phys=88)
+                PU #89 (phys=89)
+                PU #90 (phys=90)
+                PU #91 (phys=91)
+      Socket #23
+        L3Cache #23 (4096KB line=128)
+          L2Cache #23 (256KB line=128)
+            L1Cache #23 (32KB line=128)
+              Core #23 (phys=92)
+                PU #92 (phys=92)
+                PU #93 (phys=93)
+                PU #94 (phys=94)
+                PU #95 (phys=95)
+    NUMANode #3 (phys=5 local=67108864KB total=67108864KB)
+      Socket #24
+        L3Cache #24 (4096KB line=128)
+          L2Cache #24 (256KB line=128)
+            L1Cache #24 (32KB line=128)
+              Core #24 (phys=96)
+                PU #96 (phys=96)
+                PU #97 (phys=97)
+                PU #98 (phys=98)
+                PU #99 (phys=99)
+      Socket #25
+        L3Cache #25 (4096KB line=128)
+          L2Cache #25 (256KB line=128)
+            L1Cache #25 (32KB line=128)
+              Core #25 (phys=100)
+                PU #100 (phys=100)
+                PU #101 (phys=101)
+                PU #102 (phys=102)
+                PU #103 (phys=103)
+      Socket #26
+        L3Cache #26 (4096KB line=128)
+          L2Cache #26 (256KB line=128)
+            L1Cache #26 (32KB line=128)
+              Core #26 (phys=104)
+                PU #104 (phys=104)
+                PU #105 (phys=105)
+                PU #106 (phys=106)
+                PU #107 (phys=107)
+      Socket #27
+        L3Cache #27 (4096KB line=128)
+          L2Cache #27 (256KB line=128)
+            L1Cache #27 (32KB line=128)
+              Core #27 (phys=108)
+                PU #108 (phys=108)
+                PU #109 (phys=109)
+                PU #110 (phys=110)
+                PU #111 (phys=111)
+      Socket #28
+        L3Cache #28 (4096KB line=128)
+          L2Cache #28 (256KB line=128)
+            L1Cache #28 (32KB line=128)
+              Core #28 (phys=112)
+                PU #112 (phys=112)
+                PU #113 (phys=113)
+                PU #114 (phys=114)
+                PU #115 (phys=115)
+      Socket #29
+        L3Cache #29 (4096KB line=128)
+          L2Cache #29 (256KB line=128)
+            L1Cache #29 (32KB line=128)
+              Core #29 (phys=116)
+                PU #116 (phys=116)
+                PU #117 (phys=117)
+                PU #118 (phys=118)
+                PU #119 (phys=119)
+      Socket #30
+        L3Cache #30 (4096KB line=128)
+          L2Cache #30 (256KB line=128)
+            L1Cache #30 (32KB line=128)
+              Core #30 (phys=120)
+                PU #120 (phys=120)
+                PU #121 (phys=121)
+                PU #122 (phys=122)
+                PU #123 (phys=123)
+      Socket #31
+        L3Cache #31 (4096KB line=128)
+          L2Cache #31 (256KB line=128)
+            L1Cache #31 (32KB line=128)
+              Core #31 (phys=124)
+                PU #124 (phys=124)
+                PU #125 (phys=125)
+                PU #126 (phys=126)
+                PU #127 (phys=127)
+  Group0 #2 (total=133955584KB)
+    NUMANode #4 (phys=8 local=66846720KB total=66846720KB)
+      Socket #32
+        L3Cache #32 (4096KB line=128)
+          L2Cache #32 (256KB line=128)
+            L1Cache #32 (32KB line=128)
+              Core #32 (phys=128)
+                PU #128 (phys=128)
+                PU #129 (phys=129)
+                PU #130 (phys=130)
+                PU #131 (phys=131)
+      Socket #33
+        L3Cache #33 (4096KB line=128)
+          L2Cache #33 (256KB line=128)
+            L1Cache #33 (32KB line=128)
+              Core #33 (phys=132)
+                PU #132 (phys=132)
+                PU #133 (phys=133)
+                PU #134 (phys=134)
+                PU #135 (phys=135)
+      Socket #34
+        L3Cache #34 (4096KB line=128)
+          L2Cache #34 (256KB line=128)
+            L1Cache #34 (32KB line=128)
+              Core #34 (phys=136)
+                PU #136 (phys=136)
+                PU #137 (phys=137)
+                PU #138 (phys=138)
+                PU #139 (phys=139)
+      Socket #35
+        L3Cache #35 (4096KB line=128)
+          L2Cache #35 (256KB line=128)
+            L1Cache #35 (32KB line=128)
+              Core #35 (phys=140)
+                PU #140 (phys=140)
+                PU #141 (phys=141)
+                PU #142 (phys=142)
+                PU #143 (phys=143)
+      Socket #36
+        L3Cache #36 (4096KB line=128)
+          L2Cache #36 (256KB line=128)
+            L1Cache #36 (32KB line=128)
+              Core #36 (phys=144)
+                PU #144 (phys=144)
+                PU #145 (phys=145)
+                PU #146 (phys=146)
+                PU #147 (phys=147)
+      Socket #37
+        L3Cache #37 (4096KB line=128)
+          L2Cache #37 (256KB line=128)
+            L1Cache #37 (32KB line=128)
+              Core #37 (phys=148)
+                PU #148 (phys=148)
+                PU #149 (phys=149)
+                PU #150 (phys=150)
+                PU #151 (phys=151)
+      Socket #38
+        L3Cache #38 (4096KB line=128)
+          L2Cache #38 (256KB line=128)
+            L1Cache #38 (32KB line=128)
+              Core #38 (phys=152)
+                PU #152 (phys=152)
+                PU #153 (phys=153)
+                PU #154 (phys=154)
+                PU #155 (phys=155)
+      Socket #39
+        L3Cache #39 (4096KB line=128)
+          L2Cache #39 (256KB line=128)
+            L1Cache #39 (32KB line=128)
+              Core #39 (phys=156)
+                PU #156 (phys=156)
+                PU #157 (phys=157)
+                PU #158 (phys=158)
+                PU #159 (phys=159)
+    NUMANode #5 (phys=9 local=67108864KB total=67108864KB)
+      Socket #40
+        L3Cache #40 (4096KB line=128)
+          L2Cache #40 (256KB line=128)
+            L1Cache #40 (32KB line=128)
+              Core #40 (phys=160)
+                PU #160 (phys=160)
+                PU #161 (phys=161)
+                PU #162 (phys=162)
+                PU #163 (phys=163)
+      Socket #41
+        L3Cache #41 (4096KB line=128)
+          L2Cache #41 (256KB line=128)
+            L1Cache #41 (32KB line=128)
+              Core #41 (phys=164)
+                PU #164 (phys=164)
+                PU #165 (phys=165)
+                PU #166 (phys=166)
+                PU #167 (phys=167)
+      Socket #42
+        L3Cache #42 (4096KB line=128)
+          L2Cache #42 (256KB line=128)
+            L1Cache #42 (32KB line=128)
+              Core #42 (phys=168)
+                PU #168 (phys=168)
+                PU #169 (phys=169)
+                PU #170 (phys=170)
+                PU #171 (phys=171)
+      Socket #43
+        L3Cache #43 (4096KB line=128)
+          L2Cache #43 (256KB line=128)
+            L1Cache #43 (32KB line=128)
+              Core #43 (phys=172)
+                PU #172 (phys=172)
+                PU #173 (phys=173)
+                PU #174 (phys=174)
+                PU #175 (phys=175)
+      Socket #44
+        L3Cache #44 (4096KB line=128)
+          L2Cache #44 (256KB line=128)
+            L1Cache #44 (32KB line=128)
+              Core #44 (phys=176)
+                PU #176 (phys=176)
+                PU #177 (phys=177)
+                PU #178 (phys=178)
+                PU #179 (phys=179)
+      Socket #45
+        L3Cache #45 (4096KB line=128)
+          L2Cache #45 (256KB line=128)
+            L1Cache #45 (32KB line=128)
+              Core #45 (phys=180)
+                PU #180 (phys=180)
+                PU #181 (phys=181)
+                PU #182 (phys=182)
+                PU #183 (phys=183)
+      Socket #46
+        L3Cache #46 (4096KB line=128)
+          L2Cache #46 (256KB line=128)
+            L1Cache #46 (32KB line=128)
+              Core #46 (phys=184)
+                PU #184 (phys=184)
+                PU #185 (phys=185)
+                PU #186 (phys=186)
+                PU #187 (phys=187)
+      Socket #47
+        L3Cache #47 (4096KB line=128)
+          L2Cache #47 (256KB line=128)
+            L1Cache #47 (32KB line=128)
+              Core #47 (phys=188)
+                PU #188 (phys=188)
+                PU #189 (phys=189)
+                PU #190 (phys=190)
+                PU #191 (phys=191)
+  Group0 #3 (total=123731968KB)
+    NUMANode #6 (phys=12 local=66846720KB total=66846720KB)
+      Socket #48
+        L3Cache #48 (4096KB line=128)
+          L2Cache #48 (256KB line=128)
+            L1Cache #48 (32KB line=128)
+              Core #48 (phys=192)
+                PU #192 (phys=192)
+                PU #193 (phys=193)
+                PU #194 (phys=194)
+                PU #195 (phys=195)
+      Socket #49
+        L3Cache #49 (4096KB line=128)
+          L2Cache #49 (256KB line=128)
+            L1Cache #49 (32KB line=128)
+              Core #49 (phys=196)
+                PU #196 (phys=196)
+                PU #197 (phys=197)
+                PU #198 (phys=198)
+                PU #199 (phys=199)
+      Socket #50
+        L3Cache #50 (4096KB line=128)
+          L2Cache #50 (256KB line=128)
+            L1Cache #50 (32KB line=128)
+              Core #50 (phys=200)
+                PU #200 (phys=200)
+                PU #201 (phys=201)
+                PU #202 (phys=202)
+                PU #203 (phys=203)
+      Socket #51
+        L3Cache #51 (4096KB line=128)
+          L2Cache #51 (256KB line=128)
+            L1Cache #51 (32KB line=128)
+              Core #51 (phys=204)
+                PU #204 (phys=204)
+                PU #205 (phys=205)
+                PU #206 (phys=206)
+                PU #207 (phys=207)
+      Socket #52
+        L3Cache #52 (4096KB line=128)
+          L2Cache #52 (256KB line=128)
+            L1Cache #52 (32KB line=128)
+              Core #52 (phys=208)
+                PU #208 (phys=208)
+                PU #209 (phys=209)
+                PU #210 (phys=210)
+                PU #211 (phys=211)
+      Socket #53
+        L3Cache #53 (4096KB line=128)
+          L2Cache #53 (256KB line=128)
+            L1Cache #53 (32KB line=128)
+              Core #53 (phys=212)
+                PU #212 (phys=212)
+                PU #213 (phys=213)
+                PU #214 (phys=214)
+                PU #215 (phys=215)
+      Socket #54
+        L3Cache #54 (4096KB line=128)
+          L2Cache #54 (256KB line=128)
+            L1Cache #54 (32KB line=128)
+              Core #54 (phys=216)
+                PU #216 (phys=216)
+                PU #217 (phys=217)
+                PU #218 (phys=218)
+                PU #219 (phys=219)
+      Socket #55
+        L3Cache #55 (4096KB line=128)
+          L2Cache #55 (256KB line=128)
+            L1Cache #55 (32KB line=128)
+              Core #55 (phys=220)
+                PU #220 (phys=220)
+                PU #221 (phys=221)
+                PU #222 (phys=222)
+                PU #223 (phys=223)
+    NUMANode #7 (phys=13 local=56885248KB total=56885248KB)
+      Socket #56
+        L3Cache #56 (4096KB line=128)
+          L2Cache #56 (256KB line=128)
+            L1Cache #56 (32KB line=128)
+              Core #56 (phys=224)
+                PU #224 (phys=224)
+                PU #225 (phys=225)
+                PU #226 (phys=226)
+                PU #227 (phys=227)
+      Socket #57
+        L3Cache #57 (4096KB line=128)
+          L2Cache #57 (256KB line=128)
+            L1Cache #57 (32KB line=128)
+              Core #57 (phys=228)
+                PU #228 (phys=228)
+                PU #229 (phys=229)
+                PU #230 (phys=230)
+                PU #231 (phys=231)
+      Socket #58
+        L3Cache #58 (4096KB line=128)
+          L2Cache #58 (256KB line=128)
+            L1Cache #58 (32KB line=128)
+              Core #58 (phys=232)
+                PU #232 (phys=232)
+                PU #233 (phys=233)
+                PU #234 (phys=234)
+                PU #235 (phys=235)
+      Socket #59
+        L3Cache #59 (4096KB line=128)
+          L2Cache #59 (256KB line=128)
+            L1Cache #59 (32KB line=128)
+              Core #59 (phys=236)
+                PU #236 (phys=236)
+                PU #237 (phys=237)
+                PU #238 (phys=238)
+                PU #239 (phys=239)
+      Socket #60
+        L3Cache #60 (4096KB line=128)
+          L2Cache #60 (256KB line=128)
+            L1Cache #60 (32KB line=128)
+              Core #60 (phys=240)
+                PU #240 (phys=240)
+                PU #241 (phys=241)
+                PU #242 (phys=242)
+                PU #243 (phys=243)
+      Socket #61
+        L3Cache #61 (4096KB line=128)
+          L2Cache #61 (256KB line=128)
+            L1Cache #61 (32KB line=128)
+              Core #61 (phys=244)
+                PU #244 (phys=244)
+                PU #245 (phys=245)
+                PU #246 (phys=246)
+                PU #247 (phys=247)
+      Socket #62
+        L3Cache #62 (4096KB line=128)
+          L2Cache #62 (256KB line=128)
+            L1Cache #62 (32KB line=128)
+              Core #62 (phys=248)
+                PU #248 (phys=248)
+                PU #249 (phys=249)
+                PU #250 (phys=250)
+                PU #251 (phys=251)
+      Socket #63
+        L3Cache #63 (4096KB line=128)
+          L2Cache #63 (256KB line=128)
+            L1Cache #63 (32KB line=128)
+              Core #63 (phys=252)
+                PU #252 (phys=252)
+                PU #253 (phys=253)
+                PU #254 (phys=254)
+                PU #255 (phys=255)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Groups (type #7)
+  depth 2:	8 NUMANodes (type #2)
+   depth 3:	64 Sockets (type #3)
+    depth 4:	64 Caches (type #4)
+     depth 5:	64 Caches (type #4)
+      depth 6:	64 Caches (type #4)
+       depth 7:	64 Cores (type #5)
+        depth 8:	256 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/256ppc-8n8s4t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,469 @@
+BZh91AY&SYùA™Aæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿï×ÿÿ×ÿÿÿÿ÷ÿÿà£^z>À ˜GÀ'x   àê	Ñ>âÁj
+ø;à       @  íà  ú ;½•>gË}o‚€ ¶2&U8 "\ìÄ@	€  ˆ ˆ‰° ˜M€ ½!  	'º.ÆÛE¶°° ’‹é§­ìh^½ÛÛÛӝ€ £°d]†Ø±£cä©”!*DI©J  ÐT>[ì!õ¸  ìnywlÛ3ØÝ€Û:Æœ =ö  àÑB‚‚’  –%IP* 
+ŠA@¢ ¦úÒ))EÄ  ±èsâD³aÍž  9Cß0`È     `el`©²Mžý5*TÚG¨4ÆÊšyMè h @¨Ñ ÚOQ“Ô dÓ 4Ð4
+ hÉê=@ hAÿú¥S@úª@ ÔðI&”ò•SÞªf)“ýTÿÕIÍ&ÓLL#MÔõDÄÀ Ó	“hÐ40@ÀLF@@hdi¦0†ŒL† 42&ýJ©O)ê56“ÒÞ¦¦¦šzš= 44Âiè&SÄ4žCS¦šA Úš™4Ðhhhi¦Sjb4ÓõC@Ð
+
+
+
+
+
+ @@	=RT„ÒšOE§¨Éêi   €       h              ¥( ¡24j›bi˜z'¨Ñ£jmOÔ˜Ô=@É hm'M© hÐhSFÔå6¦ÔÓ&É ê hÓCi©êä‚$!†ž”ýF¦‘êzG©ùSM¨ôž¦›&š˜žjƒôÔô‘µÔÓÒyCõOSÔ~’4å  õ =@@Ò‡¨ 
+OSFG”Ðõ‡©ê õ0W¸ùñX+j+z\Ⲭ
+î
+ýcQ°WÖÁ&‹C}U›iZZm¥•­¿úíØ­®°Ê–ý9-
+
+[’	{²YIaƒb‹h–*X{ÂX{ꚬSµ¶+2)úekŠF at I
+*A€ºPpDóŠJe#)JS)šJ16ØÆ))še33)4”˜ÅJØ€¦µFÆ,cF£X¯¢im–ÒÚYk–1¤¦R2”¥2™¤£Ò£ÉLÓ)™™I¤¤Å* iٍÈEôÛ]ÂÚÜÑb“2Ee­
+~ómmÕUåIi–šVYl©Yil´ÚVZ[-+,¶Y´¥¦ZKKo4\®sræÝ7,n—M’åÓdºî©]%¥.ºæjS®Ü›(IJuušæÝ¥rÝ›šæÅR×,\¹rérìº].Ë¥ÒìéÓ§]$DÝQî6­û×·ð[kësZî#&™dÙ*fɲTš,ZíRkäëåîßë¡"]PË¡¨‰ƒÊXã%(\tXa²RÓ
+Õ-­¯ÅÕJÃV)XÕÃ5{ÆíÅ$=“ÄQEQEQEQE%QEQEQEQEQEQEQEQAEQE                           333upUI2+UX+	Y%âaòñT#ê2&Úü_áU·jÛðêÛß?Í@             ïÅ~aø¯ÌøßŸáþ/ñßsó/Ãý|ßwíÿ€ñ¼ŽÔp\'¼o|V»_Åñ›;ä9K”Þ¹§æ·Ý÷Q¿ùÿAÍ󞇅à´<oŒ½øÖšãÂsy4ƤäM‰³8ƒy4Ç}<ÑÌžxç
+Üݍ!ºœñϝ	ÁÒ)Ó9µ:Ãߝyžv'djžvghv§lvçp~U;“ùØî‰±xlc‡õ€                    á+¬cºÖÝÝÝÝ€          H%
+/꾿õ¿2\×ë{–üïæüõóu}ÖW½Âç›ñîcçύøÍíâ-üµ©59±KmœøßÆoohϾµ&¤N~G}ƒÅüföÄZ3Y¥kšF~FÛg8¾<^Ö‹Gµ&¹ý%y¾Á›ä½³ƒä-Iªü%—¼ßd³|—¶bÐ|­©5^úËâ÷Ù,ß%혴'jMUd÷³°x¿ŒÞÞ"ÑŸ—µ&§ÑY~O}’Íò^Ù‹Aó6¤Õ}%—Êo²Y¾KÛ1h>rÔš¯çY|Vû%›ä½³ƒÛZ“Uõ\ï°Nþ3{x‹FsjMcØ®}‹l/ã7·ˆ´g{Rkulþ{}³œß5Þ|E£>òÔšŸUcã÷Ø3|—¶bÐ{¤ÕIíí°x¿ŒÞÞ"ÑŸÖZ“SÖ²ù}öK7É{f-ë­Iª‰>c}ƒÅüföÄZ3óö¤Ôø{/Ço²Y¾KÛ1çy^ãzM]%{›l–oོE£>öÔšžÒËæ·Ù,ß%혴²µ&©Ù|Þû%›ä½³ƒÞÚ“Uîl¾K}’Íò^Ù‹Aó¤Õ{6_;¾Éfù/lÅ ù«Rj½›/Ño²Y¾KÛ1h?mjMW³eö#Æþ3{x‹F~.ÔšŸì±Æû‹ï›ÛÄZ3;Esñ1›FÙÎ'"oEjMr­Ÿ¸ï°fù/lÅ ú;Rj½›/}¾Éfù/lÅ ö¶¤ÕIöËl/ã7·ˆ´gø–¤Ôúõ—Íï²Y¾KÛ1h?“jMWØ,¿/¾Éfù/lÅ ÷ö¤Õ{‹/œßd³|—¶bÐ|Rj½Å—Îï²Y¾KÛ1h?ŸjMW¸²üæû%›ä½³ƒ×µ&ª²}Êvñ›ÛÄZ3ýKRj}nËô{ì–o’öÌ~Ÿy_ÙÞ“WÕŸËo³eò¯lÅ û½©5^Å•÷Ø<_ÆolÅ£ŸojMI¦~Û‹øÍíâ-þí©5>2Ëç·Ù,ß%혴àµ&«Ù²ùýöK7É{f-ÔZ“UðV_3¾Éfù/lÅ õ­Iª“ãm°x¿ŒÞÞ"ÑžíI©ìÙ|öû%›ä½³ƒêmIª‰?g¾Áâþ3{b-ÿU©5>µeî÷Ù,ß%혷¹ñô¦8ÿֽNJMuî­ŸÛï¶‚ùêöÌZúZ“UM¾Éfù/lÅ úí©5U“ã§`ñ½¼E£?øµ&§º²úöK7É{f-þ­Iªû¥—î÷Ù,ß%혴¸µ&«ìV_«ßd³|—¶bŸXæ-JÒ±u{¢Mʯ»¤äjô)45~'/Wà’jj÷Tœ½]œ½_ƒI³«ï	7ʽ:M^‘&ίN“q«ð	6UugWW‘'-W‘&ʯ
 "M•^Dœ­^D›¾')Wœ“’«Ñ$ë*ôi9
+½N>¯F“v«Ñ¤æ*êÎ:¯"O)W‘&¯"M…^D›j¼‰6yqµvq•z4œ]^è“_W‘&¾¯"Mµ^Dšê¾&m^‘'“««8ª¼äšÚ¼äœM^rN&¯9'Wœ“‡«ÎIæ*ôé8z»5•zTšÊ½*M]_{I««Ò¤ÕUéRy*½*JÑpÕ"¯“¥'ñ¸eþ˜Ÿîa—úr}¾§'Ûa—ø$ù¸eý¡?…Ãúðv‚?ÒÁéû|þ?í ôþ²ÿÚƒü\ÿŸ'Ýá—òÉðá—òÉðá—òÉðá—òÉðá—òÉû\2þÔŸžÿwóÁêüðGüX?žÿxóÁñ@ù«óÁêÁýžÿVåk÷°¿&#ýœÊÿ@?”þ€(#ý þPGúü ôùAèò‚?ÐåŸõ!~X1þ€vÿ@?”þ€(#ý üAèò‚?Ðå·ƒùà÷€<þîç‚?݁üðGû¨?žÿtóÁéðá—ï“áÃ/åáÃ/åáÃ/åáÃ/åáÃ/í	ë†_Ù“áÃ/øB|Œ2þ×ï~ÏóØT“üóZÏ¿ÑRL˲IlKm‚IÉ$“$Km‚Im°I-¶	%¶Á$É$’Û`’[lKm‚Im°I-¿¨&FÁ$¶Ø$–Û’Û`’rI$¶Ø$–Û’Û`’[lKm‚I’H	&I $–Û“$KoÿD“#`’[lNI $–ýè=ïz{ÞƒÞ÷ ÷½è=ïz	m°I2I$¶Ø$™$€’[ªdlKm‚Im°I<É$“$Km‚I’H	&I $–Û“<õ怍û"äTTQh¢(±–åŠ(¯öÖå^»jýËVߨü¥ô$¯ÊнáRj> ­¢¹{ܰ¿Bûkj ^Ö,ýb䟨譁¾Ç~ nƾ`ï*«æWÍ{r€ù€U-~±uäÕÝ‚£¨»@_ / ¾¥ã
+ãÛRY»@ú-4¨ºÂ¾‹]j'£¦‰IG£¦„½4ªŽp®*—Ò
+ì
+Ø¢sîÑDôtÒŠôtÐ<ŠYÜ×Z¤n©qŠê
+ö{vÀ@yîÝ¢Š\ò®À¿•vŠ7ò®À_¦‚+òÀZú¼¯´­‰Wv"·öwwöwn1XÄÕIQ[ÓS|5øûãï¾UV1™¼Nø+ÊÔ5¨¾ý½²çÁޏ­“®¼ºÊëç‹Êº¯G'¾e|'+}…åü7?}…çÞ®þ%ü[èoã_cz*«ŠÆ*¯ÌÆyžW©:3=©åŒó<¯Xg™î’ø»ùÌ_'&ý}ü«ùwÉße2ö—ô/èßMJû;èïéßÔ¾žôÕUŒ}Wi}Eý‹ío©¿µnúæï¶½­ýËû·íoï_¢½µö÷÷ï«¿Ã}Äþê~Þ×?ÄŸöOÆŸƒ?Û?e?q?8
+"?÷U¨‡øuUTWü4ÐWütÒ+î4Òÿ-4~Ÿ>Flü=>6Z¨þæ¿u-ü*ÿÞ~Tü9¡A?ø¯þe€¿B¿úŸ—?6ª‡ÿtÐ+àé «ítÒPGÿ´Ð¢‘òð©4¤þ¶Ÿ3??`+l)ü1_d+J+úµ,(5b³$˜ÂŠ`f0™UU–T”LeT³%ÌŠK/}ƒì4Ø¥²É–UJË2TË%[2¦Ze£LÔÍ™fY›3kk[S52Ó5)fY–e”³,Ë2Ûe,¥™fY–e”³,Ë2Ùd¢dPÌ¥J2Ä«,ÙšÖÂU³,ͪٛ2µªm]«¶ÛmJR›m¶ÕÚ´Û÷¿à|ïýÿñ¼}7Ó}/Ñúzzzzzzzzzzzzz}?§§§§§§Óúzzzz|O§§§§§§§§§§§§«íÞÿ/öÿ«êú_¤õ}Ðz¾3ü^¯W«Õ÷¯W«Õêûï«Õêï¾ûï¾ûï¿wîûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï¾ûï½¶¥6¦Û÷À,Eþ‹úOÅûÿÅûû¿ÀÞÿïœ9Ë»çIÇhµ·˜-mÛ©[E$Ñºío30ZíšÛ̶ítn¶í—KÝ2‹2—”˳8æÒ–Y‚—”ÌsMÜEÂö™E™KÊeÙœsiK,ÁKÊeÙ”ÅtÝ.é”Y”¼¦]™Ç6”²Ì¼¦]™L‰œ¥í2‹2—”˳8æÒ–Y‚—”ÌsMQ¶Ä¹¸Ý™¹q±·7ÙºØÛ›ÇtmÂF[˜«r	sqm›­¹¸ØÕpe»	Ù­ËkvêU»u­º•o3R­Ú-vê$ÜKv·™™©[u«yš•nÑ«wÖöÄ
+Ð^‚˜/tÁÂÐe0tƒ( ƒ4`ºh)ƒ¤Aš
+`é`9AÒ ‚ áh3¬ÁpA” ëÐA4ÁÒ Í0tƒ™AÒ Ì0iVlÝÝ»²I6ÛwuÙ#¶±»»¹™™›mÛwww.èÝ»$¹–ÑE¶ÜÌÌËmÛ$’îèÝÝ©(ntËýWsz^ôÎìÎ9½)e˜)yLÇ4Ý“q\ubQl
+¹º3
+¥tÜY,âÝÀµ…píÖ0*t•Ia¦æn«¦sF@‚ÁB•¤ít)¼Úˤëxrò•sa£	ÀÆmJ+FºftÊ,Ê^S.Ìã›JYf
+^S.̦n=ÜÝÑ»»$“m·w]’[tnîîfffÛE¶ÝÝÝ˺7nÉ.e¶‹m¹™™–Ú-¶I%ÝÑ»»m†áwL¢Ì¥å2ìÎ9´¥–`¥å3ÓB·rîÝÙ$›m»ºì’Û£wws336Ú-¶îîî]Ñ»vIs-´[mÌÌ̶Ñm²I.îÝÛE†áwL¢Ì¥å2ìÎ9´¥–`¥å3ÓM–nîÝ»wfBrîݺª¶Ý»víÛ·vdʵ[nÝ»vîÂreÝ»v'e»víÛ·n“víÛ·vdË»wfL»¤Ý»³&§³nÝ»víۤݻvíØ–íÛ·nݺMÛ·nª­·nÝÙ“);·nݺðè›-9né×-.ãÒÆfˆæÓ—s(Ì2‰fS–î”4åË™˜4L9rS™F]ÝÊ3)w.îé×.êº&K§-Ý:ÄÌØòÒÆȩ)»wwnÝ»³!9wnÝU[nÝ»víÛ»2eZ­·nÝ»wa92îÝ»²Ý»víÛ·I»víÛ­#w%ÌÂ÷%Ìˬe»¹™ºÆT•Ýß4>åÜ̺ÆvîæfëÙÝÖ2¤’N±–îëÃ&ÍÝc;wuàu%›¹™ºÆ^îæfë]c-ÝÌÍ×I{­É‡.Jeʲ%–FnãrIµÝËr3n7%9r:›si¹V¬Ù˜÷.ër幡$;rSd̬ͭɇ.JeÌys.D­‘›¸Ü”S+¸î;ŒëÚ¶=Ä“Üw׵͖»Žã¸î;Žã¹s¸¬wåÇ,Úî;Žã¸î;—‰'qî;ŽãOl¯qÜwÆuæ×q$î;Žã¸îZ­­U¼OeoS¤Ë±\­êvVõ-—S¤“ŠÙ¶6¤N˱Rr·©Ù[ԝÅl­êÖíÙ±±›—pÅ¶n¶6æãcqÝp’F[˜«r	sqm„î¶6æãcrèÛ3c™nÝÙ“.é7nìÉ©ìÛ·nÝ»vé7nݺîâ–]Û·nÝ»t›·nÝU[nÝ»³&RwnÝ»wsayL¢Ì¥å2ìÎ9´¥–`¥å2ìÊaÁ-lc­äW+r,',O%nE™[’Y²,$•Š[RH³,O	•¹enIfȳ+rW·éyL»09´¥–e/)—fS2é–»¥íÄôçKÞžôvgKïnvÍã—¥,³/)—fS*M¥Ý2‹2—”˳8æÒ–Y‚—”ÌsM.Ñ_2›Kºee/)—fqÍ¥,³/)—fS-u…å2‹2—”˳f^”·³KΙve3&—¥î™E™KÊeÙœsiK,ÁKÊeÙ”È
+‡‡øÓ,Îc0ÖÎB3
+pã£\8Æa­†¢H0e†að°è¼0eƒÃÃ(¼<0eåƒ(¼<0bÑ(lÉeÃfLZ\/tËË2—”˳8æÒ–Y‚—”ÌsMÈ™2áº]¦PlÊ\¦]™Ç6”²Ì¼¦cšhR;š5†Ì–hÖ2fQ¬Éh®„ôlІŒ´!FZÑf„4e¡
+2а…4$…t!FZ£-SBHWB)e¡2àI
+z£-Q–…„)¡$+¡
+2Ð…hXBšÑ7B3hXBšBº€©p)ÂÐ’Ð…hF¸ѳB2а…4$…t!FZƒ.×¡IטèÞô!Ñ–…„)¡$+¡
+2Ð…hXBš’”,!M	!]Q–„(ËBÂЃۗvíÛ»2—víÕU¶íÛ·nÝ»³&UªÛvíÛ·v“.íÛ±;-Û·nÝ»t›·nÝ»³&]Û»2eÝ&íÝ™5=›víÛ·nÝ&íÛ·nÄì·nÝ»víÒnÝ»uUm»vîÌ™IÝ»víÝÌH½É£[Ž#2Y£[Žæa³%š5†Ì–i{fa³!(È]Ó(³)yL»3Žm)e˜)yL»2˜ÝÓawL¢Ì¥å2ìÎ9´¥–`¥å2ìÊdÌÓ!{¦QfRò™vgÚRË0Rò™ve1íy…ÒóL¢Ì¥å2ìÎ9´¥–`¥å2ìÊgx88\X^ÚgE™AyL»3Žm)e˜)yL»2˜»—tnîÉ$ÛmÝ×d–Ý»»™™™¶Ñm·wwrîÛ²K™m¢Ûnffe¶‹m’Iwtnî×Ð ç9Î œ ppr7Òˆâ¬ÁXI1Ã\8P‚(hÙÚoR¤^NR
+AY"Ö4Y4dFÛëU&™d¤Ì‘níUÍo‹k,”d‘ZÍZ¾ª‹×”î+Mˆ$Ì’RDD´DDE]x•Dd‰HF*­F£RZe“d¤É"š­bÛ±µ´kFµ]/ªîºdÒY6ÆÉ³*f”³e*eI¬[V¾mkz·™$›Ic]Ýn»µÓ1c[š¨ÛE¼Ým-Šf”¦É²jKIµE´6ÒÊ£L³6YeM5*lÔ©©Sfš™Y›Ebµb£bÆÅE¶«kmF4”d“FLÄ’’"­±£E%3&I’#
+«kš¸Õªô;›–á$$˜Ì•'.—w].s'7LM$I®Þ…äbI’I”ÌÌ——W…ªék¥)†R”¥)J»¥º«Ì$$’ēλ»»¸ºÏuÝ×wDFÖòŠ2S)))’“µŠ(Å*µì­¥Y·»«»»»6ׄ’fIwN—]ÝÝwuʉ ;&d’L’KºîîîV›€YhÔQ¬bH‘e›i–k_VM´Ú¹¥Öëk´²Ú첬ËiV[×G65Ý[›»®î»q×]ݶ¥Q1 Å’‹c!%O†ïôo±Œ¤!Ѝ"SB
+R
+|õWϧ§ôþs$I$‘Ã$’H¤RI$1$2G$Ù³cfÍÀ•P’ŒñEd^vu*YB}Î$Sí`Pºøžp¯@\yRcŸF2¥z‚W"¥Ò7}ú¸áNµ-¸®¹2¥¦EcŽã‘6ð,ŠÞ+§vfc 7üÞÑ\X“n+W
+†©»ð£^ -ßRŽ>ÐEµÈ²cÀF1QäÿÔDaÎ p¸$ÜqÐV¶Ø¥b•®ÆEiPyú۹ܣoî·øìyY8<h_ø@ {ßsõ`¾L+Ü€aGòÀ2­ØKD»í}‹ßòñ\֏³ ×jtÙ˜§Ä|µ)JR”¤úô¯?	ëߨöÿùÅqŒcÆ8Æ#Æ1Œ_ÄãÆ1¾1Œ[Æ1lcÆøÆ18Æ1Œ_ÄcÆ1Ž1ŠãÆ1ŒsŠcÆ1Œcb˜ŒcÆ1Î+ŒcÆ1Æ1Æ1ŒbøÆ'Æ1ñŒbØÆ1‹cÆ7Æ1‹ãœcÆ7Æ1‹cÆ-Œc߯'Æ1‹ãŒcÆ1Æ1\cÆ;ï®Îûï¾ûï¾û¾„ <þã÷¯OòUõßÏ  —ï릫óhr¥ÐÀ$¹ ¢ˆ-¶Ð µGÓ*6 »›Ÿ‰¿ìþ‡Ìêÿ›k“Ú|Ÿi«Ê+Ðç
+ÐW7F¢µª[Y‹‹O·ûmƒŽ®>×i><\|uú¥~»¯wuµº÷7]M×QuÓÝow^Ó€Wñºé®½×²éUýn½…×®ºõ¾­]ϪWîºèîº+¯Ouéºw7\ý×=uÎÝo×Zû®뜷¼÷ZÛ'ëãWªý.ùÀ†ž¶öV©µ­u[m¤Vå¶Ùh£¬q°TE
+i¡G=ÊÇAG%·ûxzý¿ælâ‘PNúá`"SM".wY"
+[k'Óì¶Z‚4´´”“j£¡‚¸b¢›þ±O÷aPDõ«~E|,©÷ú¸¾ÌÑÖ½˜­íÈ’fe3L³&Y”Æ1‹_n	§ÓBJ2CîT}F”~h° 
+⪄wö_¥ý_é¿‹¿ÕýÆÏ3,Þê³p càÛ½z2¼if
+wÁ>x’ÕÙÔχË¢tgª´<9‹6`—»£Ç	]SÇ’y“»5«¹|Ï$[ÝÊúhÇçN”±
+ª°Ÿ;Ol=Ìíî•çv$ cÌ=ò‡fµ›ŽºF½V÷0© sœóÒQqÔ Cºë3­óž+²ûšÞœñ<»Ê±ÏE·Îø\9{åo¾°<Ñ	È6vŸŠyàÎîn޾¥¾WËÞÓŽß;žÙ:ݪÇ⻢xf7åˆö½ð<xù¾xò>ù›ã]j#ƒwjÏ2±6o™ãÞèuwʨÏwÉ1x°½ó§µŽÏ-y3°±ž9gšú´å>˜.^¼ÃáÏ3ÎŽãeo‡bðõù‚f흝=ñÁå()…;æÀ|CWVêxšðftà-‘:r²·	]œXóžkíU<Æâó™«„ñæy;:.xzâèÞÁ…bŒ<ÌÚûäïEˆ:Øó«ÃÇâ„	¡sÃÄ@ðæíB]ë• BÞ¸ÕÈÅ —³VöøÄW£bð€Òå=H> LòtÀÏ4$ÇÂO+žt
+C žL²›ƒ»â>gšúÛLvøÇwg˜oWWŽž¹ž; dwXò+äÔ5 ÈP½Õd;‹©ºÝqÜs”¡­Pw5:…dÍ7éšoݧ4Rê | ‹Ûõ?Û¿…Ž=4äåù?3êýU¸g±¬¾ÍCâpÏk㫌áôtÂ(ó<ñÂÎßLyÓ„íOø_žtþ¸Ñ;á(z./³#¤|vìÓ1 "A|¬ïXÒžcܸä¨T*I~¼óŽ Hu2ùÕù.Ÿ¡¸Ô;…MÏ3^Ö½<IßÄ wA4z3ËðšÏe
+QnC¸¬T/ƒ™½Ñ£~uÐfîP_qgkyFwsÍî÷!*_;<‘½*öŸØÒc0|¾6™›<Sž>ùLX:Bò{ÛJ+ºWSÎù;{iŽ^›ÜÜ><Yäìïrl;|Ííð¢F¹äêÅ|o	õðIçâk@ÀHÚƒ#فáôÓ#râHwU\7.eQéóYâDÈ)ÕP'*€=xïÓU”	é*yˆUSÕÐê‘ý—jj«¸$Âíäʰ 	 ¾±<·ÎNù›Eî©^h[ˆ÷Dn5&©*pÈ%À;ªD:ÊÔ¨dê]ɐMFãȃq<Ï x€xÝÔGÄç¾ §£×[póNèÔIGÙ7²Cpó!È>¹¸/é%ÄzªêÉW(+«±¨ú9~kåz0>ÁàGþÊÁÜ}¹=xÞ"»ñ“~8½g~g‘}¥a_)ûòÍ8Vz
+=%_ä‘Ì_È\óÛwëªnCÒëÒyöWBí" Ë  ñÏo–e^^T¨’Š(ßÕ  {ÿx+¨çµ…G>•-–ËHW¶„…­­¢¥>GmRò5x™ºÝjÔ+[[DêYm -4Ò‹“ñ¾~àüþøqE{øç€ c 5ŠË…£ <P
+ŸTÍ›]>¶
+'PÇ[–Ûeüà ½<~B¢‹Ûģт±JÅ+1·q\V—tW€‰(ñ]ê—B¥…·ßշʶµøÊÛu¿³Aˆb4ÔF@DTÐÒ± ˆÓQ ASCHCTl!` P	€ X
+ƒER¨²i,¡K2ÆŠ¥A’dŒFËDD“$E¥–B£`Ù  2€L Àl*•E“Ie
+Y–4U,Aˆb4ÔF DTÐÒÕÈX À”` À`ÑTª,šK(RÌY“05QKQò¶
+î|:—Ñùõ.,%”XaîEoÈ+J—€+Í©t(›+<a\rÔ¹j[…j+ð*[·Šöµ-·Tµm­ý®ÛYmjQ$%™²l–¤ÔlXªUJÖû6¬¥}åµnÛhØÆÑEb¢ÅU[	b¦Ê™)•0±hh´±›meµ©h¤Éšif›)²T–™©6KJªê¶íµkåVß=µ¾vûÔ€F#MDdb¦†…ˆ1  ŒFšˆÈŠšB>5¢Qíµ/QRéí;V‘Wdðjª¿/ü¢¼ónîànßy㻇»ŽÆÛtê_§m’	û.fÏØwtnîîÝïì–ÛZ¶‹lMÑ™H’HþŸõƒìþdØý4LÌ3333óú5­a™—w+ãV|_|ø½õ×Èü@÷¤}Þîànß_Ü=Üq–÷½ïW‚{»¸·¼wpóœe½ï{åZÕ«AOæKó6Å’	úlÌŸ›wFîîèÝß?5¶ßÍmØ$›£3 ‘$‘üߘüŸÌ›¦’	$I$üØ32	#l¯ =’H>$‘$ž.k%$O9Æ[Þ÷½^	îîànÞñÝÃÎq–÷½ëå[V¶¯Šø	ñÝÜ
+ÛãÇw9Æ[Þ÷½^	îîànÍ’’$²Š'„q¶ßÑúKé¶6H'ᙃ3ëwFîîèÝÞý[mú¶‹lMÑ™H’Hý}gé6?	 ’A$’O¬™‘¶WÐÉ$H’O5’’$²Š'„q¶ßÑúKé¶6H'ᙃ3ëwFîîèÝÞý[mú¶‹lMÑ™H’Hý}gé6>¤‚I’I>°fdFÙ_@{$|I"I<\ÖJH’Ò%Â8Ûoèý%ôÛ$ðÌÁ™õ»£wwtnï~­¶ý[E¶	&èÌÈ$I$~¾³ô›RA$‚I$ŸX32	#l¯ =’H>$‘$ž.oŽîsŒ·½ïz¼ÝÝÀݽ㻇œã-ï{ÖÚµµz¼ÜDÅÆÂH‚ÐEAm·ôOÒ	/¥²EøÌÆQs>·1¸ñõîïÓL}ni˜Ü‘äH QGëèû#馃ú’#MH¾ž`aFO»¯¸ëÝÜ
+Ûç㻇œã-ï{Þ¯÷wp7oxîáç8Ë{Þ÷«Á=ÝÜ
+ÛÞ;¸yÎ2Þ÷½êðOwwv÷ŽîsŒ·½ï{î¾ïwÝm’	øf`ÌúÝÑ»»º7w¿VÛ~­¢Û“tfd$’?_GÙúM© ’A$’O¬™‘¶WÐÉ$H’O5’’$²Š'„q¶ßÑúKé¶6H'ᙃ3ëwFîîèÝÞý[mú¶‹lMÑ™H’Hý}gé6>¤
 ‚I’I>°fdFÙ_@{$|I"I<\ÖJH’Ê(žÆÛGé/¦ØÙ Ÿ†fÏ­Ý»»£w{õm·êÚ-°I7FfA"I#õô}Ÿ¤Øú’	$I$úÁ™Ie}ì’Ÿ^îànß?Ü=Üq–÷½ïW‚{»¸·¼wpóœe½ï{½¡‡¸FíÞw\=Üq–÷½ïW‚{»¸·¼wp÷qÆ[Þ÷¾ú¾+à'Çwp7oÜ=Üq–÷½ïW‚{»¸·¼wp÷qÆ[Þ÷½^	îîànÞñÝÃÝÇo{Þõx'»»»{Çw9Æ[Þ÷½^	îîànÞñÝÃÎq–÷½ïW‚{»¸·¼wpóœe½ï{ÕàžîîíïÜ=Üq–÷½ïW‚{»¸·¼wp÷qÆ[Þ÷½^	îîànÞñÝÃÝÇo{Þõx'»»»’’$´‰DðŽ6Ûû?i}¶ÆÉúÌÁ™÷»£wwtnï~í¶ýÛE¶	&èÌÈ$I$~þϳö›rA$‚I$Ÿx32	#l¯¿°>B}½ÝÀݾž;¸yÎ2Þ÷½êðOwwv÷ŽîsŒ·½ïz¼ÝÝÀݽ㻇œã-ï{Þ¯÷wp7oxîáç8Ë{Þ÷«Á=ÝÜ
+ÛÞ;¸{¸ã-ï{Þ¯÷wp7oxîáî㌷½ïz¼ÝÝÀݽ㻇œã-ï{Þ¯÷wp7oxîáî㌷½ïz¼ÝÝÀݽ㻇œã-ï{Þ¯÷wp7oxîáî㌷½ïz¼ÝÝÀݽ㻇»Ž2Þ÷½êðOwwv÷ŽîsŒ·½ïz¼ÝÝÀݽ㻇»Ž2Þ÷½êðOwwv÷Žîî8Ë{Þ÷«Á=ÝÜ
+ÛÞ;¸{¸ã-ï{Þ¯÷wp7oxRD–‘(žÆÛgí/¶ÞÉ>¤ŸrFß~äû’ÏßÙö~ÓrFÚ_hýŽsƒƒƒŸ`|’H>’H’O+%$Ii‰ám·ö~Òm³ªH~Öfaû[»ºŽîîtýÛjûVÛ¨äxfäF ’Gïìû#í6~Ԑ™$HŒûÈŒŒ6WÜûçÉ$ƒé ‘$ž.6JH’Ê(žÆÛgí/¶ØÙ ŸY˜3>÷tnîîÝïݶ߻h¶Á$Ý™‰$ßÙö~ÓcîH$I$“ïfA$m•÷öÉ$ƒé$‰$ño§Žîî8Ë{Þ÷àjµ­«â¾D’$“ÅÈÉIYEÂ8Ûoñ?Š_‹llO¼ÌŸŽîÝÝÑ»½üm¶þ6Ñm‚Iº32	IÇñ>Ï⛌I ’I'ãƒ3 “ãÞó¾í}ÀŸ^îànß?Ü=Üq–÷½ïW‚{»¸·¼wpóœe½ï{ïß
 ð㻸·¼wpóœe¼Ûgí/¶ØÙ ŸY˜3>÷tnîîÝïݶ߻h¶Á$Ý™‰$ßÙö~ÓcîH$I$“ïfA$m•ô²IÄ’$“ÅÍd¥ÃÝÇo{Þõx'»»»{Çw9Æ[Þ÷½^	îîànÞñÝĹR¤`ÝÝßÄUA÷þŠ|?ÑçÒü?¢øø|_çáàú/OÖGÚÂáƒõ	ÓáýAƒSI„HÝŽêRɰ§	7,ÀÕÁ¤k Jh!ÄI$’q$?'¥ Id#³n ú„Z¹I ’ZnœÌK˜I$“-q6ˆ‚	I"Ø Â¡B ¡Ù0MI$›mîæLÂÈÀ“41yL(4,Æ„jââBiÃJG7ÄÓrk9ª†Ûƒné”<Ž5HÁ‘
+¸›³B2¦î@éÍbS3l’º·r·•»†Œ&
+m†-Û7L[¹ ‰Â^Å¢º–ÔFQ†nh&RmRIVÃm†dˆCAt-ïzhYz‡V)ܘªCTI„šÆLã©$ÅE
+s D⍱R ÁŠ”ÁˆŽ ¸"Ó@$#´‚LI%îé&]×#sVàÔ˜’$'uÒÓµÆÑn]܍ÍW[µÈ„™’I¤ˆM‚*ˆ¿'ç>·†ºç^<}Æï®ç}÷U]÷ß~ *zѐÝNº£ÎUË×^|]™ãqP„qÃA+ži‹ãA·䃽ëÅÍ$=šõú¾@­P}РH’<ÙK!sqj‹#! Bà!Ȩõ㪴“¨÷ªŠšÈháß]w¾ú­î²¹;È)@@‘_§žbcó¾ìM~ÇÇãûŸ{î¦Û.5=>5ðß	ðßò]$¦fb!$’I   ‰%33	$’I          ’S31’I$’ILÌÄBI$’I%33	$’I      ILÌÚfRI$         ILÌÄBI$’I%33	$’I$”ÌÌD$’I$                                          $”ÌÌD$’I$                                                IDBI$’I(S1 	$’ILÌÄFI$   ’S31’I$      $”ÌÌD$’I$      ÅR‹LÌFÛDP§ÁÍD’I¤’IÈ{ø%±¢8 ÛZÛçòúgËå}Ëç  lhJ¤­vÕÚ„”{º}å
 î,È^¿ü_ûûò{ÿLj·ð7þf‹žŒbRJÆ"IˆÖYoá7äñªßêWêlÊ™Š¯¾=™ïT®kûv`_ÝùWølÀ¸®&a.+2-ñìÈ_+žç³!n·3!vnÍ™­u¬À·ÛìÀ¹.`]ÚÉ>>R~ÆéfIÓ#É¥¿ß~+_‚#»’HI™$’j°	3$“2RI%¤ÙKLÖe²Â©d›RÌZšU–m¦–Ó5£j-µ ƒTj+U¯õØ“Q¡bµú6ŒUŠŠ“fSJYfÊT¦ÆÉ¨±±­š¶6K&šifY4–4m6·áXÖ‹ÂÜ1FfdÙ,ÊeIS6Js¨²RP“`‰ÝÉ2DÒD˜Qcb£k4RfI"*hÄI™$’"Íÿ©&f’ÉRZe¤¬[‹nîÚå¢ÑbÅ®®
+ë\­Š¨µµøoÀÜÛLªüJ06¦å¹©(
+-¥oÄ¢w\‘rª[­Ö­ø „dŒ”QEmLÆ¥Ù¾úÌ…Û¼2‹Á³!z~•+ï®Å˜aJîkkf­Óf¯b=ŒfY®“–M’£dÙ•&’Òb·r#IfY4–f“"`ׯu¬À¿¿û^ê•Ý»öd/Gü^W”Ü€’*òá%f•fˆ ù¯ÉúJWY–¬¥E´ù2ëWwm¦À
+ð~Ǹ&I$œI$’I(™I—&°*ύ­ð º’I$’I$’I$ájå4¯]ecŠÑã+ŠæhÍÒºÍC
+:WN:†:WX˜cŠç)D:5}g5KV=k(!”’I$#(XyÁ 
+Íæ&´ŠÉ$’I2I$„’I4¸sjø  ìti\ÅÂÕ°DVÀ²wÍ+¥EÀ4Mb¸ ¢f!˜®"(Ø™0ÅqAVжյt‚=»•µ[KœA^hÃÈI$’LHjqhœd›]WÏåñó»ß[íp  €|VÙ4­R”¬BˆR°Z%+¢¬ˆtZ´ÊW©B
+]€ Ez7YuU˸i6q½UI$™RQµ«spOà\/5 –”I$’I  ;çZù+ÞÝm4ÛæÚë&¢”"™%Å)cDB–P<áKibàA`¢4$”F½À^ëÊš…Áyzg)wrs\ÙšÙ¥lÔ½n“F’îA¶Ú¹]—ûõS0˹B–QR¥=º+Zª®XÙIÙuAnÌgzÍKˆËs5ÖÆãÒI$’I$’IôùôÖ³svÚRY,™mä®DÂãA†ž2éÃnÑ©TÈ/(à™Rï‘Cœï4ô¡Y4|!ñÈaXBì*š
+éDB¹,Ä ¨;m¾oww×çö_?§Ïãè   ?•ô½|Ÿ»Ï|¾]|þ@ öw         €*€’I$$’H¯Ìôiù¿oa߯PñÊ©=3Î÷W-nDèL´XRf¡º’›N,qÓ,W‘š@”È/XxBI$’q%Úi޲AE°ØÆe½N¢yI’HAª£$ç0’u	ÔV6Ûh‚A#A$’A‘l CÇNÔI$š:3Èuéš
+Ë»SljA$Ã'ᇇš¹”饋KäMÉŠh»[m°Ûa;ZnLu­iqB®èL⛺4‘­†µnäÄ^KjܵîÍčœkS{9¯bÒ`ÌonÒ3Ò]77î"P¶;šdg‰RI*Ûm$Ãm„Aʶ°f°æÚõHp)±æâ‘H¤#RD¤sƒœ[¹ë™’zk^TwÞ:ñ׎ýž|xðxñ⪼xñãǐWÚ žœôó}øeåy=+ru~^§}’_¡zñáöLº
+Ñ\…ÝØ0ð(ò†¸kaú>yBÎ">~ÛÔ~ÇRøï¬;šóàjO_ÛÇ¿¸&¹Ýî7=Dx ùêîï$‘¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶›i¶Ûm¶Ûm¶Ûns¾"HðŒøÀä?A`|ÌÆØ‘§â€€øß]Õzú^xÛûÿQUAUUUTÀª V0*ª—`¡]Vnï÷Ë]Y¨`·òÅõ€fe‚Y.è^ =tjXW,êå‹öv<¬6×>{ê°ñ ‡¯_:2
+/@N‰Û =¢‹žyÂëϏpº:óã’I$’I$’BI$˜¹ß]à½EÔÖ¨Z‰r®…hÓJši¢¹á%뢴°fš+Q.…¢¨Z
+¡y՝xõós½Hkâ-æt]o8ÆÀ\æhD(7‚z½á{ƒ9ëåôù€ }-òùu·×âíô_+T.\(È^P´­'U²Ý[›ææn…ÐëEèÕ½¦Í›ÞÅÐéÖµ4.€J»š DðõÏÇU7SÆÍì׃–h½ïC^… )ž¢H/K4n€ô’I$’d’HI$“I£G{å¡Ei½j`¹Þ¶Ùw­Í‹y6l»Ñ½‹Y²h»Ö…ë6hÎq×4-ê!‘CLÞ[fn•lÖ¨³F¶-­Ü±eP¾äO.·×˜kÆ~MkË`&† ¹Åè8J<æg7y¿zø}ÝnyYŠ@
+ cª©vI ’âKxGƒ|cÃÈ ž”‚`0ßÝ›p8ð4™Í	(ß¿5IÉTE¦Y”á	3:²îê£=k]ù£Á8<d¹Íƒ›náP¬(®ƒ'“à¿Rùø  @>»çúm[|¯›ç>W˳ÇJš5ZÕ(ã…f´iÑ­a†f´hÀ<Ýó¶‹ÍAÔºþ7ny<a#…ï(cp)˜F§›£3Ôéõ'|ü<ÂI$’I$’H$’Kèèw°@Ãaù'˜Ùþ†@çÂ	ëgÖàp’ûç›ßLyρÉ0ÆÌbrâc5,I2	̏9ÁÌõC¥ßÇ<#ãÔçª@ ËîWÇ|ý½Ý»½íz÷«îõ€x½j´€ˆ¡¤39ãzCF°ªêЯß1oxl_|ÇÞ ’$’Iq$ ¬`UU.ÁC~‚Vlª¼¶UÈÛq³ÂÒ% ’ãã™>6©S<Ïáø£œ”œIr	ô‘$bA$
+ÁÀ=ÒI$ Û        BI$ŠÛtw¨sÅëδOC’d’ÊÖ³¢Hµp¢K[[O%CkÌx…‚]t@^ëˆÆ†I“©¤Ñå'”ANE0Ë¥˜ŠKšI$’Kš¤#RDµLÚ“KR
+¶AHÔ‚ZÔ„“‰A!¹„	ÅÁ˜	buµ6ÞI¸„QŒmñÂ$ÍGM5)Šs›[m°Ü£I5â;nWCŒÚiF3LѸlY‡Bš³ue›¹‰6ó%¸ÅBª“šé#xŠDi×€´tãÝ–©§c#{FèÊ‚I$–6Ûm¶l#¹HŽÌÕ”é¸uaÒŠ63“p’N¤’Cp s„H¹o¿ÃÎø<óφ߯^½-ivo­]éÞ·ofÒBùóÁ‹Ê<ñŸKÊ©%éŸC¯"«.0):!ÔÄŸ‘¿IG==Ùé磢x}zÎè(ëòzU"=vYEJÝò€/Úˆ   <s½]ÝݶÛm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶ÛM´Ûm¶Ûm¶Ûm¶}YÁël1Œ.>z“d#oß1ЬVfnm;²fn{~Z…P¨KU@%UUTÕSåMrÕÈ+qOÅa¾  m@çZÄqÌÄñ ÒšÖ¹°²ˆµµ›+»áÍ »\w»Ûµ$‘‘6³{—½‘ÈU\öÑZɽCG“&_`&ùKÂýèY|EO#òXI$’I$’I’I|Ámç93‡cW83Snà¬&†·iµB‹ca®+9ÊCh‚,‹3{®³œâ¥Å®¸r¯{¤¸hªÃšãuÕU'UœçG€ïl`hηáfÐ Óáœòz¾Ïˆï¯À  €}>ÇÙö}>z¶sDѬ xEIDŽ˜œ×Ú0¤Ùw­lØ,"02šˆ;7­ëC…Ùbsfµ1PËÌD@A„ F at F÷”QPæÇ¢Æ<+­ì`ç	…¨ŸŒR¾Âü×å8I$’I$‚Þ¾¿gÓì¾7Ñ•ImR–ÖÐb"	º7½î°6¨Æ `¤# (sœÖÎuÅ@ÈŠ‡ ªó9ÖиkW­: n÷½õ{ Y	e êï\³B„`"Æ"Æ`¤b	ƒ¯7½ìd3*©µïgKtð½ar‚C¨LÊ~„¤åò	%ñS£~}u	$’K‰ XÀªª]‚†7
+Ã73.ª±•YU•)[»Ì33W¨!£ZÓ­
+H‰ ŠH¢•ã{w¤@Ö´kY¥V4ëZ>æ —{Ý—-À<sÂÝ*ÉR"“'Âýu%'™“Þø¯žºI$’I$’I$’IÂös¼
+‚û𑷏s+B!A ¼ÀO‘ѧd½á½€’, Ðïnæ¶‹#´ÚÖô€h4&»½—W·V*±®ÝvkY^m¶ëokÍ^Vº­m_ÍeÊê¶Û¿àÛöìÌfæ	ÜÙÓýôÆðíôÉdÈŸÿ—ÇwßPÁëSÒ@Õ§Ù÷Ü`oÒ½öÉdÌåO™ïÅóÔ(øÔÀô5iù?=Æü«ßl–A<À~U•ŒBæ)Å3xšSÄE+Ä^ª«æ”ºŽ9&µšÒµÛzUE•ŒBæ)Å3xšSÄE+Ä^ª«æ”½+~35¬O >Ô÷>:½õ
+=j`zH´û>ûŒ
+oÃ%O >Ô÷>:½õ
+=j`zH´û>ûŒ¨ã’kY­+]·¥TYXÄ.bœS7‰¥<DR¼EꪻŒ
+ùW¾Ù,‚y€ü©ó=ø¾z…˜’«ÕUs¼Ò—QÇ$Ö³ZV»oJ¨²±ˆ\Å8¦oJxˆ¥x‹ÕUs¼Ò—QÇ$Ö³ZV»oJ¨²±ˆ\Å8¦oIVŸ“óÜ`h;~,‚yö§¹ñÕï¨QëSÒ@Õ§Ù÷Ü`oʽöÉdÌåO™ïÅóÔ(øÔÀô5iù?=Æü«ßl–A<À~U•ŒBæ)Å3xšSÄE+Ä^ª«æ”ºŽ9&µšÒµÛzUE•ŒBæ)Å3xšSÄE+Ä^ª«æ”ºŽ9&µšÒµÛzUE•ŒBæ)Å3xšSÄE+Ä^ª«æ”ºŽ9&µšÒµÛzUE”ºæ)½3xšSÄE+Ä^ª«æ”ÝFü2YòíOsã«ßP£Ö¦¤«O³ï¸Àß•{í’È'˜ÊŸ3ß‹ç¨Qñ©é j½UW;Í)urMk5¥k¶ôª‹+…ÌSŠfñ4§ˆ@Õ§äü÷F߆K ž@}©î|u{êzÔÀô5iö}÷߆K ž@}©î|u{êzÔÀô5iö}÷ò¯}²YóùSæ{ñ|õ
+>50=$
+Z~OÏq¿*÷Û%O0•ec¹ŠqLÞ&”ñJñªªçy¥.£ŽI­f´­vÞ•Qec¹ŠqLÞ&”ñJñªªçy¥.£ŽI­f´­vÞ•Qec¹ŠqLÞ&”ñJñªªçy¥.£ŽI­f´­vÞ•Qec¹ŠqLÞ&”ñJñªªçy¥4¿–A<€ûSÜøê÷Ô(õ©é jÓìûî04¿–A<€ûSÜøê÷Ô(õ©é j½Jœï4¥ÔqÉ5¬Ö•®ÛÒª,¬b1N)›ÄÒž!VŸ“óÜ`h;~,‚yö§¹ñÕï¨QëTÒž")^"õ*s¼Ò—QÇ$Ö³ZV»oJ¨²ƒ\Å7¦oJxˆ¥x‹ÕUs¼Ò—QÇ$Ö³ZV»oJ¨²±…óÔ(øÔÀô5iù?=Æü«ßl–A<À~Tùžü_=BLIVŸ“óÜ`h;~,‚yö§¹ñÕï¨QëSÒ@Õ§Ù÷Ü`oʽöÉu¥k¶ôª‹+…ÌSŠfñ4§ˆŠWˆ½UW;Í)urMk5¥k¶ôª‹+…ÌSŠfñ4§ˆŠWˆ½UW;Í)urMk5¥k¶ôª‹+…ÌSŠfñ4§ˆŠWˆ½UWq¿*÷Û%O0•>g¿ÏP£ãSÒ@Õ§äü÷F߆K ž@}©î|u{êzÔÀô¢•â/R§;Í)urMk5¥k¶ôª‹+…ÌSŠfñ4§ˆŠWˆ½UW;Í)urMk5¥k¶ôª‹+…ÌRLIVŸ“óÜ`h;~,‚yö§¹ñÕï¨QëSÒ@Õ§Ù÷Ü`oʽöÉdÌåO™ïÅóÔ(øÔÀô5iù?=ƃ·á’È'j{Ÿ^ú…µ0=$
+Z}Ÿ}Æü«ßl—ZV»oJ¨²ƒ\Å7¦oJxˆ¥x‹ÕUs¼Ò—QÇ$Ö³ZV»oJ¨²±ˆ\Å8¦oJxˆ¥x‹ÕUs¼Ò—QÇ$Ö³ZV»oJ¨²±ˆ\Å8¦oJxˆ¥x‹ÕUwò¯}²YóùSæ{ñ|õ
+>50=$
+Wªªçy¥.£…á-瘧4­
+ÒkÍBÓzï|Mk5¥O >”õ=u|õ
+>u0=$
+Z}Ÿ}ƃ·á’È'j{Ÿ^ú…µ0=$
+Z}Ÿ}Æü®9&µšÒµÛzUE•ŒBæ)Å3xšSÄE+Ä^ª«ä
+oÃ%O >Ô÷>:½õ
+=j`zH´û>ûŒ
+oÃ%O >Ô÷>:½õ
+=j`zH"õ*s¼Ò—QÇ$Ö³ZV»oJ¨²±ˆ\Å8¦oJzH´üŸžã~xH!ÿ©]5ãÄȰN<@L‹ãÄȰN6€1¨' &E‚qâdX'.A‘`œm cPN6€1¨' &E‚qâdX' &E‚q´A8ñ2,"Á8ñ2, j	Lj	‘`œm cPN<@L‹ãÄȰN<@L‹ãÄȰN6€1¨' &E‚q´A8Ú Æ œx€™	ÆÐ5ãÄȰN4€r('@ԍ j	Ç‹dX' &E‚qâdX'@ԏ"Á8Ú Æ œx€™	Lj	‘`œx€™	Lj	‘`œm cPN<@L‹ãh‚qâdX'@ԏ"Á8ñr‹ãÄȰN<@L‹ãh‚qâdX' &E‚qâdX'@ù‘`!EÁ€…j.Ô(¸#P¢à@B‹‚5j.Ô,\¨QpF !EÁ€…‹‚5
+.Ô(¸#P±pF !bà@B‹‚5
+.Ô(¸#P±pF !EÁ€„—i‚.Ô(¸#P¢à@B‹‚5
+.Ô,\¨Dq¤Á
+.Ô,\¨QpF !EÁ€…jI—XB²“.°…e&]a
+ƒuVB²“€…‹‚5j\¨QpF !EÁ€…j\¨X¸#P¿Ö®Ô,\¨QpF !EÁ€„GLµpF !EÁ€…j\¨QpF !bà@BÅÁ€…0¬×ÅŒÁA🤠¯ÆoóPÍš¦Z¹f
+L€AðÏÈݽÖÿ<Z<ÂI$’L’I!$’Jv
+
+U Ä­ëLŒ ’)ïB‰	!M€l§x$„B0 BÍ h¢¦B!!	"ÒX¾&¯f—’Ónµmm†æU‹ÊÃ"ÃŒM<†êoÃ}¬Þò°Èc#⚎‹9
+;„1$F Ø_Í‚‘/»ÀsŸÏ {D›pðóI&ËçC÷ñóù|¯§Ïì  ¾V»ã·Öø¾oã€0H at BD‰fiá§ŠwN×l8Y¾¨À4ÕðÓ›f˜:X^^«@ƒh0a† #%¸±Ä°F'Ôåß{Ù˜kñõ9	Pƨ#åo’¿;éòöõ÷;›ßgww½ö{âøÓî|€ ãâdÈDo§ÇÀ  €  õî뻫»»ƒ¨XÀªª]‚†°    ’H¯ê~ãÙîôíè/Ó­û*j¯x^Œ¸dÊäÍiHšÃ$žÛi<¦eØ“IԐ{1Dbö	ܽ\êxÉ’MGw¡“ÃȐHn opµL(’¹I$iaffIÔ’HmT²MI,l6ØiA8‚H´[D5 Ya ‚A³+E#
+\ÖQ‰²AŒ!°Ûaóu‹\ÆV8¦	+Ä”m¤¬¢Ó,ks;
+´ã9›7 Ö£”jՍ˜—¬:®kÆÞå’nd¹U¹•H9r‚2®,u—±»š
+Õ³a.ÌZ5“•R³- N¤‰XÛm†ÉX•bÔãMàÖRÓ·4ÂN­;ЏI$’u$0Ÿ|‚v®ý($žgš»|ïßž_<>xý·ëׯ^ˆ‡Ï8ŒÕ7Kûó¼3¸ÒóãCÒô×K@õ bÓCC§â¨|Ö4ú92^\𦠭÷³ËÕ§ÙÏÄ/ê€à sžŸ®¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Óm6Ûm¶Ûm¶ÛmàôCd`ç¬Á؁ãÛ¢Áœ< RXŸª s†úëùœ‚Vá¢Üs*€@
+ÆURíUTUSUNmðbÏŒµE
+SZAb6[b!ce–
+¹†^"ŽD¢îÛ»ÌDnæåòQF³ç˜4–$”蹜Jx@ ÈöÞû~>Ÿ.ë»åõ_?¨  @>+ß'WÛlÙl²ÙRٲ٪[,
+ËFÍ+U`ÅbÅ`Ådb²1X1Yª¸ô¶ØµVLVÙKd¶+j™lU±[Tùz•P\»±W—sqëmnNŸë
+fÝcÎ1.ñ¬	Ã2Ú=&ÉP`¿€Ÿ¹ 6û~@ ÷Ÿjiô\Ñ@Fè=,»@aÕ½â¨`Ef5`ý4c[:»8œqÙÎi(†¬C|Ìâ	焐âK¼Ïr0—ósëÀ ñï­ô¯mjÖÔF6YKMss(ց
+
+­ô‚8˜›´Äp1i¤¤;«aÔ0èÆÆ(œ°rƒÊHÙÆ41£W`r>y¡ÎÞÇêf@øòpÏŸX‚H’I%ÄU +UK°PÀÆÝXͪ¬¶g)0<GWˆÀ°,§X¥&! ZQ«Õ´Ž‹4hÍ™
+	M8!¡E6ù•'L4ôn4:×…áŽÌ03ˆ€¹áÄ‚ÅWÎó¥ücÁ|Öùz½ð   }eô«ª57T\15Ýc¤Õ`Ù*ð!D-0—x B¡nxh—­.Ô	Œ«Á’Û…Zd¡+!N0£Z›
+®·Òî„vè,Ùi³aEjµ—Y¸K•š':éªfR۝õã´th|C®±´ÉBˆÓpÂÄ\·H· wøYn´Be4
+QE õëzš:=	Œo´HœhlŠ7‹Œ`EÕI¸Â¡üþÞî÷u¢ú¾>Ÿsìû=ö>¿0 “¼¢”O«ˆ/&E†rËïÌ5£ZÁ0ޝcò!¬i= e¥*yÝušÌέkÅVƒ/3rÌÍÐîQB¨T ¬5TRUUQUMU;3¹  #&y»>¿oË}ª¾fùß{öý€ ñ|’.wßõø|¾@    Üî뻫»»»»·wWp
+ÆURì00]ÝÝÝÝÝÝ‚   UT  ÀüÓ{zúüŸo~#ëóøûï|
+4#8Ña8äÄÞ<3é¶ž*ÜZD½–` •¨2#jdk"\„’I>‘ÔÍï&Fœc:IIZÙ„’I'R\•bn‘RI%­¶ÒL6ØDp†ÛaÈëaˆ6ˆ‚ÌÆP¯bÜÈ™xárQ AÔ¸ÛaéKÒ·+ƒOCÀ‚I$l£UBŒPlsf­ÝZ!¡J1J´S®­Œ¥ÌÓ˜ão3BØd¸³pèY$	DônY»§ÅEwk(lnîɇ	ÒmŠ«Vó%tAHI$’I&FjŠhÁ	1›78q¦^I$’q% ª‘Ó®
+³”ª&5Û¿n¼ñϝbøÆ#*|xñàãíX½3Í8¥kHÍwÍ<^Õæø>yŒÕˆÏW!çRïSÖƒÔ‰'
+4€¼ðgÀhá_ãèQ¤øõa¿{цcÚÜ¿ïÅé1»:TàœàÏ]Ëž½ûÏï?ƒøÿŽöu×S31×]u×]u×]tÛm¶ÛitÛ™™ˆ†Ûm¶ÚI$’I$’I$’I$’I$’M·33
+¶Ûm¶Û™™ˆ†Ûm·×]u×]LÌÄG]u×]u×M¤’I$’I$’I$“nÌDCm¶Ûm$’I$’I$’I$’I$’I&Û™™ˆ†Ûm¶ÛmÌÌÄCm¶Ûm¶æfb!¶Ûmõ×M¶Ûm¶“m¶Ûm±¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm´’I$’I$’I$’I$’I$›m¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶ú뮦fb#®ºë®ºë¦ÒI$’I$’I$’I$’I$’I$’I.›m¶Ûm¶Ûm¶Ûm¤’I$’M¶Ûm¶ÛI$’I$›m¶Ûm¶Ûm¶Ûm´’I$’I¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûo®ºê":뮺뮺뮺ë¨êf"#®ºë®ºë¦Ûnff"m¶ß]tÛm¶ÛitÛ™™ˆ†Ûm·×]6Ûm¶ÚI$’I$—M¹™˜ˆm¶Û}uÓm¶Ûm¤’I$’I/ÍИFý¾Ð„lÀ°Ë
+7¶Í•—ìºÎU]•­—'>s¯{5ïk^þÍŸ×xú´Y•Õ…¶Q=*Ëi’T)’|-‡HY.ѲÊ!Le’ž¶tjBýX½€\…¸n9­Í4oyY}]gʦ3a5ïRL6ÀOÆÞw:‚Ô¸Ðb,Ê:èÇf)¸u¢iӍ˜ËÈaeÞŒÍIZLÔ’I(Ül`OYIÎvw1’^h 3ʤ0»h6l§…f³<JÌ:ΰH¡ßOüAÃÎsóO"ãÂ$ËÈjøm܃zÜ›½Ž£5«°Ó m³Z½‡d„·{ÝîlØFA„#NÍîöm6 at d	!7Ù ÒiŠI!	M$‡fùÈÊÂ'„nÕJ8€èР®éM„IÆN>ËË—©x¶à\7ǍuPñ§‡5
+ìÚol“+[!f݆öCA)Û{vl7Š ŠÛB/i³w¨n Œvlp5C¨2)‘¨FCM®Í¡@ju³Ü	D.
+•¥ð-IŒ8‡V‡ "wubh“5
+Ä(œ pE
+* ˆNuš™ž4¥“3ÆýD_'4½Îº˜˜,öC…íy66‰­V	% j.¦€ˆh$QP˜ËM”ª¡uëV8V at In¼S¢á¡5<å+¢¡¦ÁÔë,¼á܆î¸Äu$
+PÜäoŸ mnk¬i;Ô‘Çøg]j¡kSVAæaËav5d»Ða½ºM"Ö6­Ùd!0ÃLÜ俐kFÞ?9Ä@ÐO5vgpK îãeI¨¡Ë˝cæOYÀ2!.œ•p`÷12Cfá!˜†B8ƒ†8ª'>ŽC€`äǘ=0ÚÜ04FwÉ+|<¬êŽ7rì/[JuDÖªÛÕBƒg5Õ—~pKÍnS@»,4A¢ØËlîgZi†·¡7ZÓ§HÑd,.›…·¨ÈËÜ512ÑN]ÕubTNºóÞ»ÛÙ79’0‘î¨a	+wU\»ïÜ&¸k™§š©$!`‹÷Š[ˆŠy~—Á'ž½·ì¨fõ¬ôÝ_®U›©ºÑiœ"^I¥GŽœµbA8î
+¼\ˆ>Ô6wŒ’o]0÷ ‚,-©7­7¤’IêI$(¬ä’I$êIЉÒA$’J6Ûm¶l#È‚DÂölâ=m¶Ñ,˜Âcu63AR	ìì|h ‚ ’âÝèT*‰kÖhÂ$’&-6¼š³&WqŒ•AJ9¸K2ÂÂ{3.4ÜWÌÖ“Æã$Ý:°Ì;«1n
+ÚàÝg	{[VÔTJîh3ÊJÜ[^j+tf¶ŒA‚	$‘b„£¢ ôæìMê‚eÕ]]å]å]æ$$“UÁ9>Q3nýÉ	“ã<ß/“¾¼úó<óÄ—ž½zõë=txqú;}n¿ÌF÷Ï8dëmïj=GǪZ;4«o0yçsð ¡	ãYÓ§*û_•e™¢I’	$H$I ’A$‚I’I ’A$‚I\Ò
+žQÝ Ai<m	­„<r¦Šrƒf*qßZ[/¼L³rû»Îõî¾íñ$0•$ZÃv¦¡˜Ö®Êª5ˆj)˜uyƁ5¿^:wࢼ$yœ;Ť€tc°ÛA"ˆÁDˆ€ÑsÍ‚OŒ;¡Ö#àŒbÌœRA —ešÑ¤~#½¦Ë@½àåoX9wð@cGŠ’(ÑÉÏ\
+’HÌCvÛÍa†e^Qo+†þ ֻÙçZOnûžºO°
+¡¡Õ\² \SÉA]uc΍G’Ðp–4m¹¥°‚á	ŠLq
+½:’ôÀB_¥q ‚^Š#LIÀë0Bò¤N쨖yµÌZ†hU°xo¤€k‹@Cà „âX2C[(¢0²ùÃ
+×Pì¿:4î³Ú"øé
+•@S¦í½RPe®a€\44ÔXéeå®Ûº
+J²ôððoF7vx•TqÙ£È›ŽƒUu*;‘–^Êá	Ro½()¾uªžk6FwAÓ\·.œk:0§EjÌ·˜amfã3
+f´•­FÍ*c„Íè3d²èç
+HP7ƒ
+@`‰d’N’HÖÌŠ\Ä0mA=7zé!ùÄQèEàYE]–néÃ@æhÓ×[G2C…«W´*÷™
+ÏrÄ9âm³…”v̉ØaØ<”êHMÉ&êÌœ9mÕQ!áÕ|'«ÓÞÁó)ˆf&h¦®À.ªVŒ…Ú5‘ïakEôÏOÅ61Ñïäps›êcàÕéìø/:Xá x89ÃÉøú;ÙòðA}Dà^ñ„KK<+
+‰ÆÜÌÏ“«Vœžm*ã0 NÙÍmï]M΄I ïPew7cî$BI$’KIµ¦öI“©ÐáA ˜’%6Ûl6‡"mɹ6h&m°‘/J…
+Ôf­”PT„+¸vr>.$AÙ„êU±(¡Ç“&VèÒ	
+ –á¡e¦W6LÇq)†E‹K”µÁL×K$‘5k¹*ØÝS1ëq
+Á‚"³„½‹VÕ¦¤FäwsÜ0—b«jÝÙ­¶Ú H¨ ’Ka ·.µ]×6f¤†¤5™›šÖöä„’IJ ŽpÀsƒœ{½îwðùòyç‰/<÷ë× V[JfzzóÄ=tÎ.­égÈÆy‘#ÅFãμÄ"BÜ`稳ׯ́ñÏIï›ÜóÀ½ŸÊ·~'Hî?Q¶’m´“m¤’A$$„’	$H$6Úm´›m$Ûi&ÛôÁ>(šI¶9ÚY±w2¤Ü’I&ä”Ù'A¶Š!¬¼ç	K£páG<_š­ÑãØ"èÑÞ¥¥¥˜64
+-ÒÀôц-—m­ÐPܪ„ÃÔ¢yª»»ƒêg\¤r8†IÔ‘@>Q¼A
+M»I$Áš&èçRfï×,îpßi$(um–X–ImÚwƨ!*¨$!
+›
+T™„9-…÷Uwi|µÈp€ÂN(5„Å„Ô4 FðŠRgZ®ïFoÏ­_{zæ F8P•4
+HYcm4Â%+D‰MÚH”HÒ]ž|ä—¬³2¦UVèkËÐ6@#E%ê‚͐äÊÝI	©±⽡|=Ì¡°@| ]Bp@¹™F`…̳¢a—…»ÆêÁÎG3œ£BBÂ'‘œ%#¼ñK`M9…ÍœÈéËÍt<ë
+x³Ä;ÍÕ–}:£öÀ/  =¢/“ž¯ ºÑš„ÅÃ2`•p´nuUB˲’¨×œTÌ
+3×’YrË«ª¨Ì5=—É%¢^˹+fI!¥	áð˜?¦etÂÃÞ !3–®¼Ì00ÂQWF°ÆÖaAvR¶‚ËhQm‡v
+Ö‹T¬’ª°ê ØÁ…Ò©{­õEæI•±.‘ãC®´켘w|hÐg{!ƒe†¢Í&$.ÃE¸6…”àà%A•n'4¬(†
+!P…'$³’­••Ux|á ì|çV¬­ê‘¼cDB–›ëšï(×|²½^fYRVXÈ7		$aBXBîÊô³®íåÏQíõéëâäòT¼ëÄ޼󝈻DPö}z£Þoàö¿£ Ø>N¯gIÎ5‰½ØÔIdfawÕV)Is0mŠFÐg+’N$’¬mèd¼…£œEά]êO)$’I‰$Å's9	’K¢¨‰@h ’I$’I41˜ƒ
+G²MÒu$£a¶JQÃ+YŠR¥¡ ª41…Ây«‹‰Bâ#XQI¶“(¸–£‚bN¬6U—SÅ%J‡q´ÜÚÌ8ÙË$9DÂòæÙ%u·»™UÍ’ãMÔÚE3‹V¦h6)¬•º­yiCMUná3„×5ª“H6ØIA#R	‰*5Vj¬e7DX"a-†ÌÌK˜I$“›Îpsè­Ùlîw{wçÏžx’óÏ>=zö  àÎÅuøç¯„5߃ƒÄpÖóG|ðOÃמSÁç”Mðá‘zXaç©åÓÆÛí\9å²²­`‚sÌŝ>ú—
+8U­´“r	$H$I ’A$‚HÒM¶’I¶ÒI¶ÒM¶’m¾Îž/ 
+GŐq„Ý£5%ŒNs‘
+a²)çxÑ^s­!¸Î Ò’ –ºü©k’ôÚê‡enÔì†Så[¤ðF¯Á$»ä4°H‘¬s<•3œ;vPxý&I^–NÉm¥)Gv¥êÛ[»luÕf»-ÑvYß4ÇnbÎ÷nʼN\ ÄސpqkE
+÷pù;ñ/žŸ©ã\ Ž8¨x;x*¹º "VH‰87”ENðtàÝôN¤}zwNúç¯NN!è7§s˜0CPú]5Ž£×6l6hÜ5Zt:4d&¦3“P>€Ðl]Á°K	'”ž%3;Í3LÜzùà¿‘˜7רàç ÃqÏPk{
+›*ë4 ’ñ4jæhEÐ^ˆhÌÏN¦‹h»*ÔMhÖ—3“qÔI$“„’{ÇÉEÅ¥`Ý—šª9]øÍç™vòŠ«@DPúN×NcÕØ–Aa ;÷D¡K,Ô´”‘O°‘àR²I$“D’Î†&úáZ¦‹1DC:á¦ü÷‡¡¾‚KE˜4ŠÕV«Õ®«¬E¬Zª”‘¡%
+JB„(¥½\³2Ë•tPÁ¢	Ï$’bI$J™é‹ròW¯@_Rt•ãsBÂDzڂ]
+`]¤²×wŽ
+`BìP[j“Ù7ŽúöõwwÞzš¯h‹g˜Þç;ÏL+»½“ÝA÷o;{Ï?^)ÇÞþÏøÝéJmµéçêÛÇ­®½§­ëqðXŒcŒcx1f½tÕDõhÇêb_`#.ƒ~GBή<Î¥æ Fžð´’ïW|2EåÙkÞÎÎgíxwÅsÉÜy{ñù¾£9߁âø!•ñ¿>7æþ¿¶öÞǯõvˆ…1’I$   ‘¦"I$’         "!LD$’I$‘¦"I$’HˆS	$’I      DB˜ˆI$’H         ˆ…1’I$’DB˜ˆI$’I"!LD$’I$                                          $D)ˆ„’I$€                                                Hª„’I$’©
+"!$’I$ˆ…1’I$   ‘¦"I$’      ˆ…1’I$      ®ÊSÌõMí®)µ6ÛÖ½5¿­Yâµñ3âºó_Zö¿° –˜}<;€0ô±;†xçP£D%¾=?:'£FÄìÊè€  õ72:~=ær=« 6x=%|ßà89ÏÏ›ðO½÷=ßc½úMøîüˆ¿L ˆ¡÷"Švû‡Wëß³­íjÖÖÜ¿<>VŽ1ˆÆ1Æ1L_ŽiŽiŒRü×x[¤.ø'o‰.³¾v O!âi~wW¢ãçGˆa²ùõëÑpvzyÙë´Œ9žn“«¾y‚,ÌóãNçG®êñ¶’m´“m¤›lI ’A$‚I’	$HšI¶ÒM¶’mªè¿Áô89Ïj÷«ÂfP¹þÜeܨz9ìå%ï+ÞÙÜ»ñ‰¯.òx…Ü?ƒœ¢þ»0Å,êŸ?†ú½£§&á}p×µîë8íÀª[Òu/
+½ÇòwõïÀ"ýg£ÇÝ>çò~/òRÈ>ê}Þ³îéù«»+äÏ×uËÕõßë ×ÚûZüìú™Ž6Ym´{ÖÛm4×ã}x§ÔŠß<üã2¿wˆ~®ûßmá
+¶º3‡¤‘*)`•‚%‰%5d©Fk{ï`i¶†týK~æëÞÒ(»ZT¿œ"«Ÿ›üýÁd‘DŸatþJˆ*0?é×·¯¨Óüä}gû7_©?_ìJ  öçÆžù¦5G¶B|ˆïá4õï`½Ç›—n‘Rãðþº©~so6{ÿ§ù#ôyôÜ?%ï©^
+K¶„ˆ»€:ÿòÎÍKèIq»¾V—û)//Øùè}÷çhþtý?×uô’Ýü÷;ú¿“û¿ª¾}¼×½³L?)D=oÖ~Gø¾öîüZÉ	p:‡Õ~ìƒÜ‡L¤Ûêó‹>ËÙü϶ô77I%'v¢wE{OÇ~—Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm´ÛM¶ÛmÝÝÝÝÝÝÝþˆ~ ßèªÿB/Ô*ªƒûɽý}þš—¹ô⺕ÊY³™Å¶¥¾¥Äkzp
+j“A_ÊU'ªnŠúë*^Ç„$£`<W©¯^Þ¥ËÌ+ù¢´ÔW¤•-Ò“æùj^¢Rw­õŠÆ1XÎÒiÒA$‚I’	$ZDH$I ’@´ˆ$K»ª«»üÐ"þ«ÑE¡ÑQíCìZ[V*^«¢)‚½NáZ
+Ýy¼@$£ª+,¹¹¾é~“Íú_7­áy?åû^×ÚëS3?UçÏŸ>|ùóçÏŸ>[m¶Ûm·çε33ZëZÖµ­kZÖ›m¶Ûm·ç®ºë®ºë®ºë®ºm¶Ûm¶ßŸ:ÔÌÍk­kZÖµ­kZÖµ©™š×ZÖµ­kZÖµ­kS35®µ­kZÖµ­i¶Ûm¶Û~v¦ÛR›Sm©Nºë®ºë®ºë®ºëϝjffµÖµ­kZÖµ­6Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶ÛÖµ©™š×ZÖµ­kZÖµ­kS35®µ­kZÖµ­kZÖ¦fk]kZÖµ­kZÓm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶ÛoZÖ¦fk]kZÖµ­kZÓm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶ÛÖµª×ZÖµ­kZÖµ­j53b<ùóçÏŸ>|ùóçÏŸ:ÔÌÍk­kZÖµ­kZm¶Ûm¶Þµ­LÌÖºÖµ­kZÖµ¦Ûm¶Ûmù뮺뮺뮺뮼ùÖ¦fk]kZÖµ­kZÓm¶Ûm¶Ûm¶Ûm·¶ÛmM©çoƒ¥½R•’ªå+$¶%y¼D£2RkºªW*] 
+qŠÉRµ±£Á Ú+Š¥ÇRÔ4©hšaD£…Ks7 oöfþ:©l©^ÎÌh¦EGUª]-.ïw»ÝÐ’A$‚I’	$H$I ’A$’H$I ’A¢¬Roô™4JçÊÔãJªxº¢´U'\V§?`Wˆ+ŤOSR•â’Ê¢Ã÷$´šff‘Q²š-OÆí®²¶õzÖײY© Ò¥yjš)°ªa¥#E”˜ÕJòh¶%bU±½JV9¸yûzMíê–Ñ\b´JOW(­“h®$¤Ò”›j&ÙB(P¢üÁð]Ýü™—wx
+¡™™wm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûi¶›m¶Ûm¶Ûm¶ÿSÁÁÁÇÖßύZqñªIrM%'‡*\î¤Và4®ÄWÎm ð®M =. v²¥ÓÎííÙÅ*ª¡]š–üèçóÝüÅT¸‚ºõ-YÇU.²¥éŠ(¸ê\â½gÅâTº!%ž-MEq
+íŠÊ–P™E†Q^׋›³¿³Ñ7ŠÌëÕJñm”ª¨êí ÐWhWhW“\ýsŸæÀ  ?9ü¿$Ëi–Ó-¦[L¶™m9wW.êåÝ\—W.]Õ˺¹w__…^…ét©^{¬îõÅuÅyB¸ê¥õâNA]Ñ\œ^4¤ëÚq
+ò*¥Ðgn¥¦‹|$£xWfQ•.Q[ªYRóÿÉésä}¿·ØÙÔU'‰ –T²äúí—*ªU,
+íÔ·
+Ò)’•UeK;‚»jVvԮάpE}Æ
+ò!%MK²+T¤îlÛÅÃz¥é÷Õ'“T¦äWãz‚º <¿
+¥Êêº 9Åk¸Wª4ƪ”óý—erÕJáëÐÓ¿)1Öáîx9Žþ•K¸ŠñR±E,*ÁÐÙÞñøÝî¯]DÁX©ff`I!&d’H fI$’I   ⨮Þ
+·<!ZÏM	(ê¥'5Rs\ÞÍT¦ú¥èk´«x;b‘r𵧇Ùü`­‚¸*LJïstlßRâÝá0V®> ®Ç±ðÅyõ-·ÂJ2¥Õ±*=b$£9=­¶¥Ð©99Åv·Uh­UI”¤ã©u¶T¿{°Ü¥wùhßRàõ»öÅoÙ¯ ­j–¢²©>{Êu.XIGrÊ©]ZUJÑÙê
+ÙÚ„”wå'{¯Rô®j¥4`¬à+H®¼A\J¥`®h®ýJ;§-KÙkøÊEÑ_?å¿ûà}ßo­æöôî½6tÔ»áYQ;Ý`*ÐÊLñEiµH·T·T´©y;€8ê[>yQµRÝã€lÅ	(áßʪ·*–6ª^0¯Lê^åL±fÊ%¸‡.Ð®Š©p­RÀXIG–ßÛT¶*—wJE‚²¥¯‰T¹j^5+€†+°+Åß(”~Né”›jC±*Z
+áÒÊ+Ο›tuE`­y‘DœB¼ŒªZÔª£+ìÅn Á[~ƒ¥RÜ¢y˜Döt]âYE¡†QhhiEv	eE†T®Â¥¦*ƒE†Õ-qJÙæãˆP£\ŠÑÝÔ‚£ÏD”jÙ†÷EKÀŠó»¢¼A\P’â¼*-h°Ã“¤V€À®Z– hªQ»*¥ÑÄ+ÁÀWwJÖ¥À+{˜V*•¿–QÁRj+ŒWÍ |þÁ[*\<W˜Ï[áT¹EeKª+A^ÍQÁÕìúÞÑ­UUJ—`W`W@®
+ 8 kRîs…rª[Elã©qŠù®×dWTVÍЮ¯*î€j+©T·Ô±RÊ—@­â¹µÙ(”t€6îH^?¢º<II¿š¥Ù`ªº‚°ýT½FkÐ+±ÁJõœ`T»R¥àpQ4”™Ê+
+%öQñ¡%•IÐä©v8Åru”
+-•.šUDÔWtW 
+ñøœU/eÔºÅ\U/8Vï9¿±õ›[|j¤ýø®&ì
+ïwˆš’Ã©tJMîZ—ÎíªMâ¶<•*¦Ž¶sf2ßî…hlõ_Ù÷môfJÙY’XŠû¼{
+ý^Zß—-·ôMkWèŸßI$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’HI$’I:úím÷×AìŸÔªü{Üý·÷Cò4k¿†ƒ¨ä„¸£üª5?ï?üý‡ì?œáÏ0÷â\„QjŸ_¼ýÐüýë¹Ü=è~OöÿÜþÛçüÿŸÀϽçÎzHL‰sÝ™?–ü¿ô?s£]Cèàu2B7ÿ'ç^§ý_yû_×ý÷ó\8ù÷¨=ù’¸{ðû¡ö×Ï{œÎ¤&A¿ö€_ËýŸèuûN«¯ºñ÷Z4ëÜ úY’|€·W>»ï¿wOPóT at I’eÒŒ"V3$†ÌQ4²©e•ŒŒ¤§W-*Ye˜JÅ‚¬ Š¢AÿÏö™Oé~Çñ?I£H(’@Q#”••ËšU,l",Ê)™[mª1µE­‹[U¾ö(.¤&Aõ÷k'Öþ_ö¿þèÓâ'%ÈA¸ñçò?sø_a¿°þNŽýÚ=è×ó /¾¨ûù퟼~ƒó?eÿ†ÍõÇtä„È /¿øòåþ–¹?ì3ƒÌÉ‚5ó*–’“\õüÿ?¹üÍÝ̨(âÇc›ñ·1·CgÄÛR×$LÊVT½f4%sç¶úÑ_cÿó’e55-} JÅÿÿÿÿÿÿÿÿÿ÷½ìþÿÿ$y §ç€Œ,ÿ¢gü.?ž
+QóáðضßwxÞœ >=   @    *œÚ¤’B@(¡"TŠŠ$¤ôR€( ¤ Òê¥ à 
+Ï(ß`f1ð΀       à=ÝmÍH
+Ü.‡¼ 8 ãЭæìDz÷˜- 0BðÙÉ’ŒEˆô Pw}àzŽDö@–UB‹ ä 9x-ëh2Ád <         w|œ€ °^Â6b2Ù­i â4++u…+k&€: o¸ÞÕk(¤ `1‘Ñ$†K`:C Ý‚›fÛÁïç×€¾Jå   aj at -€@     ¶Ðdö`T‰A(ÍQ‘ii¡¦˜M0'¨Á4À &F€b
+ iˆhi‘„TÿÒJ¨¨ € €   €
+Ä      ýµUII¤`                   	4ˆT!$h)êi‰¦˜ƒ@     È         4h)!È	„4™êž¦šOMe=COHh1?R4ÐÈh=COQ¦˜šbh4i h=&i¨ THš„B# i € hh   hÐ4       x?^(£C²{CꍽMò
+Ym’J„N
+$,0~ Ø6¤¦¥J†ÃéÉ}1¨~–èä8QýZ%’ZáF$¶²K„kF
+”oa˜©~,l£Ìà7ªÙ™ŸÐŽ‘·HÙ	$`HÀXÆ1YTbŠ!@@ú0 ¬c¬Ub‹ôQXÃè‡÷2%	¨¨ˆ †¥EŠ4h¨¢ÖP©ij·2F$Ð¨‰àó–ÖZaePØ0£”–q£¤al£%a‹ñ#î(—	‚M“
+7M¤¾›uºÙFË©£D¹eDöK•‚$“îiiiiiiilUUUUUaa!OÝ€pA‘…C#A}hÁû1ÿïµ¶Ûm¶ÛoØþ3òߣýGê]û¯AÛâ=ÖúŠöüJüºýýjþÊÿ¢ó»Öùçžyß%û^ýUUU¶Ûm¿¾Ù @ý×îUUUV’0Œ ¾Ïé{sùm³Ÿ½¿Ùû|_/×ïåÙø|·ìÖúíø›¶Îï×ß»èñw{y^}!çzþPëyíÍõîo^»]ùC¼çûã­ç¯øo‚|{{y^}!çzÿëyí›ëêϏ^»]ùBàÏ?æo=u¾¿®<zõÚïÊàÏ?¤:Þzƒ×ØŸ½y^}!çzø#­ç·[ë᏾ÿ]úûw~«öÿÏ~ù~½|þ¸~¯3ùÑÿæJ-¿ÓÞæ½×¶k_Iïš×οG³zý
+ý-·¯É¯ñ¶Þ¾íɶõö²$?_ûÿëôUÌÌÑÝÝs3]ÝÝs3\ÌÁWwwE\Ì1wÁÿ
+3s>ll–_o—Ѫ©}Øûáìh6¨éÓ=÷ñGÞ4û×¾8ëõ¥p9¼`n‡1”+¸eR„í
+£ãѺ‚>_Üéòõ¢WàëD>èë~7ªTº‘y2T8u³Éózþ¦k7âªT<ß;Ïχ>v~†—:¶×éfßèÖ«ì5þ¼ÿf}ž·?ÝœêPO¸×ÕÏÙÏ£œþ5ûYµDEìŒÇøÐ~ö1RIlÈQø7Û¿"ÓUµECvTUbÆ+¬bÆJ ˜Å™*ˆ¾Ãö¿Ãðü?Ãð}§Ú|Áéôú}>ŸO§Óéôú}>ŸO§Óéôú}>Ÿ‹_8d(¥÷¿#äæ~?ßí·äo™¯ÈãààyÈÍæg)¦EØ^7rîîU2If·Í)rê‰]‘Ô»m×Û¶ÇœûV’œY]¬Ý½×:8¤9ôí¼ýéƒC–dzs¥!Ó§Ôæp©ÜÔ9œ¬ALk½,³=ß'\,§¸è¹ô{åÑTòë]ÚℾÕ,NÞÄTÓ¼ž'SÄù<O“O¹7ÝɧܜNbÅy<O“îîO‹Ééj}®'‰ƒÝq4ö§‰òq8›îäâq<]Ëow'uî´ú§‰òi÷'‰¾îM>äÓ¼š}Éâ}é'¼œN'‰ù7ïrxŸ'‹ªÐ"}ÄM=Äêi÷'‰ò{®'‰ðñ2ò}ÉÛjoo.}y<}ɧy8œMõäû:÷¦Iäñ:›ï{î¾’{¼ñ?&˜*©ì=7¢xž¦Îäñ>O¯rv¢'‰êxŽZŸr}ÝÉÝs{Éâu=Íq7½ÉªbÅjx˜›/&'918ž'Éìê-OÔñ17ÖÔû5^4î²î®-Ú¯-Ý‹¹tâM¹¦î®
+ÕgoBR©b»±·Æ1^¶RÎÞUXÝÔsjÅCj±Ëª™¤³V¢ªu†é±tÛªŠ‹‹e+mH·vNœbµtâj«ª§Y,6uÓ“½»ºÛÃ^ö:‚ôG ¶gvw]íqé^Ž­ÀF
+p—œk@lj‘Ód–úm¥ÜÛä»­´8ªÖß7Ü—w[; H}Ü7ÜÖöwv^îîæß[n[d‘Z•­»…îîä»­µ»dݽפ¾m÷^æß[onê[; ÀëmmÖÝËÜ—vws}Úß6ù·Í¾Îîîî’F»’î’LëÙÝÝÖ¥kn·j]Ákn¶î^ìî亮|­©[À$IÖÝà—A¶ay·Í¾Îî O¶’¶ä™ë»¾Oo1Ïí—	`xÏy’säOywGT‘ÝZH>qev³^vtë×¶j’§mçœóX=œû£æÒ˼2ÙÁóœ
 ÞÙF5fÝÅwkTœÃk”®ºç]VSº#­#å$wV’œY]¬Ý½ÖöÍRQôí¼óžkZáϺ>m,»Ã-WoÕ$wV’œY]¬Ý½ÖöÍRQôí¼óžkvç=}ì¾µNï¹yÞç³¢#ÔZ.‹·X¦£¯G\lIt))#íZH>qb·ggou½³T”};o<çšÖ¸sî›ÏRÊpγªíâ:¥Å¤Ñó«9÷3žÛÓ¯lÕ%.ÝxÞJf»Ýs‹8Ám'^ÄùõݹmÝî“.PÝÍ$™N·/·sN‘.ÜÜ7wt»š‘ܰÂî†Ì$d™¹½ÝC:ܹs­ÝK;u*S··78$ÎÍî ¶d‰vÚ§<›ÙÙÀîêGå$wV’œY]ó5ç³§^½³ÊN·^WšÄ-•û£æÒ˼2ÙÎ'$t×9ÍÕÆØâ’¾Õ¤ƒç {vvv÷[Û5IGÓ¶óÎy­k‡>é¼õ,§ë:2÷uç^R—ujèvÝÛÑÕ$wV’œY]¬×:õ횤£%Û¯+Í`ìGt|ÚYw†[;w+	ÝÊîÕÖ¹G»Þ7K»ç»ÆVÃ}¬½Áh2D»vKA½êjœ½=Úvùží~0¤Œ6Ý}¾í¾ÞÛ¥žëIÖM¯wv¾ŒíµÝ|Ûo#i[”Vì§uÞî˵¼oI¥×‹xjnÎM#ªXÜZM:±Zö¼ííé×¶j’Œ—n¼o%5ØŽèûœYÆi;—oÕ,n-&YϹœðΝzöÍRQ’í׍䦻Ýs‹8Ñ–ÎùQ…vô§nöu»½Òe¶ÐÂÉ2m½C·6Ù7pÞÝÛw"Ó’Ã6ö†Ì$d™¹½ÝC®\¹s­ÝKx´:væ÷^ÝÍÍîá»¶Ií;'L›ÙÙÀï'Äé¨ì±îææ­ÍîvÇ\êã·:e[€Ã¬záq+›[ÖnºÍsžšúwd|œ{šNÍë7XÍo£nlÕ¼†Ú´éJ÷­Ü/^CÄ`»4ËuÕÛÕ!ãÈ•Úá©dliC,qîë·*¸T$ì—’Ë9U¹».rì»ó“Îç3SÍÛÐǧ¹zyñ¢ŽÃ:qž¦CŽåð¾9ÛoŸnøæéwKº^%Þ—¸ot¾Ã{qîãÝÇí¸Å{\*Ý7µŒ×+Ó_m6
+ºª$ÎOä]…3—a~ryÝ}óçÌÃ*¹oc®Bʱ\õŽöwsw%çs‹$çb·-Lê|XUcåçs|¦>o®wGN×Ï“X^qd9³'sǏ¹É“±.ÎìJçrÎìîY9ºe±³¯wëÃ(šÍ£‹![2w5ÙÝ‹wbë–¬iѽ
 Ü’;ÙÛÏw¶–>m,u¾ìîŽ,œ°ì·_‹'WNæ® Ù“¹÷gtqdèâÈFû;µãΣ}—«Š^Y%qdîqd9Őæøg½_ðæ=sð‰ßap_õ·ÙÜßww7-×N™Ý^<îçÏ:ë‹3½¸™Í¶ž÷‘=áñRù;ßRžôzd9ãÂ×»u-Öv[¯VIˆÜcÕˆËÍ¥›KFû;µ×Ïst.8ߠЬ•+J‡5R¡£ªW5Dd¦D¹8×>”’âüKÎeËooy¼ÝÝy¾ç·=qÝn=Ê›ujs¦H”·ué{¹œú+uöÎnä“b±V‡‹Öy/²™i{{Í7bÓ{{g8·SÃ>$“n)6•í™»·yï{מ¾Ç½ÛíÎn怑ÀaÓÁ ÃS–ßfa˜a“3&wttÝÍÝ™&¬ÝÍ 3w7y˜vj“Me¹rÛL0èa€·uëÙ7sw$É$Äž`Àº£Û-(w.NY»M6šg°.ÝÆ3p›º#7Ü¢lå;‡:w™,ö^›Ù½óaó»s°Ã³²
+™Ïsƒ§ikÈúÝ·¤›^îîînÉØÚ‰gÌøO ¨ZÓ­jy\˘0ØwÖß\̹2Zåîh›n뙩jåʾI¯ã‰=uì“´I(̆mÁüÖœÝn(-·züå^ÝàaØûw¨÷´Õ×U©F[yWEÚIÝ­sì—+äsĹYNÚQ¶¶ÍÒìèç+’·2HÍݪ|KÍní713kw7
+;—-«mÔå­e;o¶s›îîݹÏ{ºk¯‰»\(‡†¾:6˜¡9†¾Ÿ$y§3{\íÌ“ãY&XbÍܪeMf²dš®u3›Ù•çfãÁôznðúIó¹Á™×µÛd×Ê]É4ORÕ—NçËž³^òlêhú|‘—‘GkäÍÔ²L­®ù:³«ÞÉuîãÜ
+ø±Ù‰®™!{6åÙs¢S#msîãy¹Š÷qÙf»7$·zɯ‡'wr¯Y¹½&êIpÝÇQ†æŽhäÇŽa—w]w2îÝÜEdŒ|Ðæf9Ë®fgɘžD”ÜÅ
+ƒÔ‘ñ‹tÍn=“7rð†l“`Ì–ìvAnÏ™.õuƒ­ÎÞç­½zqª÷fòê„MØúÈÖ׆ï
+Ì·.î.œç8wµæ™‹m‚Æ@¼I¡dŠdÌs+”±¯‚†Äµôù"a³qá3$ÆÑÓs‹‹7r·»’>wÞ¦s`â“$î6ƒÞn+}›Üì6½ë%}µ½ç{fv«È3Eµ0Õ0$š÷^ëY—rªȧPòW=žsîsœæW3÷2ßn˜jQ’w‚¨÷s2¶­·œÕºÀûz­Ë³ƒcùó3²ôùŸN}¯w³@H^#홺ž,ÊbIb»$iôj8œ]¡Ü·ªÜ»87µfE‰6«O#l™ªèlQßRµönM»²ìÝ6nšsMÓuÃvnéÎp¼ç3œ¦›Ëw6îîêÝà¶+mË– ë—ÜÝÜÜÝÝÚîn黆Ò´
+3´¾pŸ¬Ä£mÄ·f´“ÖÞææ¨ô’À	.›Q­½y'Z•fn –Cæê›[»u]ʸÖÊŽ”½É™ƒF½ï2pyÍÃq¥/°×
+¡lMÃri€–oSNhpȝÉÎŒç½Éí‰ìñãÞӝ<e!•/G7;“ɶ½êî‰ÍRnnótÝÝÓ3©V^ŽÐZZ«8÷¼æªB×$Ù5ôÉ4915³$JL‘«³touÄÓRd–°Ú÷ˆÝk»†-[¯eÚ÷¬‹Œ[Üìyb#Š^µ,*¹»ÍÜójîÝ®æîî8«!ã¾ÀqOzcuÛ¦­‹C·¶s‹u<Ú’J·É7ÍôÙº·^Šww3¥Æõê¼øÂñÜí­àÂNܝ³^5©¥µ$”²j“¦H7º÷€eîîg>ŠÝÇÛ
+Ùó;/LÌY;£ºÃMØ´ÞÞÙÎ-ՏfÔ’U½R<m+Û&î½;»™Ï¢·_l7g|øò¥Æ£jzæg·0Ì0É™“tÓ¼äyÜÞGufîh›¹»Ìøw&©4ÙÖ[—-´Ã:†w^½“w7rL’LI€…ÕÙJPî^éÜœåÓi¦{íÜc7	»¢3{Ê!¦ÎS¹9Ó¼Ég°àséÙ;;çCçvça‡gd3žçNÒבõ»n7I6½ÝÝs
+ÝÜÝ’9±µùŸÀS§ƒ@aªù}˜Û†Z[r‹q–n-Ýxæj‘ÍÜK ‘ìânÇc[¸æé8É!Ç77¤Šnêo^´Þ­Šf#jÐS
 J%íRÚ)mëyK—6ꦗÙ9»Ý»¥æ™‹bÛ™q3ÛSMÁH›Ñ½z>–åí̲í®Ë·öš Ùm禽Fì›DÞhŒR9»‰ö¥vó33jæh•dŸÈœùoÌÉð`aÀ–qñÙŽW„0#ÑqD`P:ïtcì§Hïz\‡)¦Êºi&és É‹†ÌŒ¡0'Hc½«n%Zäá6†2ê²Üu5,ÂhœåoŒÅïI Rå8´˜NÈw&Þ•)‡N²d·†	dÉ; §w¸¸#˜²çgHl—-ko&FYèJu6ô·4ÌãƒdÆk4¬‰‘Ëv䫊té
+$²£•áD¤2d/Wz²çN“H7x`”™'BPé§e\8àÙ2eºtÒ°hrF9[Î35¦^HRå-æ
+ é:»Ò¹^öM¥qxT²d!gGNÌΝ“d)W8`”˜NÈS«½Ys§I¤-q·†	dÉ:Jwz\ïCIKœÆ†BS»Ó1ÂçN¡)r–ðÁ(INïKèi)s˜ÐÀì”êïKì6K.s‡a{½3½™sq³'BPé§e\8àÙ2eºtÒ°hp˜q·&[§&L·NšV
+&9¾3\á´ÅÎcC¤§w¥Îô4”¹Ìh`t”îô¸p0.f40:@³Œzò­¸•l8+‰V™22„À!N:´½Ã0à¦&\ÆÉ’vIaǵ9*âÄ2 ö(á“#,†ì…â÷‹.Nv¸Û†	I’t”çx\8N—3W
+ŒuΙ§F£ŒÖSDç•p8BvUÃ& `„³Œ{Å®4¡ÂIÒ¸–á‚X²÷…K“„¹KpÁ,™'INw…Á„és1¡ÒSápàa:\Ìh`t”çx\8N—3’Îxf†IÙs1°Àè)Þ,«á è\¶™22Â%9Þ¥ÌƆBYÅï¸Û8é\mà`‡;ÉLœ“ vW2´˜N‡;ÎrÆÞ´Ã¤§{ÂáÀÂt¹˜ÐÀé)Îð¸p0.f40¹»ÒS§.[aÙ€t¨å´É‘–Ct”çx\8N—3
+s¼.p0:d2t’‡•r	;Q\2de t”çx\8N—3%9Þ¥ÌƆHS§¨å¶	„ÊŽ[L™B`N„³‹Þ-q¶p	Ò¸Û†	CC‰Ž¹Ó4èÒqšÖ®8&GUkÕ⍣”¶ÚN `²£”¶Ú`ÑL
+s¦iѤã5­\4q1×:fN3ZÕÃG48šdx1\‡X$Q°ô2D“戉,ÅŒ‚бñ eF¢VV’0b±ŒX²@:‚0Y ±a"Œ}b-¨ˆÊµ­1E`"ŒP ŵ–ª£Aw…™l”¶Â7˜ªT>Š:å\°-•J†Tª‡ÑU*RÔ~°Ä>|eU
+}1‚©SêØ‹ðõÑôœQÔZI×LEr*\Ž!Ä—)ƒhoV‘‚Á`Éb ?`·mJWâà©3*TfJFe*LÈ%™"™…#2•%.1Cç;“Š©8bfULÊ00Èc.±ÔRY…IŒ©ƒèeÇr*mMFK«aôºÖ–•bÂ1`X±²‰¥áZA‹õ‹½\,HbY§õWî½>¥àûÙ$Þ§UÙUUN•ö
+ªªþjª›UUVÕµUlˆ‡àœÁ8'Dàˆ¶­«¥UiUS¥UUiUXªª®•U¥6ªªª®•Ò /$Ñ€ˆ#$ÁŒz(£¢h¢ŽŽŠ(è£ÑG‚ŽŠ(èèèðQà¢px½WKUUV–ªªªªªªªªª¨ªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª«KTû/ì“àʸ•ZŸl«›‹fïZ¶n-›‹fëmo-µ»Û•q3*âfUÄmZ«R«Sr«qlÜ[7–ÚÝè¶n-›µmnmZ•ZœÊ¸œÊ¸Ê­J­y•sqlÜ[7jÚÝê[7ÍÞ¥³qlÝê[7jÚÞ[kym­Å³qg¦UĪÔîUÄÌ«‰™WU¯–ÚÜ[7Íųw¬[7Íå¶·[kw¬[7ÍųqlÝ«i9•q*µ*µ*µ*µ*µ*µ>ÆUĪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪԪÔùï­¶ÛmµUUUUUUUkUUUUUUZÕUU­UUUUUUUUUUU^¸*ªªªªªªª ªªªª®«ªô Õ^€ªô Öµêêê רz‡UÕz€M¦˜=ߌ&¡±†Ä6Ô6Ô6Ô6Ô6Ô60؆Àš†Àš†Àš†ÍqkzPØPØPØPØPØPØPØPØPØPØPØPØPØPØPØQ»5k`MC`MC`MC`MC`MC`MC`MC`MC`MC`MC`MC`MC`MCa„Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6h¦¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡°&¡±†Ç–óœÍyo?L?Ó“Ã'ë$
+2TFJÅ“*²eCL¨bÉ•Y2ÈÁ¾Þ;ë<ïC^\·Û}{gmuÏ0ú£ëC#C½²M5ß%ê0ÐÁÚ‹ŒII9T=9ìP“Fî±$‰:‚àÓz€Ò¿gäuT”Gµe#檕
+/Ï`Ùt¨Š½aô‡ôŠÚ£
+õ+"¾¤j¹í–,°­$Ío$$!d“b¢/¨~Íú_«úß_«úÎwÛß{ÏŠm“MœE”ÎÊoY%¾ƒ ¦Km¶Km¶ñÛ<I$Ûm¶úißH„[뀤Ûm6ØJlë¦Ûm·ÒÐÛxñŸ4 [ëÛæ4S<%$Ûm¶Û~÷½ä烋32~¶iŽ[1DÛ\Û†Z*Ìi…û³\T/,â3U•ÁÖ[ZY¦i€¦³wpÍ.šµ¶Ú¡wuÐÐvÙ–Ëw)¸k…håé!?y„W‘ÌÔ¢·Ê¥eߤ'€,y,4öÒQî®Ál9{¥Ú\…I®Áp¸Â8-ѼJä°(Å®”9.H•ȹ#’Ü·‚[–èÜ·FäSr܍ÖÉH¥þ1U~˜šBÊ/Ç12!¹|J©Èó/ ò¯1²Ù±±»vËv&Û6i¦Ì6˜TÙLhm¦Êm6ÄÓI£fÌm1¶Û?ÁDtté¸|!Gڍ‘õL†Õ¶UXŠŠÄF ¨ ‹¬b«TEˆ¨¬Eˆ*"Ì!#a\n?
+>DrŒ¦=ÁÈj=ÜŽú[©xA×Ìr÷Ç!ùQÀâ6GêC)˜c̘9Çb1!±Få´TŠ‹m•j•j0d'CãÖÕ¶UU[VÙUfÉn´‡ÙýdAëöGÑ­k5¬Ök.µ¬Ì2Q@K…  8ERÀ!, e
+À+
+ÀP¬!”°’Â$°ˆP@QFK :5  áQ’ÆK m­¶Ûm¼þ¦kÉšõ*§l—Êøß[Íí¼¹Ñ'ƒ»5»ÍÞ¹çÝvW5{O7™¬œ~µcÍÕÖ5$ÉÌ⻬.­¸á•<›Ö‰ïá}{Õ~t‡?>{–êæ®µÔ’$žžÞ›öù¾OšúüÝ×®þö>ž&Øõ…‰ŒAš®d;ÖètJœD…qÈÆM¤ËSæ:E«¶×!†<M±p‡±3ˆ3U̇z݁	Sˆ«ÙäÚL²!žc§mXŶ¹1âm‹„=‰œAš®d;ÖètJœD…^È÷&Òe‘ó;jÆ-µÈal\!ìLâÕs!Þ·C BTâ$*öG¹6“,ˆp§˜éÛV1m®Cx›bábgf«™õº§!W²=É´™dC…<ÇNÚ±‹mrcÄÛ{8ƒ5\Èw­Ðè•8‰
+½‘îM¤Ë")æ:vÕŒ[kÃ&ظCؙĪæC½n‡@„©ÄHUìrm&YáO1Ó¶¬bÛ\†ñ6ÅÂÄÎ ÍW2ët:%N"B¯d{“i2ȇ
+yŽµcÚä0lj¶.·ˆ3U̇z݁	Sˆ«ÙäÚL²!žc§mXŶ¹1âm‹…‰ŒAš®d;ÖètJœD…qÈÆM¤ËSæ:E«¶×!†<M±p³±1ˆ3U̇z݁	Sˆ®9É´™aƒ
+|ÇHµcÚä0lj¶.v&1j¹ï[¡Ð!*q{#Ü›I–D8Sæ:E«¶×!†<M±p³±1ˆ3U̇z݁	Sˆ®9É´™aƒ
+|ÇHµcÚä0lj¶.v&1j¹ï[¡Ð!*qÇ#6“,ˆp§Ìt‹V1m®Cx›bágbcf«™õº§!\r1“i2ÃùŽ‘jÆ-µÈal\!ìLâÕs!Þ·C BTâ$*öG¹6“,ˆp§Ìt‹V1m®Cx›bágbcf«™õº§!\r1“i2ÃùŽ‘jÆ-µÈal\,ìLbÕs!Þ·C BTâ$+ŽF2m&X`Ÿ1Ò-XŶ¹1âm‹…‰ŒAš®d;ÖètJœD…qÈÆM¤ËSæ:E«¶×!†<M±p³±1ˆ3U̇z݁	Sˆ®9É´™aƒ
+|ÇHµcÚä0lj¶.v&1j¹ï[¡Ð!*qÇ#6“,0aO˜é¬bÛ\†ñ6ÅÂÎÄÆ ÍW2ët:%N"B¸äc&Òe†)ó"ÕŒ[kÃ&ظYؘĪæC½n‡@„©ÄHWŒdÚL°Á…>c¤Z±‹mrcÄÛ;ƒ5\Èw­Ðè•8‰
+㑌›I–0§Ìt‹V1m®Cx›bágbcf«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-µÈal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-µÈal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\/!of«™õº§!\r1“i2ÃùŽ‘jÆ4ï3Üæîv»ÝÜÝÍÍÎnª2P¤@K…  8ERÀ!, e
+ÀK B°„P
+ÀK’À!A B‘,  èÔ …FK, &ffeÌÌý(I Þu¾s?FIOÎINýùã·¯?×W<îµ—.jë^½»kÛåðù_ó;æï}÷½÷zï”Þg|Îûï{îõß!ï™ß7s™ÌÕÖ´€f®jë^^^Zòòðò¿2$D“ßßÓß×ïöûòë'2µ¸æV·ÊÖã™ùw¹ù~_ƒò~MæwÍÞûï{îõß)¼Îù»ß}ï}Þ»å7™ß3œÞc´ÖÍ5³MlÓ[4ÖÍ1kLZÓ´ÖÍ5³MlÖ7ëëë>¾¾O§ãŸMús+[\n9•­Ç2¶šÙ¦¶i‹Zkf˜µ¦¶ÆãWŽekq«Æ®7ù¤„$·[­û}_Ÿƒó wñù¿6c–å™™™™™ŽË9 6sŒ¤²  p›-Î%œàl³n 6s€
+²Í¸É`6ÊŠÛ€
+œã):á`aÛ,äXÙÎŒ‘´äX £g8ÙÎ …Ý~yžyž}ß[îû{{¼ë×®ý½¼÷äàæ{swÙ-ööõ×·=ÿ#àG¿¿¯¯§Ÿ§¿œËj­¶­«m¶¨¨Šª¨ªŠªˆªŠŠ¨Š¨¨ª¨ªŠ¾„&*"ª**ª**"ªª"ªª¢""*á `f*®ç›ù›ùä’>µ×W:º×ËÏÏ_/—Ãå|uâç•Ëííï­]fh¬*2P¤@KB‘ „U,’ÀåË· , e
+Â@+ ,"K …!B,  ¶6D  áQ’ÆK ’Àm¶Ûm¶Ûm¶Ûm¶Êªªˆªªªªªªªªªªªªªª«„À„ÌUUUTEUUUUUUDUUTEUU\$$ÅUÀÀÍëzæVæ¶Í¶îîîÛ»»µÝô¤«Ç•xUS·§®g·3œÞfów9œÍæï½îûžÞë÷Œ>óÆÛ;ƒ5\Èw­Ðè•8‰
+㑌›I–0§Ìt‹V1m²CxÛbágbcf«™õº§!\r1“i2ÃùŽ‘jÆ-¶Hal\,ìLbÕs!Þ·C BTâ$+ŽF2m&X`Ÿ1Ò-XŶÉ1ãm‹…‰ŒAš®d;ÖètJœD…qÈÆM¤ËSæ:E«¶Ù!†<m±p³±1ˆ3U̇z݁	Sˆ®9É´™aƒ
+|ÇHµcÛ$0Ǎ¶.v&1j¹ï[¡Ð!*qÇ#6“,0aO˜é¬bÛd†ñ¶ÅÂÎÄÆ ÍW2ët:%N"B¸äc&Òe†)ó"ÕŒdç9ÎsœâªªªªªªªªŠªªªªªªªªªªªªªªü„ÌUUUUUUUUUUUUUUUUUU\$$Å]Ï;,l*2Éd±°ˆP  L©°FÆÀÈ[ ¬–ÀÈ[@l€[ ±°ˆP@Éd±° ƒ£P@  ËçžwyÝ瞯®ðÕúˆ™>Æ:|?¿'·)_1µ¾qQSÇ9Á\¶·—Wmϵv㌭͇õ̾ÖƳٸ¼å6,Pe³‰S3-¢¢¯‡½wºÝL³MõÜÎnw–`ÑéŽ÷Ôö¼žJ#ékSxO{.eU^žówËÏ
+9g}Ëuòº:+”[pUëžñå}ÓvîewÜ8Š*Áç{¾0æž§½8ðzà´Üñêñ×¢î™Ôê7¾éß[;…Ç¶½[’ç2ãÁpeiNSÜëÈîV·)]õæîÔ° p’BH<xÏvpáÛ4
+“Tšœ@9"£4­ÚTC	ˆáœ8,TU“dÑLwm¢aE‹8sfši¼ää“€pœ%98(EÃ‡.ÇæÎ8sfɲj“C“‚À8N"N*íˆ!$H*T*ŠY,¤¥IJŠRR¢Ë"Ë"•R”•R¬•b””¤ª•RªQP©‘‹!‰‰‹0Ébb¨¨©R•)R–K%
+*T¤²XYe*R¥Z–
+*R”©(©J”T*)*T¨¢TT¥J£¤µ‚QƒC’цfShÒÖc2sIIUïI>IS§]a¥ðɹª³O_²ü‹m¶ª«ù sÞŒù±ˆ´’ÚKt$ùþ#üßܧó¸y~ñÄžëêp±ºív¼Š‹_ž,ﱬÝÙ4õ™;fÛ)žq·Ó~T=ìžm.y뮼{èRRQ)*”J•Œ\&Ï‹s¹¡ò*§›ßøžO?OW}û8êôuv{šìêÖež|ï‘çÍóå«v‹m­[´[mjÝ¢ÛkVíÛZ·h¶ÚÕ»E¶Ö­Ú-¶µnÑmµ«v‹m­[´[mjÝ¢ÛkVíÛZ·h¶ÚÕ»E¶Ö­Ú-¶µnÑmµ«v‹m­[´[mjÝ¢ÛkVíÛZ·h¶ÚÕ»E¶Ö­Ú-¶µnÑmµ«v‹m­[´[mjÝ¢ÛkVíÛZ·h¶ÚÕ»E¶Ö­Ú-¶µnÑm·<ú÷­óÏ<ó‡UUUUU]UUUUUUUUUUUUUUUUUUUUUUUUUUTóÏ<ó™…´É$†f[m¸I$32Ûm¶Û~¾~ÿ}ô=z¾½5nÑmµ«v‹m­[´[mjÝ¢ÛkVíÛZ·h¶ÛëÇ^<xñÖôŸ\ëÇ:çdOÉûoÇ6nŽý}ºð} HHI'æ¡Sç›yÌïÄ1*T¨T¤¤©1r8\mE)Uº6ÛDq‚=ÕR¡ú+ò«ôYùÃê^Ëù-
+kZü6߀Üÿ6d¡-¤¥,–Yd)J)HR””¥Ú)d¥,”¥%´)J´-°¶ÊRJP-¡m
+ýÇøae”%¶K,²¥%´,¥”¤)JKh[BÚØYe!m
+Rm’Ûml,²È[@²Ê´-¡e˜Lcfa™†fÄOGõ‡õ„þ¹Ïõé,²…´,²…)Ki,²…)B”¥´¶–ÒÛ,¥´)K-¶ÒÚ[Ie”¶’Ë)m-¤²Ê¥f`Ãfc3¸ôžVË-³CîƒúCôS¬ëQ×%ùqù‘Î>ìy—¨ðѼ}1å+ûCZÖšôlô{¸Llš˜LLÄÁŒ““$`ÆF2˜É0c`É3$É1‰‰Œ“Ã0a˜dfFLɃ0c†‡Þž~æ&d˜Œ˜ŒLd˜ff1ƒŒ†&2L333ŒÃŒF†`É33ffL˜L3,£&CÃÃ	“	ƒ0Ì00ÀÃ0Ã0ìJ±£æRYhZYK,,¥
+R’”¥)B”¡KBÒÊRÊZZP¥¥¶[m(R”)im,ÿ#X1ˆŠ(#b"Š,X1EŒE#E#DPEøñ5÷ÓœjLf4õ7ݳï†ÓS	†bdÆI‘“$aŒ˜Äc˜cÁ†2L™‰“&31ƒ†LÈÌɆ0aŒÌ1˜zµÛò&L˜0É0™0É0Ã	†f‡s¹Îws¼sžw9Îyã‡s‡s‡sÁç<çç8w;œçw;‡yW8w8w6óž<yç8w:»®çŽws‡s‡s¼xñÝã¹Îws‡44hÐi­hÓZÑ÷ï™×>ibÎÇÊ£ª¨Š#"€úAûŠ‘D€¨~ÄŸ®PR("ª#‘\ÌÆ31˜öŠñG„Ã&Nôy’ñ<yǘyN}:7àI~jj9™9\–ÚR–Ye)JR”¥)JRÛJR”¥)m¥)m¶ÛiJR”¶ÛxI&¡ñor­Z²ß(Sú¿Ø}³í31Ÿ¢kìÛ>æ¦3É2dÉÆa`R–JRK@´²R””¥’Ú¥ÚØ[e)@¥(ж‡ßþ»ëŒ™0˜Ì“1ÆI™†R²`R–)d¶…´-¡m…–RÐ¥(Ò[Kh[BË(KhV%–´-¡e”%)@¶…
+ÚÓô¶Ox~—É>ÉGÊ’ûì_-Ú¥ö*XŠÉ,A‰O±RD>ÕbS…X±KXŒQabLX*ÂÅXXF,*ÂÂ0°X±V,IˆÁab1`±a±b0ŒXŒF#"¬,,,,Ff#…бc0XŒ#b,µR„©HX*D©KBÅ•&b–QLF,ݢ̡P´”¨}–*•«B:¼»#J†šÓähÚÍ1Ÿo¦”¥j#zÍîdHñ "õd˜’ëÝ⪼¥X/Z3Ç>ûL´ÌÉßHñUUUUUUUUUUUUUUUUUUUTÍÓ¸Q°!)gÍ™†f»ÎMÚr–‰$„2Iä’|w¹‹X1‡R‡Ãm¨o'>7
+™Îm4Í­$þ+Ð!Æ÷T+MiR¹í¤[ä¨Ìf2"³Q™)-têÙJ¶Û5"«§ÌÕ#l¥»Urß­·Vi‘ƒ"]Ñ7œÚcMÒü
+“¶ªªªªªªªªªªªªªªªªªªªªÏ™‚'¨í†‰;afáÉ‚ú”Q#f]ŝ5ܦÄñ$ä¿OÁë²d&[HÁ"<¾Ã˜\C~8›ª* 1šÏ‡s†áaÞ¹š)ý!!é!<f5ðÍÂã˜YlôÆ馜ٳM—†‡1â‚*€¯­ÊlÒÇØ¡ßS)Úg
+{ B“!Þ‡<iºáɤÛ߇&ï§$oÌ÷};så¿;ç€30>`gÿB™‡Ä² ‚¼´MÙyÊdæóš­0> †« FM9Ý&Ïä0å%ùÞ98R’—0ÃKòÓYíÃ!!Ž÷Þè—¤’IÈHڏϸü—;µÛoÀï~{êÍL1óEjž¸Še¾ÓVcƒ‚4F%Äu¢V­ª÷xU&r0ò<ñs#ŒË8•ªªzÞû‡ªkq×{Ã-·ƒÓÓÃGÆ>žEg
+5QþXú‡¨«ÛÓʏ'C£[Ì7Þó\vn"ÄDu†ÍUרù‹;çŽ+놈£ Mk1NS7~<¯&p둁¸LšÝ÷s©ÃÖŠU¾õr»˜gmº¸µ·sMÃ]K™¹™s®åbu̸Üw5Çuß_P{Þ9»»7M
+
+CCfŠŠ!{œšÎkb‚ÄJêÍÙ5g9Í›»ºnÍš±9À8C‡9³s0ÍÝÙ½¶lë¡ÑÓ££cf“²?O<»éáݹ±°Ùs[›¯Vªw•‹åŸº¯<ußKÛÕùÁì=ËÔ|QcÆW
+8±ÂŽ,Ep£®•uÒ¢ŽºTQ×JŠ:éQG]*(ë¥Et¨£®•uÒ¢ŽºTQ×JŠ:éQG]*(ë¥Et¨£®•uÒ¢ŽºTQ×JŠ:éQG]*(ë¥Et¨£®•uÒ¢ŽºTQ×JŠ:éQG]ú>|’#$F@=ðûã×âüs¯;ËÛÞuçxë¥Et¨£®•uÒ¢Ž»ÙóçϐMäã"¢×ø¡»í¢Aó$’û‡áþ5UUUUUUUUUUUUUUUUUUUWãçÛÒy7éûî¾]Q:ž_&º3Èqçívܱ}
+¸Ìƒ+švòo¼MêÖÙt[ÄܹÞ
+íV;ŠÀüߊ`Êò_Ïܱœ¢?Jªªªªªªªªªªªªªªªªªªª¿cêXÃ
+ûOÉ.Q5»{hœ¦Û[Dڏ•!•‘,®î8è·¯¡‹‡Rég‡Ÿ½G8Ìôêwì²Zø_jê_ŠÆ]k5ñÐ’u=gÎ$¿©õI¤ý[øUUUUUUUUUUUUUUUUZªªªýz7Û5¼¬ôòÓÒ:ò‡¯9åí¦µÓÙ2¾I®É;{y=;:©oyÖìÖ“]f8ÛW°G±'·RÉ׏Šyolõdߢrú}Ï>·ôîèðξŒ›’ùù=ës¡ÓÑ3ÊØ–OŽv½Ž‘Ù©®B;žSM“ŽdÅ›_9‡]f±ñQ)$†ý*ªªªªªªªªªªªªªªªªªªªú!>v/ùOÇ	éÛ´ìŸsÈrEÞb,&ýžPöœ“AÊzŠ¥C³»»2¸’¤1Ìs«`­
+KI ×Sª'KPŽîÑÎðµÎùM:aÖ½×Vy6º×TNkª­çhóî·VîO7iœGà|[ÁÈ9Ô#HÔ“­·ØÜ¶t[VÒ۝ÄMëråÉë;øÆ:8C4÷÷Úê2½ÚQxÏ£®u;§	¦¯¢ÓÒ‘ÑÐÉ2bu¦áã§QÓÐÓF»'ÏíÓ§LÆx„WÅ7·s¨FÐööõõ®î©um†ó$Û×:Õ¬Ö´ñªâ©‘•bÊe†0íŽr˜¼ËŸÕ‹íç[Ün{VI}a²úY±ì֝’H’
+
+ÍY;ê¯Ô±4ÚŒê[ïž!Þž›òN­°,K'hG§s!|oŸsñ³”OCQ=_/fWU_š••ufx|œ¼<;ñ•ŸÙÏ_%Ë:Tu«æ,ªg¼¼ãQEÇ0ËLGœc¥-´ãWyÛb•F§¬¦&Q¬æ˜õäÆ#AˆÚ²pÍiE‹¹®çœÛã0DÊÒÔ⽞í·ÃÕçX´în†·›˜¨›fš¯"Ä`óÌÍð¢zÏ'yÛîƒyãʍ<fJÅZ™šµõË©åG¥¬Y|ó'±-Pæ<W98ñTÔâÔ™‰sø–MÙ‰Q—;.;­ÍÝM#$*ÝÖ¡»º¹E"ɍì[5¹×4U;Û¹‡9¹kL´óFm´ÇrûÌOôï”ñéãǽ=å<x' xyE¬}JRÙcë-¢(zIè¢">£h­AAY
+Q¯½m*WȯŒÌ˜\nzçyNo.ìÝn:éwF´Â”R­«Kl;'”ïlQ}ë}_wªÄ­GƒRÄå©ZÑCÓǏz{ÊxôñãÞžòž=$òå’HP=åzÙQ<VÆz–[JMÑTX‹±SR´Xzxõ}éíóiïzwªpôñãÞžòž<Ä<¼¢ÇÖ(ž-–>²Ú"‡‚z€÷–,_#ê4U´½³.UO®„ˆœpwí;µ9õZÝ…¥¨MÛFèÝø’HøÞü»jñ½žËw6†Rh$¤ÓCH` a‡ô„ž:ñð¼xñãÇK¦»äö‹Ö{ú’2Ñ!¨f‰…C4Hd*¢C!PÍ
+†hÈT3D†B¡šl^‰…C4Hd*¢C!PÍ
+†hÈT3D†B¡š$2Ñ!¨f‰…C4Hd*¢C!PÍ
+†hÈT3D†B¡š$2Ñ!¨f†—¡†Áeèa°Yzl^†—¡†Áeèa°Y{¾ß{yî{æI!£$F@|ü÷ççùçÎ	…C4Hd*¢C!PÍ
+†hÈT3D†B¡—¯<xñÔ¼äç\çŽtùÎxëÆmùہšS6¿nMú„úÄ'èäüÅ‹4ëæ–\¾–q8zB<Þr¦§z¼Ðv¥XŒñUª¬«‘ÌË:DãŒq)Ó—)†”¼„q:’k©:Å‹ó§!ouÐÌ_˜A”\ÁÂ
+&ÃA&dÐ-ŠnÏ“ˆv?]ŸDiH0öä¹·$’†À‡’6"¦j$ü’I›È+~ƒæ9$&šDâ)|†ìÄwAŒ3`RÃM’h±“mÃSu-õÜ×Q‹Q1Ðêt“uT¶H}mƒ_.9ÂÚYæ©hf™34ã÷‚IQ9&²úÈÞp³ˆuÄÜ
+Öêmψš=ì$9#‡5蜄`ì¢D¼œÝ›Â¦¨›‰¶‘9؃mÉ'7¢Ë%)*”²¦â6Ø5Øä#B­”’Øí5óìïŰóX,SÇZ¹*Km´*R|ƒåUUUUUUUUUUUUUUUUUUU_;Âo²–n
+ì‚Ѓr7£f+n£|âo¼ª\bL²²b¬¬)p­¥kx›ÓA22,Èe0˜X,ªXŒ$Ê07Å¼MÉoa›êä8‰Åpc	™ÕÊr.w)ÅTÉjÚLé:‘»ÈGHèzâ;¼;÷Ye°œ±®²zý98ò^ÞlÚSg;¥ÕpÜmyÂ6nn6Ô“M
+O&òÈ›lÑ©M<·{jMDÖš”ÏžfrÀ1«Ôƒ;tÛ’nªªªªªªªªªªªªªªªªªªªªÖ„!l…ˆÃb×½Æõ½ZØÚ6¨Ôij¢ßc|­ç]TãÔókÕÉVõSÿoþk÷?󋈳ÿÑÿÆï÷þÇîïôŸñû^Ü«Gׯí_Ý|s¿‹ï¾."Îâïã~ÿ7ññOnÜ«Gׯáü|s£ß}±qhýîý÷íñ~ÿñõہõhúõû¿Ž`wñ}ñ÷ÅÄYÁü]üoßæþ>)ãíہõhúõü?Ž`t{ï¶."ͽ߾ý¾/ßâž>»p>­^¿wïñÌþ/¾>ø¸‹8?‹¿ûüßÇÅ<}»p>­^¿‡ññÌþ/¾>ø¸‹8?‹¿ûüßÇÅ<}»p>­^¿‡ññ̏}öÅÄY£÷»÷ß·ÅûüSÇ×nÕ£ë×îýþ9Þûí«1š+õžÝ¬¢¿º¼6gåCy·†ÌûY§6ðٝ¡¼ÛÃferé³2ƒ¹tÙ™a¹tK¶—D»a¹tKË
+Ë¢]Ãÿ¼ëÊÝÒh˜ñÓtÿê7&¥å{½4L<é„:y—&¥å
 Zf“DÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò.MKÊ´Í&‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹©ãZszh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<2y
+V™½4L<é„=<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„Ã'Õi›ÓDÃΘCÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBá“Èj´ÍsSÝóñ„<ñcÕ¼£LÛ4L9Ótò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBæäÔ¼£Ow¦‰‡0‡O! ðÉä5ZfôÑ0ó¦ôò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€xdò­3zh˜yÓzy‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBá“Èj´Íé¢açL!éä <†«LÞš&tž
 Bá“Èj´Íé¢açL!éä <†«LÞš&tžBá“Èj´Íé¢açL!éä <†«LÞš&tžBæäÔ¼£Ow¦‰‡0‡O! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôò.MKÊ´Í&‰‡0‡O! ðÉä5ZfôÑ0ó¦ôòžQ}£û‡Þwù»¿i»ú
+Ýݸç9»»»»»»»úðýƒû®$ýŽL¨½°˜€öý–Îø› R7öjªªªªªªªªªªªªªªªªªªª¿¤ÔtBH~Û~YÄ'!ÔFó&¤Ô»RlnVÄHã}Î&QÀá
+Ŧ!kY‚S0)V²Ú·Z³×ŠÀ™‚¬ÁC2©›ŒH6E#8NHN²ˆf¼¤FM
+’@’®Â5f†É"1`£ßÛ½™'Ä'Ë	ˆk$é¿_jI	ûm&íBß½¶Ûm¶Ûm¶Ûm¶Úªªªªªªªªªªªªªªªªªªªªªª½w½g®í»¾ °^B#&CBh±á²àlÉ`Ì3’ÁB2±™"Pɘ§à¶é½$£nåMBš¥²ïpf“bÉšïb’D´ï.«MâI÷þ÷ÿ£ßuUUUUUUUUUUUUUUUUUUU^qúíÊI$>¤›ör—ãâýg,ÎÏ«hÛîÏs0kV•=©¨«ŠŠ®"ãzá«´æ[:Þq;iGÙ˜e;kml}¶Û·ÎLDiQ‡0ÔµTyÞó»šÌ:cÃÛ½/9u‹39Ï'•ízzá˜7&5ÌLäè‹ùc¢¼k}»˜>ó¾FŠ&YãGÔ§c²ÌÁ4s}åDåž5Zj£‡¹³Q-
 G™_wGMöhöêðÞÖåïpN{½,O·“RÈ»Iq¥ÏA"Ä–¬[‘˜²MR%¼]Ù‹Ǎ½×îA=Ó¯kïz@ñêO}_{‡”ž˜¢'©mO[U|OòŒžKZ+QP²ž1óQž¯³Ë3™Ž_aqÂînÝܵm¶O@âx[Û^åñž§»:Åãoj®ÉéãÞò>óïO÷‘ïŸzC‡‚ÈU…Eˆˆmö
+«é45ŠŒq[kª«¤ôñïwÙKîž÷=¯yéãÞ<ú¾÷‚xž˜¢'©mO[U|Oò$ðx<‹|ÒÑ<ª>'ïÐ ‡Y=ú6èÄðšR¦‡Áî’F9¾þDŸ·	'íÉ$/òû}¯åÏ;Îó{®w{Îó{®wzSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—iMº¥ÚSn©v”Ûª]¥6ê—³çÏŸ3±d’Þû»ísÛÞw›Ýs»Þw›Ýs»JmÕ.Ò›uK´¦ÝRí)·T½™óçφÞÛ9'k*Cʐ¬“›ÉxÈH~`ú*ªªªªªªªªªªªªªªªªªªª¹&Á'ý™’5M¥ŽÕ1*k¾^3
+l²eêÉ,Àa»°†M}aÃfBS(Œý.W¯8‡¸kË1˜õ‚2þ;VõÛhÞÝ>ÎÎFáøT–*LÕh²É²´ÑZV&™™CːïÊ
+™$'݁ÀûæÝÄ›1û§ÝŠ¡%éš{œÎK°š’Hp¡ùÀ	îã¡@Óù3UUUUUUUUUUUUUUUUUUUvúŸÁ~§MfÛ‹‰1SϨ«UdS"¬¥>¨=]»\
+ÊÖM$`Ú!S&D¥‚Ò¥….¿rªs©:žö;3ß¾­-õu¾AÕ@Þ*ªªªªªªªªªªªªªªªªªªªôÎä‚((3f’̖ʦo¾¡²¦·Ñ6	…¶Ö…µ#³*¦ûÞlŽ$2òU¶Eµ^>=°ÒvwŽy7jÄB'r{¹˜'?IUUUUUUUUUUUUUUUUUUUU$Ø@>4íØlFno66›ÔhGÍå¤ÐO;úöíâxðžé½ìØEœæÎüèàEñ›å“IÎ
+>é’0—‡ÛÙÓ;ÈÈC£ÊÈœn´è'M“fÂk{)³a5¡ÍìI)Öäe—R‘b"du¨Ž· lÍî
+Y4؍/[Ä×r'z+./k7Cá²)³ÃݰD+~Œ1d‰¨™Nä5¶;µ!Á&ÔÒ´TÔKQÆÒÆÕ±š­KX#zMÔeTÀŸŸô>·NƒŸsð]4¨Þò[ÆcÄN[D9±¹!0ɦ„i;ó¦Â61ßR$ÍÖDo0GZ×6#Dã3¬~]>ÝÐéï·Oƒ¬»2©ŠŽN}Ÿµø±Îõä娨ªúh²žÁÊ[e´qÌ{¼å‰jw^µJ‰eSÆ®Êxç3)Å1b¶V0á€Ãª;¼§s]Ã{mÑæqÖ*ŽNù‹9í«:4|c·4¦æoO"ÆZ¡ãG¾ñìós'½mðï';ºks—†
+¶¢Séæ¾ÇÙŠ‰¶i¢f¢Ç˜¤Å‰fܳw²Ãˆ—%½Öãì7—Ã
+*i‰)-ˆ†	7æ59LGiäRÞ´ÓÕ‘ÌJN3D’BŠís=G=»Uj۝„  †éÞw§yÎsx'TêΜéPT;:.U*Îí*ö­kV½iQÝìâtâvuaÕ^¬çNóœçsœæðt/Ì©%—2ïÍÏš—ÍÌܹ@  4äå±Ë\¶q×98œ¶pãäÕd-*ÄYd*¢ªJ¨U*KIU%T•IUȶ„PEDB,‹"„bHU*’Ñj*¡e’[Ñh¶IUQT*¤´[Ë!h¶d–‹IeHª’Ô”¨–‹HÇ'‰ß³I%¶Â ¬?D œ¿˜$oS·+naÔ®TÉvÖªbi£8èÜ¿ŸŸŸÛï}÷óvsŽ‹§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ˆw%ŠªŠ¨ªªªŠEU‚бE‹DQTW¾ç±ö{yœÇ™ÍæsCHDCHDCHDCHDCéú>gÚ±üIt-SàɉE½½ß…€ª@gͪgY¤–­‰m©]µ}{q·IÛ{=+tñéðb‡ÁѲS²Ç½–¿_T’/¾ß—iÞÜÕµÜͪÞg:µ9ÜÅ"‚Kù•UUUUUUUUUUUUUUUUUUU{ÁI‘€A@†¤ LˆöwÝݦäùfˆ¨No©©ÍuÑ®25d#nðŽÐi×ùIúT²~±¼}ôq;Â}%ss¤ºͱ‚(iÉÖn®#ÔYOÔ%çè|þ\Zß1lD’$Ìd€ŠšÆ"¸Y(i¶ç×ɳ§~¼CÕÂd…ІxÞ.¸ã3ž±¬±¬U*ÔE[®þ<]åmïÏx^î«Í¦>zÓ^WQ¦­]˜äÝJÕ”	‘–-ä¨@­ä¬û!M¡ããÇÆo±gŽÉJÀPÃsNÜxQlJ }û3`BYI!ÞÙ:š‘ý
+æ[\ùï»ÃãÛ>Pù÷I1‚“³›µµ-°dèç®7%e¡ÝÞɆk¿‡¹=Ü„¬Î|N鬚‹2'Ç'}ãÔ¸&ið°Ž»õ²sÚc¿ÛóMv—Ïq¹|Y&)óÒeZ×Äιë§vøâ}O•XHFNwô?oŽªªªªªªªªªªªªªªªªªªªªþŽ~wó~â*T<µ)6žNß#ÅÙãðrk–6Ûlf3-Žñ*½-»ÑD‚>õN*ç´Ô
 M¥ŽuÛn\N®NŠŒí žÁ¸£ë*ÅÕÛÌÃja`ŝ3šñ½MW¹®qqÜÁGlá£Óʏ'w£:é–Û£»³FÙ§N£j6xïgFLzÞ÷YçÞó̯`¼Ó0Ì™˜XœÄǾ¥=rc\Äý]5MrRàÅø7·y·†³~3]wᯬí½ç)êõ婽ôïMz›™[‹Xœs¢Înâvjmä,ʵbbo5©ÍïÉ$®íͦY!!÷pç–{Þ÷½<yg½âzO)à<úÄcžEO¡á_Z–ØÛ[}ÞD´¥-Q£J>˃™rѨ«=™Šc\\F8ªžê½m£ëmõ÷¤ïm(ˆª*Åâ*h{Þô÷•O{Þ÷§¼ª{Þ'¤ò–IEô}F1ˆ1Šygƒ@ÕÕUUU
+Y¡ï{ÓÇ”ãîž÷§Ž¬ï=ïzxòÏ{ÄôžSÒyõˆÆ1žEO‰âyÐ=äUQжeÏs=%²æp·xM†ë›·ryë¯/]ô×Å[ñ¦¸ÒH®$’+‰$ŠâIR«m¥VÛJ­¶•[m*¶ÚUm´ªÛiU¶Ò«m¥VÛJ­¶•[m*¶ÚUm´ªÛiU¶Ò«m¥VÛJ­¶•[m*¶ÚUm´ªÛiU¶Ò«m¥VÛJ­¶•[m*¶ÞìľbI|¼»»©U¶Ò«m¥VÛJ­¶•[m*¶ß½=¿nÙöWp8†2|$ç7¯¯¼­¸kKJ¥Ca68ê1ÍÕÓ"%i¬„ïßÞð3“μü¾8ôòß’ŠýCˆÙyað’œÓ½;n™ˆ)õ‰­XœŸS&=09¥ÈƒÓIè©›·!%3 ¡!ÙŸ!§ÌdØVS¹’Ù:æÙ¾NnæI‚>Ú}c·¾¤ÑAãÉf%[VÚ#ÔËe³QLÖŠ·Ä™‰dƒtA™‚3wËÆîÞ~™ÞMfDá¹%döfÞj^o{%IŸUUUUUUUUUUUUUUUUUUUWàøà4㈋O«sædKf›àøù)Pîá™ê	Ü£
+Ãá犽§W¬™ À‡m
+ÊY’žlš~Ÿ;0vdê(M”“?	°øŸ_CbÖ{â2©^2TCÞ7׊µ«ÕµÄ²Dˆé4Ÿ#ÒâN
+wñ†g~ûYÔc1‘bK(4§2~†Ýù=ï£!`pCŒš`éqÌ7NúíÎÜÑÌÉÛ)ԁA»$“Ý^ýg‹Ó¢Â8î]áÖF{ÒLTu¦“§{õŸS„’yzuzx›Y¹:¶ÃE—›dMM›™>~^™wÞ:ÊQ“¡Ðަ£ÚÎÝ2|kåñéåΕyåëÛ~ÞÏ‘¿>ç·n,3Íã^{ß^®{³”Ó2Üç·—®(©ÛPS¾tÖ·[».[m·Ë—US[Æ·ÇgDõ±É3vË|ñp{œÕ¹¸áb(ˆ¾™ÎsÚãf'³–î{:5½ÎøQíž4_yÏ=Ã]w2ºtò‰AöD=ÞvÚ=zû1‹=ãÞóžš4n£Ü*"8ss¾ž7³×4¦æ\neWNâε#Ið¦¾Þ›­Ô—mÞW6Nm-¸õg,Mb|¤rd´šoY¯nHÚÛ¨ºÓ˜knzܶfg/¸’	ïëïzxñã¾}ïOIé<@÷”QõTðl$ÄómTo®f*[mL¶Ú¬”W<n®>ÛwØeÛ‹rÑÜËEåÍyêæÓ¶žYä2ñÑzÛUàh/• ïŸ{`0;çÞÐ'”ž+’RU“LJԶ«àðn¶Ôvˆ¸h0<wϸ{Þg„;çÙÖǏù÷´EôžÇ…UO’CÒzO=å*»*»¦Ž’£¨[GkhudŒ¤3ÏÝߝs‹“\dɺlÓLcnOL½=¶ì¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶]ÌùnËe¶[e¶[e¶[e¶[e¶[e¶[e™ôÌ.wÑAß…X»9d¹8ä.%J’Î_Ž´æÞCЁ‡ç;sχ€À‡#½P,“C´’œÈ&RŒ‹’9!¦è††˜ŠñáÎ;宎UÞ&M^jLÙ;gR©ŽšÑ—m,(G$ÃMîÀ°´›ºC!“p2S0¶gp
+?}Ÿ=ïiÔbªøùÉ|êg9M#'˜&œb{Þº<-î&"‹à’DçZ¶Jå²ÚªmUib[âц
+–V–í>ˆüN@%)I$ë O‰¦OüK°íə̓'0-éׯQ÷;ž¶“Á Àý ¿h~Ov檳Fj–±ÒÖÛR–ù›$µ©%mµh@Ö–…
+ðD+¹,’Iða¥Ï“äèy‡»@f°¤s£Ì&C™/PÃf'wœ©Äá8píª›÷9ø±Õ­µ¾¹´wÙÓ—›¶‚z˜'(Î1§^Þˆ«~·
+öµ‘ù2-6~o¯žUfl‚¢F™¹áÓ#†sf]‚ô{2åþ¥îØ ¤É3Ý}V05¬ŸXi½éË‚àï
+›Ð!ùù»$&ü›Ý‰'$š¬Ž»ë⾎ܓ›;öÕòßjäŽ:Ö¡åÛwdM»Òm &Ûv¾nŽÒaK̵Ï^éFÃ3ã“nÇh/g€'‰!°±’F„)¸_Ð&>—]ç]!z<djBê±7CJ5­>yã¯9›öð¼±:u^n›léÄO[»©Tܪ?ÛçñŽá˜:~?'û»‹›’«gš¦"ßj%殚…ÊZÝãÅÊQZ˜û8tFx²†QJÌ.ÕÛˆŠ±˜-.P«qDQ칦Ù۝FÇØ¼Æ4Üø:5¾éÈs0öÚÅžÃ
+Uy<§†¾²ã”bøç|ù_möfw®^æWnEk-żJuÇÙ•öìÑ£vn{׫ؽ±{sõ|ú–îe>	+·œrtm¡:ï»Þõ—¦Ìõ¹ÍµÔ®¹–Ä®8VöãÍ^\qÚ)­£··S®¾·ƒ´¾âÎÎÎÛ뜜qÎs˜áË%Ž:áJNΤEG¶ÒÚÒª¬™Õ]œ·—¶ÔtUPéÄïxÎNXáÃ]äãŽsœäãŽsœÄáÅ’Çd±ƒ†Î¸SFŒÑNN8ç7ËËÇç9ÉÇç9“‡,–88lë…1ÖK6páñÛ¤©Á˜ó1çݳ>ë–á‡ÑÓè·%VÙkªÛ-u[e®«lµÕm–º­²×U¶Zê¶Ë]VÙkªÛ-u[e®«lµÕm–º­²×U¶Zê¶Ë]VÙkªÛ-u[e®«lµÕm–º­²×U¶Zê¶Ë]VÙkªÛ-u[e®«lµÕm–º­²×U¶Zê¶Ë]VÜùòZê¶Ë]VÙkªÛ-u[e®«lµÕm–º­y±f}9>󨕇°¿Odܤå鞦†1ÓÒEëø1eK+‰ÑÃK±¥Ž­›ÓCMÝ>?x?SƉî™ñõÚód‘äI9ilšf|ÚT.œàüwàÓ'Åéi£OsNIsµ„Ÿ9»…g$KHn|‰Òhӏ@!M÷¸iìÙÅ?6öù;Že5áºêÇz…ÖMRºNù©¡­·Lçs¡$ßpïsJéQó·`w¼éŒðΦí,êmÃ·úø™´ï¡òUUUUUUUUUUUUUUUUUUUUߏ¢~›´ç·#>|rG@ùz“M‡K;¿]Â;=W¾îIòbÊUª”æØOÕ’ûs›'/pŸÕÔ`¤‰Þ`a¦æNì>‡|hÈT$R at b¤$2†`°Ê¤Ì¡™a’[%°[–BR“ž··¦4ðﮥÓÂËžÓfÌ)nfJR”¥0öþ˜sQÂÄg»Oggêi‡KÞifc5¾ûòbLÇs¾&Ûyyyj•zŸ[Æ;ûHô°‡­’F©h5KI$j{M½Àýo~BKçÓ´®[åncQñ4áÀuÖõÖõ×[׃ׁ×Yï|2¯Àøçï÷Þ÷ÞfwojÚ’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$’JÛm¶Ûm¶Û>¡·ôÉL’I$‘¶ÛzzzzUU^€ªªªªªªªªª ªªªªªªªªªªªééé
 ééééééW ª ª³¾û=÷ÚI$’I$’I$’I$’I$’^}tºióB7¿§é{ùg‹é~†>¥ú9èúTúˆ“Éæ¾sǦ{B5ïãû¾®¡;qì_^ïW~>9é­xßc™×~|ñË©ÛÊ'‹]²¥Cú’¥CÌáîãcÚ}"Nž¾ÿK3ß···g\^sœçW¶Òâ¶Ú\VÛKŠÛiq[m.+m¥Åm´¸­¶—¶Òâ¶Ú\VÛKŠÛiq[m.+m¥Åm´¸­¶—¶Òâ¶Ú\VÛKŠÛiq[m.+m¥Åm´¸­¶—¶Òâ¶Ú\VÛKŠÛiq[m.+m¥Åm´¸­·»1,ø’_/bîî¥Åm´¸­¶—¶Òâ¶Ú\Vóœë‹Îsœ„y·žÝ·£Ø°~ù>=üjeÒªªªªªªªªªªªªªªªªªªª«ù¿Oòû{çñ‡çß¹úÿ¾g²¢;÷øõøø¾1éßkè’G\ø„cþ„IÚyYèõã_h>åôLXbªÛbÕ¯»¿yÑDŒ,ý ’o2`_*ªª·eº‘“26>Á«V¾î[
+;Añ/ݏ?°¾Ã[> ò%u"0JörQu{Àðˆ°~¸ªºG%SCþBI'¤ó!·k[NÕSG³*žÒªnÌÈ+°U_“ÅWðEUÀñ”0]‘ó*•~¸ª¾¨äÀ÷Gt ÐòŽ\ªtÇÕWõýárÆJ§»J§öc´ebª|jU9*§Ê¥Sqàó­Ò©ªU5U:R©Òªtª™Jd–*__Ó몕ã*Ÿ&/ á+Ö0n´?¹R¤´=!Ϊ{íUO­¼^Øõê¦	ÚÇ8꺋ThvªGóƒÚd~ØáT¨qJ§xö’©îŽcõUMʏýÁ¤ÉC•;cÇGå¥SÆ¡ójó¥{C˜½nêU:ãR¥CçG í*¦‘’«ÇŠ–‡«*T;ãÙOÛ@™TÜ^Âeì …ˆÇJ©ë LFØ”•l‡eJ’ļe
+T¬
+Ç($碊¼ôªbBs‡»U?o«Æ3:Ê‹z©Ô™U2Bå!îF‘÷
+Úˆ¹Ô.ؘqTª
+©ëŽƒa±Ñá!ê…/‹O@È>°ÐóFÈÒ{CJ6U!	„Æ*£UDF"ª¢±DTb*¢*±ˆŠ‚
+¨B!$‰$cDTQˆ¢"#UQXˆŠªŒ,ŒÌc0õcu‰î
+È>ăHsÀð4ì<†$8;”jGp5êò MT‰$`¯´¶KbÚ(YjZÛIÛbÉG˜À£ƒˆCaÌŒªò¡ÕJ§*4ªŸ‡!ØãpúCÉP»ƒˆðöÇ0A°vƇ}*šÜâ’®Á:U7nAÑ઼cÛ¥S²5J§xêãŽùR¡Ò1-¡ç%àJJ»©å³e‚Øl‡¬9ÐWªy*•C¸`*HØ|ãÞL~yì~ý÷™™™™™™™™™m¶ÛjÛm¶Ûüá ?² IûbBr@ëJ{²U=Êa°Ø{Uä„|qæ1?0]ƒÙŽC߃ÞT^ü`ž	R¡Àx¢T¨j;(ðSQÊ(žNÂ=zU=Š•%ñªo@øꩵTëAˆÈj9 \Ê©µ%eT÷*•CÞŒSÔZ…ßP¼Aó;EîJ•Hï©*›A-†SæÑ¤x!Ê©zGˆs*§ª<ñäx‡‘ëE.ƒ±*W]ÌeEç£xòÒ©ãG^ÂĦ+A°Ê‹Ð9b]b¡mU¶Ûm¶üˆ}Púáó‰ƒæ”ª|yR¡Þ£Ö¥Srªn*§ wC„|‘ãŠ'£b•Ê)*íÑÜ-†‡]*›Ã)TñÑ¡èÃÀ‘Ô:CÀ>Èz¹ƒÐr•*%Ô0_•*?T[Çmáàå%¸*¦ÄdëÞ?pnArMJ§Pð‡T'Hê˜9CeTë´¹8öºº=Ñށ<ãö-R|ð¯paY…e`¬„ñITô4©Pâ(žÅ*Ô|X¢sŽÐ¬=Ñ¡íŨ`íCIPï‘ìˆwGèš*¯-*œÆèf<ÃÂ<욪j.ú¥PûeBÁèëUN#hö"‰ÕBT¨lŽCÉl‡ÄG1åEUWêGd	àlćd7uª•
+ѺJ¥ƒ#Ë‘ñãÈ8•Šªž뎪U=d	òCÇG1ÛJ§TO
+ÆÃãÞ‡¾9Ò$憅Uú¡íŽÚ©åG¿=a‘¤¼C!Å%0adaæ$b1&*z#²{¨’¡èÈÏTn:vh*±)*ÄF¢’¯‘*T0.µTÝ*ž(ó|zãØR¥C éG”{TªhZ•MS²ªy‡†8†ôªd#ŠU<Úƒ°m%¨äÇzÚ†•SÌ0wª•
+ÇJ;b’®C¬sª›’’®²FãtŽcφGxÐû
 ¹R¡Â©ÈzƒÒ<¡´±áÌv†GIWÝb\ƒÀª™
+ñÛU:ˆd7ŒF!'Xä6@™U<©p¥ºÔ<‘Ήb`“ªB%쌑)½Tõàýawƒq”¼w'${<c’Z£¨i~t©PúÊ¥C©# ïÀ<4ªlãU*¡ºå#•NñUqz¨ÕITúãÔU0`ÈéG(ö"‰¸Þ•LT.ž”•rJ§ÅªšŠJ»R~<}´‡ÿl}Çú•UUUUUUJþÖ)þD“?ü°5Dþ‰„¯ýL
+$ýÛ¬ÿîš\¾¸çù#ÔÔq)EfP,À-ˆª*¡öU˲ÿÚ·ÄHúyןþÓ»jÕ„î£Mñ.yŸ‚KùÅTðb‰)¿êÑt?þb‚²L¦²
+!çš
+’Ýÿ
+ÿ ?ÿ¿ßÿÀPÿᨅ  EðÁ| z =àÀ    ÒªCï°   AT  P¥T  	Já€}
+ Aà ãž         0
+ØÁ AÞ î û P úx8 4R¤D@ `EA„ =4§xêWL™°Ëf@ƒ€ƒ¹ƒAõ܏            p èøÀd9X (†@Ṳ̈’WÖ‡@M÷Àžù`¤úÄ  O §J,Ú, ×`DŠLv¹À    2Ÿ°ÙJ©SP         E?ÒJªL4hɦ˜MÂhÓdÄh3PŠŸíªªš§ú¤@   h    	O)&UMMIêh=@4  
+¨d€  Tˆ„КQµÔš6 
+=&iêhÚG©‘£ÊDB‰=@€ ÔÐ ¦²B~dIþ²ˆ«)õÅ_ådWû¨«"¯¬U¸¬¢­2*Ý%bVØq[¦‹VfA?ÙE\”™IY
+2™%seC"°cùÅTþ‰$«ñŠ©•US¤¢*ö‰Kî	Ue%TÄ ò¥Jƒšúo¦Ö©¸¨ŠºÌI›üŸNõôþNuÎu¹ík[ÛknëùïlúÉ—ŸYÖÎÛmo”ݦîí¦É6»íœøL©ÍÓ•èús}ÖåîÚ—›ÎÕÝiƦuWon{DêoÛȲTó}·…Óã²Ô‘[-øW‚pÍ’WM2¦OÔâ‚Ôï'm©âÑn'SÄù>îäñ>M—“Љâz›;“–âÒòi÷'‰Ôíµ4ôO©âwžë‰§¼›îäÓîMÞäÓîO­•âbxN'1wwz?{“OÞO©â~NÛSOŸ0ÝkÞó(Þa¾ô7›[Z÷¼ÝúÔâq4ôM;Éâ|ŸwrxŸ&ËÉÒßF^OÞ¾L¤ONäÓá7{“}Õ<O¹+Üž'ÉâîZM=O¹4û“îîOä÷\Ä´©§×š}ɘ7§'‰òxŸ›¾÷˜o5÷|ÚÚÚÚÃï<nù†ós–³sÍ{Þa¼Ãy»ïy†ókk7Ýaï_
+æÌ7X»æÌ7™½SO¹7ÝÉŵÛ³-²íÛÚvËTìÝ6Öô\Û
+An›.ÃbWgEÕ½lm¶Õ½Ñ‚ØÛm¢[[k޲•I×U/jâÝ6+È
+å8ÞRš)Û7{W‹Ú¹oE¼¸V+×·®öÅÜvËÖ˺ºSnô»n »ÀXIoP«ƒyN7”–ê¦Í½!ˆ.åÒöÛ½ºAð¸ˆîÒZÛgZì{ݧT­ËÜwu-©^K»»¹·ÀmäHÛl’%kn¥ÝÜ—^]Ɓ;m÷wvwtyï>|Õæ¯=çϐ
+óço>jòTú PeQUG¼T{ÁðTUPU@P{ÀHUQ™™ïaUEUðUHUTUT÷¡UEUð{ÁðT{ÀððUTñ@¼ðUP ™™¹™š TUPU@PeQUFfgØUEV¶ëvë|—s˜‹^uvîí¯WYZ	ÊCŸÆ»¡:WÆï>6>Úè6䓺ÎvîÅ|0ì¾ÆÉ8¯ç°Ÿt™c¤¶ÎÛo6×nÓwvÓd›mšÝÔú§4ë"';eâƒo©NçÎm‰ÝAζºIfÅÜ=ÍÝÚî©Ô&Î+¬ qÏMGzt}F/cdmµüöë&^}g[;mµ¾Sv›»¶›$ÛlÖî§Õ9§tˆívAí±€Âåìl‘Êþ{	õ“/>³­¶Úß)»MÝÛM’m¶kwSêœÓ¬ˆœì…Wè÷†+‡cr6ÞÙÏç°ŸY2óë:ÙÛm­ò›´ÝÝ´Ù&Ûf·u>©Í;¤Gk²mŒ/cdŽWóØOºL±½³·­æÚíÛwwt6Iª÷p7Ú™Sšu‘²ïQw{Ö÷{¸0³y,Énæm ëììí»©%›L2‚Ig	gîm0îÎî·.]ì'gnîæ¶Ì0îη.\0ζÛrÛÆîöu œkt™¸wa;80oºÜ7s°ÙÖ⬵òâ>ãÖöw±¿Há⿞Â}é2Ï2[³Ûëy¶»vÝÝÝ
+’o­šÝÔÏ$ædDçl¹I\ëaØÜ·¶sùì'ÖL¼úζvÛk|¦í7wm6I¶ôÞ|&TæÒ#µÙ¸]kPNq•ò×càaÙ{$p⿞Â}Òeì
+½o6×nÛ»»¡²M¶Ínê}WI½z’+l¹yÖ·­«¯'o:áv³Ö‡>q¹ÝÝžHó©kÝçã¨'‹»À’AÝÝvԒޮԍêÞë£<8m»½½î}¯ÛKi›Vã3rR9¬©$Ê­#W6ªU]@$»¦ÞçÖݐÖ7®Û\֍ËWZй÷5gs	5½¸v6HáÅ=„û¤ËØ;zÞm®Ý·w{i²KÝf¾á§4ë"';e
+±€Âåìl‘Êþ{	÷I–7°6võ¼Û]»nîî†É6Û5»©õNiÖDNvËÄíÛ]Ö÷{¸0¯y,Énæõ¶·gga·u$³i†PI,²»››Ý–õ¹rïa;7ww9¶a‡u¹rå·;;»ºÜ¶ñ»½h gšÇÝ&nØNÍÍÍnÓ°ÝÎÍͽï¤ÉË/³®¼yg›ìÎÜ·nlohÞ<îwGÝ—µÅ­S&ÙÜ\ápd¼
 >éÞ¦ék‰ß©K´G½'gtxû®¼yÔw Ù“¹Å’s‹$æ»;³;:¬“î=Ž,ì½®,œ8³{õx÷»s…Î\ápfïœNù$¼›¥±Å“£}Úúçn¸§w8²^qd9ãÂ[S}ȋި÷’KÉ%ä÷z”½]s¸qNÝxòðúçn¸²utÂ>çwÖ¦è‰ïûÞ¥/R—©K´G}¶¦ûmMöÄ{ßD{ßWŽû¶¦ôDágvw6û:ÇŽ&³º8²YÑdá÷gn¼yÝ^<;œYcÎîk²ö#scfä‹4Îèû²õqd£‹'»;uÅ“ªë“«Švó‹$çIÌ0‹‡,]Í¥Œw{ß3k~w6ï¾{6·ç±žö}I> `LTE\ª"­2I#gÙ™™öý÷ßgÛŠ¹‘©¶côuóé
+ Ûvâ@ù¾ZÙzU!v³zêÝÛ³ºTí©M¦ÃVü»
+îF¥°â¾6tIj‚BnÜH7Ë[/J¤.Öo][»vsî5knIÔØjß—fa™Z­¼mã‰ã’í0‡[s.[rÛ—/K–Ì—m0ÎVç[ñ~!õ¿Krܸ_noßiÃstÜÜØˆªNõDq>³í½Ç“qtÃzccÃë›õ¯"½Ý—,¹›&¬¿K†=ú㗌ﻛ“3»;ã8¿lÎÞ´Üìîܹqý{rLïŽãâ“éÛ’v¼°ËKÈËvcÃwO®ä“6~Ó¼3L0׺ñ7òYòÌï¾Y‰|’ÌX«U¬mÆÜ’ÐÞwU³6ÜN­\ÃQÝvæöåK•É.\íË…MÇÍ[)›»yc·nÎ16l·¶íÞÉ[‹m™½ÙÒÙM|ÉÇEÎI.VÛäPÞÜÞÜæâ}‰ã3s·.I—DF‚S6k#nÈ\[\ÝÒòk7¸h÷7SRD’˜›øÌÆ7É,|žÚY“*isé(eÒâTЬ¹vëÄû¡«§Bg!¼+K®^ÜìOdÍZÜ–eËMÊîRËzç5¯’âÞãi¹Ù¦\Ü‘»ÃŸ[ÙÑ^ëÚs˽eYØ µ^{¶eì“nÑôáRt˜tí&íÜÜØ˜kª>És³»rѪ…—–§5gjÝuôû³¸ÚvÚøÜÓ
+“‰a»wµÍëÙÊçh·¢Þ6››jÍméË¥·$μ­§h°²^™‹x76KwxÊ:ð›IUH;-0Ìå7ÕP°«~«cÍ7Xni†îëpSM׉­ÝÆMñ³íoûä¾Y‡ruâÉ&NlãFðÍmðo;«£Ó»²év¤§3…w‰;¸‹´Á°µonnnçe³’Y:wd}:ØŽi⛫œnëÛr[7SE¤ÖŒ‘=ɺ·¤HH{Îq¹ºL6î¼¢Š×Χy¼O°Ó\Ž:`µØ<}sËQw=o;;Î!²NÛ½'Sx#3²\3\9ãzÛzÝ9åË"ÞSvÌ£Lí™D“77§(–ÞÙÏ£î÷J“„›”Ø¡­˜bšc&á‹a>Õö5òKîÁ[’G˺•ŸBN–á†
+»q(.™Øµ¡:mtÖ)6ì2gokÔúl”›#X»5[’G˺•ŸBN–á†
+»q(.™Øµ¡:mtÖ)6ì2gokã{y»ß·›¾ÖE ƒÕíE»¦¹2vîqÊܹ~¶Û…Å–Þ¸e¯#¶ñ~îÉÖá~¹pªýråÊU~.+¢ÃAh³~Ü“'Óé$ɍ¿´æÒ6)ô‘(:ä©Ëvîîâ]Üq›zÞt;nì’IZ³i$’ì…ÄÛÚ
 4ÂlM5Õwe]ÎõDs‘öæ›çxœ7‡­Ã37çõ¦^û»ÌìÜ¿V+Œ9Üï·½<D{ž=ãMïsÖQï¾.šsŽíÇ‹ãWv<Þ3o5õ1gW¼fÞ>ÊbÁwo
+ý’æâ.Ñ»òNÓ4ùÃâß¹'9»™8!ß
+«‹sus¶ñ[yÕ#zúTëÅµ¥Ý{{X؆ÈÊݦÚòÛv„:êÑ®i¼oiw6IHéÊ%oq¢
+™‰&óåTŽ%·¶%¹½»´˜ª[ÖÞMݤd’FôÅ4ÝÝÜdÓå°™«ÌKìY‚Ê®Lj[+ãgAô–¨$&íāó|µ²ôªBífêê&k6N‚Á÷p’ÖÝS­—Wwå:êœúKoXÓNKq(>o–¶^•H]¬Þº·vìæ%ר’$›M†­ùv܍KaÅ|lè>’Õ„ݸ>o–¶^•H]¬Þº·vìæ%ÜjÖÜ“©°Õ¿.ÌÃ2µ[xÛÇÇ%Úa¶ýrܹۖz\¶d»i†r·:ß‹ôxa­ú[–åÂü€3pŽÎ›¦ææÄERwª#‰õŸmîFð}0ØØðÃ:æýkȯweË.gfÉ«/Òá~¸åã;îÂæäãLîÎøÎ/Û3·­7;;·.\^Ü“;ã¸ø¤úv䝇o,2ãÇÒò2ݘðÆ‚ÝÓë¹$̓ߴÂûí£ãŸ||}Ëœ±rLCÀ|—¤Í<¶âV™§(Æša§0oCsm“–·»»š˜´É¯BÐ}ð³7ÜÝ]ÔÝ%]UŠÎõqDZ›““‰äs·LØ8i§Y‘5Qw=ÎÅ’«Ckf
+7/nÒæÎy:hWÜkÝ7BDÃMæÎ™Õý¤•URÂåãRÙ&¦ï8¹mÇl­ØÝA£{)¹V±0ÆB=Ýà Zæý1M²Ø§ö	³¶óí¹væ}F“ë.ÜÉŠŒLwÞfö5<ÍeŒ<˜ï¼Í÷Ž&3{·
+<˜÷<Í÷Ž&3{·
+<L<ãÓ-מ&L·]j°hòcÜó7Þ8˜ÍîÜ4òcÜó7Þ8˜ÍîÜ4òcÜó7Þ8˜ÍîÜ4ô†OXñìΤ±Üèg0I²Ç,Ãr<1î<ÍóÇ!™nõªÈØñ2zÞugXºtDë_$ÐÈ<ãÆkÏ&[®µX4y1îy›ïLf÷ny1îy›ïLf÷ny1îy›ïLf÷ny1îy›ïLf÷nyZãÖ²®æcÓÄâ2®æc³e˜M'¤aç™n½áÄdËuݸ4zyÏLkÏIÉ2ïX¬MOrxËuéèrI™Ws1Ù²ÌF£ÄÇ«™æfë3ϸÌëUƒG‘‡œzeº÷‡“.»—$Ù<·L«¶½=#r(ìý–9f˜t:¯'¢ÎµÜî )vZû7Œ4á–uy՝k:4žeÛ™­V
+LwÝfºjy›»pÓÉŽû¬×MO3wnx™;o»
 n]¸ÉѤó.ÜÍj°hñ1ßgmÖn²ta<ÍÆfµX4x˜yçf[§F“Ó-ÖµX4zc¼¹É³­6v{¼æK{wzL<ó³-Ó£Ié–ëZ¬<LwÝnÕÝf΍3¥±Zhp>W³ö4ìµ:ML·rÜÍl¬&“ÐÉÛ}Ö]Ë;&Èó.ÝZÉ5<ŒwÝfî㱐ó6Ýj²6OIŽû¹Y®ÆÉ|»»r6<†GmyÛYWs2:MCÓ*îf6l³	¤ôc¾ë7¦žfÅ=&;ï3gMfëU†ž&yÙ–éѤôËu­V
+C#¶¼í¬«¹™&¡é•w36Y„Òx˜ïºÝ«ºÍO3q™­V
+wݘÙÙ4zeÝˉ©àÎÙ}om™nÇa¡}µ–ãfË1¼ìËtèÒzeºÖ«&;î³]5<Íݸiá‡}ٍM™wrâjx2v×§L·c¨ÐöUÜÌlÙf#Qá–|½ùgZÏ€ÐΓ­i¢@h0,>S§ÊHíX|¦rGj77,Âi<L:ó³-Ó£Ié–ëZ¬<Æ÷95ÖµÔgmóÓ6v5Ûs5ªÄÔñ0ëÎÌ·N'¦[­4H
+¡–|½ùgZÏ€ÐΓ­kUƒG’dí—Ý·.ÜaÔjO2í&Ò0Ó™…Ÿ"Wå‘Ú­ŽÉ6HöUÜffcM)‰5'Ã¶¼í¦nfGdl™Ws1³e˜MèeŸ/~YÖ³à43¤ëZh<˜ïºÍtÔó7v᧤‘6	]Á1Qb¢*úVªT*,T‚§Õ>iU©Š¦æQ>Y’Y2•ï™R¾iÒj•t™P÷Â{«ÊË,½,½v^–_ßUWUUÕuNª«ªêªªºª®ª¬êºªª®«ªqUU\UUWÅUuU\UUVªªª©ªêªªª¸ª§UÅUjªUUWUUUÅUUuUH?¿,‡”U“ËÊê×YV­^¯V­^¯UÅ«ÁE…x(ðQ࢏?zUUUUUUUUUUUEUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUTÿ*þ¤ü—Sö6]MÙu?VË®JÉú¶]F–F–O¶]MÙu>ÙuÉY%dûeÔÝ—Q­­Þ‹fâÙ¸¶nô[7ÍâÛHJÉö˨ÒÈÒÈÒÉöË©öË©+'Û.¦ìº›²ê4²4²4²}²ê}²ênË®JÎJÈÒÈÒÈÒÉ».¦ìº›²êÍÖÚÞ-µ»ÑlÜ[7ÍŝF–F–IY9²ênË®JÎJÈÒÈÒÉ+'Û.¦ìº›²êseÔÝ—Sv]MÙuÉYÉYÉY>Ùu7eÔ
 •“¦Ë©+$¬’²JÉ+$¬’²JÉ+$¬’²~fË©+$¬’²JÉ+$¬’²JÉ+$¬’²JÉ+$¬’²JÉ+$¬’²~}õUUUUUUUUS5UUUUUUUUUUUWUUUUUUUUUUUUUzªªªªª
+ªªªªêªªªªªªªªª½ZÖ½4 AÕu]W Öªõ 꺮«Ô5­kÐ u]7²I$M4ÓM=’Aè†üa5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+5
+°š†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Ã	¨l	¨l0š†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†Àš†ÍÔ6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6Ô6ã9Ö¹çñœë\óÎøÎu®} I>%DUúÕV©	OZP½”ï¢Ü÷OŠœªIÌ®i\SÝNesE.òt'S°‰%*x‡‰âzO!䐇“Ây'‰âxÔGS¢tœ$Dñ:'Pæ§2ºS¡T!Ãö„é^w•çz«ƒŽ8qÄá®ÄãMMiŽ0cƒM8pÓF§i­85Äã4kN&Ÿ÷¡"AÉÇyï;»Úzþ«×  É`2X É"cn(V 2XÊ€’Ic%€È!XB2…c%„#%„!c(V€ É` )Œ–  2…c%Œ‚€’JH„ ûá>pœñœ÷ëyÓŽ5­üœsÆ÷wk\qî㎛ëòxë·MmÜ÷ªªËªö]fe{×u÷E«ê7¬Ãˆ]´öåÖJÊ%þÏ¿?>û¿]úý~»õú“ѸïêÓ¨ìj‰Ó0ºÚíÌ‹"Úum¬gÄöÚ›ÝÔî’LÌÎ(vâsÏtžÇyììj‰Ó0ºÚíÌ‹"Úum¬gÄöÚ›%™Ž§t’ffq@à·ž{¤ôn;ÎgcTN™…Ö×ndYÓ«mc8î'¶ÔÙ,Ìu;¤“33Š ݸœóÝ'£qÞpë;¢tÌ.¶»s"ȶ[kÇq=¶¦Éfc©Ý$™™œP8íÄçžé=Žó‡YØÕ¦auµÛ™E´êÛXÎ;‰íµ6K3Né$ÌÌâÀ7n'<÷IèÜwœ:ÎÆ¨3­®ÜȲ-§VÚÆqÜOm©²Y˜êwI&fg»
 q9çºOFã¼áÖv5Dé˜]mvæE‘m:¶Ö3Žâ{mM’ÌÇSºI338 p
+Û‰Ïwtžë¼áÖv5Dé˜]mvæE‘m:¶Ö3Žâ{mM’ÌÇSºI338 p
+Û‰Ï=Òz7ç0ì;6¨3­®ÜȲ-§VÚÆqÜOm©²Y˜êwI&fg»q9çºOFã¼áÖv5Dé˜]mvæE‘m:¶Ö3Žâ{mM’ÌÇSºI338 p
+Û‰Ï=Òz7ç³±ª'LÂëk·2,‹iÕ¶±œwÛjl–f:ÒI™™Å€nÜNyî“Ѹï8uQ:f[]¹‘d[N­µŒã¸žÛSd³1Ôî’LÌÎ(vâsÏtžÇyììj‰Ó0ºÚíÌ‹"Úum¬gÄöÚ›%™Ž§t’ffq@à·ž{¤ôn;ÎgcTN™…Ö×ndYÓ«mc8î'¶ÔÙ,Ìu;¤“33Š ݸœóÝ'£qÞpë;¢tÌ.¶»s"ȶ[kÇq=¶¦Éfc©Ý$™™œP8íÄçžé=Žó‡YØÕ¦auµÛ™E´êÛXÎ;‰íµ6K3Né$ÌÌâÀ7n'<÷IèÜwœ:ÎÆ¨3­®ÜȲ-§VÚÆqÜOm©²Y˜êwI&fg»q9çºOFã½iÔv5Dé˜]mvæE‘m:¶Ö3Žâ{mM‰ŽîêwI&fg»q9çºOFã¼áÖv5Dé˜]mvæE‘m:¶Ö3Žâ{mM’ÌÇSºI338 p
+Û‰Ï=Òz7ç³±ª'LÂëk·2,‹iÕ¶±œwÛjl–f:ÒI™™Å€nÜNyî“ѸïZuQ:f[]¹‘d[N­µŒã¸žÛSd³1Ôî’LÌÎ(vâsÏtžÇyììj‰Ó0ºÚíÌ‹"Úum¬gÄöÚ›%™Ž§t’ffq@à·ž{¤ôn;ÎgcTN™…Ö×ndYÓ«mc8î'¶ÔÙ,Ìu;¤“33Š ݸœóÝ'£qÞpë;¢tÌ.¶»s"ȶ[kÇq=¶¦Éfc©Ý$™™œP8íÄçžé=Žõ§QØÕ¦auµÛ™E´êÛXÎ;‰íµ6K3Né$ÌÌâÀ7n'<÷IèÜw­Ã¬ìÚ¢tÌ.¶»s"ȶ[kÇq=¶¦Éfc©Ý$™™œP8íÄçžé=Žõ¸u›TN™…Ö×ndYÓ«mc8î'¶ÔÙ,Ìu;¤“33Š ݸœóÝ'£qÞ·³³j‰Ó0ºÚíÌ‹"Úum¬gÄöÚ›%™Ž§t’ffq@à·ž{¤ôn;ÖáÖvmQ:f[]¹‘d
 [N­µŒã¸žÛSd³1Ôî’LÌÎ(vâsÏtžÇzÜ:Îͪ'LÂëk·2,‹iÕ¶±œwÛjl–f:ÒI™™Å€nÜNyî“Ѹï[‡YÙµDé˜]mvæE‘m:¶Ö3Žâ{mM’ÌÇSºI338 p
+Û‰Ï=Òz7ëpë;6¨3­®ÜȲ-§VÚÆqÜOm©²Y˜êwI&fg»q9çºOFã½ngfÕ¦auµÛ™E´êÛXÎ;‰íµ6K3Né$ÌÌâÀ7oémeÝ]ÝÝÝÝÝ]Ý]Ø–%€’!<”+ ,e
+ÀI$±’Àd¬!B±’’‰±”+@ d° ’!,  e
+ÆK+ $” ‘­ïzÞ÷­ï{ñE/×(Š¿æQ	èˆIïÛ÷>åÝÝÝÝÝ»›—w at l糜 l±¬d‰ÌFÙfÜ lçe›p³†§\lç°e›q’ÆÙfÜlç
+1³œd±”‘•n6Y·, Îp I×’ÆÎp ¶Y·9ÆÎp„lçe›iÝvÙÝÝuUUUQUUUQQUQUQUQUtÌpÀÝTEUTEUDUUEDDDETDTUÜ<w<lñëxñãÇx¨€ %€É`$ˆAO e
+ÀKB°’I,d°+FP¬d°„d°„"A P¬! ’À e
+d±’À P¬ç9Îs†ŠÀKBNœFÛ»nîªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª®™€nfºªªªªªªªªªªªªªªªªª«¸`nÞffÛ|%WYDUÒ	ÓŸ/WŸ«õûÚ“Ѹïî-:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNé$ÌÌâÀ7n'<÷IèÜw­:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNé$ÌÌâÀ7n'<÷IèÜw­:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNé$ÌÌâÀ7n'<÷IèÜw­:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNé$ÌÌâÀ7n'<÷IèÜw­:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNé$ÌÌâÀ7n'<÷IèÜw­:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNé$ÌÌâÀ7n'<÷IèÜw­:ŽÆ¨3­®ÜȲ-§VÚÆqÜOm©±1ÝÝNëmÝÝüN}ÞÞî	æ’I$’I$’I$’UUQÅUUUUUUUUUUUUUUUUUUUUUUUUÓ0€nªªªªªªªªªªªªªªªªªªïŽñÜñÞ;¶xwd  ØØ
+€
+ŒˆE±·@Ù`ccd-€
+Œ–666`BØB6BØØØB66„Xcd-„  66 0aØØ  Ùccc`BØ ØÉd ÈÍÝÍÝÍÝßó‘q;÷íî\kž~}Õ­Ó]ïzy%ÖI÷SŽLP9N¢ãDqUq]çTAÅêN–e¸yÄG›Ç‚"æqœ@k3ëÀ´s‘öŽ“iöûæû~×~ækɍ;àñGƒîªy³,ñ¹;.iÞ£žrÁOn!îçZ\ø;Öî<úñ¦û‘ÍØ”5—Ãt6ŽùDS¾MÔÔ²4ÓPÔXÉÍÃÛ¼^:ëLj»±®õãÇ‚žïÜn%§Û¯ާÛKOlõ¼ç8æg-³m@ä$>kä÷Êuò{ÞÏg¾Sϐ<fÀò#ô8ž‚‹<U‰ìð©ê†…pÍwØqÏT}né¥y76Ñ7mͽ˅kºFòÑ6²wJ¡Vœ÷ʾžõ¡íì<™ì¢r¡~IXra>–±=ïg³ß)çÉï{=žùO>@<A˜{ȏÐâz
+ DñVs0âê"ªñɇ”#÷³Ùï”óß{Ùì÷TóÔ÷½žÏ|§Ÿ x<Ì=äGèq="x«<f0ò'Ê¢¢eDGØp:ªUJ©JJ©U*¥KXR’”•RªUJ©R¡J‹,‹IJJTX¡b…)*T¥J””RQIbËeJJ)*(Y,‹%…’ÉEBŠURTT*),”Y(TRT©b‹%
+ŠJŠ…E%в¢ŠJ)(©),‘Rb¬–S&L¶¨‚«å™spéߦ®¿É‚Oá*T’’’’‰R¡P¢RPéÔëÍ5<Wþ_}ö}}¿zþ5ݶ[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[e¶[Ù÷ÙŸfgowNë-²Û-²Û-²Û-²Û-²Û-²Þû>ûìŸöžýRÑ>ÔϹ28_ãî@é#Unñš•”ÉY2dÊ•¤XP
+­USâTE_¤ý³ü T¯õþØTAPYe˜DXD at D@TAPYdPe–Xe‘…–F?YúÀ¨*ˆˆ‹0ª"""ˆ³",*ÂË ˆ" ,²ˆ€¨Ë,Œ" *
+Œ²ÈÂ"Ë ÈˆÂ"2"""0‚3,²Ì" *Ü3÷0?p4ÿDDEADdE‘DYQ–YD–YE•aeDEYVYDe–ADDA–YDW3˜`q þ¶ÛûƒtÝ8~¿¸a˜`Æ(  ‚‚‹0‚, "   ‚‚
+( Ë È€³(ËÈ  +2Ì,²21Ö?OîŒ33Á‚  "Ç€ˆ€ƒ,ƒ,Ê2Â,˰ƒ,ƒ  ‚ƒ0a2a0cI˜™˜Œ€‚‚2ŒŒ,Œ "²	ƒ2UŒb`ÆÁˆÆ#$˜bL‘“	ƒ0Ì>Uý'(¢¢¢¢²2Ȉˆ" Š***+#, ¢²" ¬Œ²È,ÏÝEADQTª–RÕU©e*•RÊU-,¥U¥¥”ª–R©TªUJ©J–RªéÃ_Ö5­Óöw÷B( ˆ Š Œ²Ì"°‚  ˆ Š ŠË È"
+2#"³#&HÃ&#ök¯àkwMn馵£MkFšÖfMºcZ4Ö´jkf“MnÉ­kc[»›6i5˜c[¦šÖM›4škZ4ÝÔÓfÍFšÖné¦î¦›6j4Ö´jlÙ¤ÓZѪ­kSMkFšÖMkQ²i¦¤ØÙ³I¦µ£[º}MD8H2g¿33UTYdDDDDUUUYe‘TE–YQe–Yg30ã¼ 
+ƒüŸ½þ¨" *
+‚ ‚È2‹ˆˆ
+‚ ¨*,ƒ"€¢2Ë#ˆ¬È²Ì,²0ýó÷Ïß ¨" " ",¨ˆˆ"¢2"2¬,²bˆ,ƒ" *2Ë#ˆ
+‚£,²0ˆ€²È2"0ˆŒˆ€ˆ€ˆŒ ‚3,²ˆÕZÖ«ù‚+áu¨}ú&C²…”–URôS!2™*©)D¤‘P¤
+…HŠ”’T¡*J”‘IR%Jˆ©P©AIQ”J…JJ‰R‰P©D©H¤¨*RT¤¤©%%JJ…B’¥I)*”…J…%DRT0É,•ÉY&%e2†S*™2†TÅL¦@ÉYIeLC%eJÊb¤Cà•"Aþ¸ÁH$H>²åªUªZZÕT­Ñ?Ç™±.ìÖÅùþÄ×R_O&§¤‘0ÉV*ʪ¤H~OŸl±Ë•ÉiY»³º—î,#’Dõ‘"e! 9ô²ÙhªõežÈžíÆ3ç½¼}áÒMñð´²Çʐß@ÉÂ<øUUUUUUUUUUUUUUUUUUUU}™™çÆåŠ.88¢',÷¾´77Ø›‡½ŽçÄEeñ­lÜó³–Å‹%‹+æñäç>I	ÈGÎ>n¦½Ç99­Ñ¼å¦·vlnšÔÄÃL>nzvªŽä¸cro..v¦\ø×`œN¦°ÄÆ&LŒLfF*b™˜lÛUa’DÒ$~I!Ÿ)ö²cãïÛò­¿u¾™ó(Š«qéY©nîŽîÏO¾!Öw®®k‹žû yE)©“7Î
+;»ÎéÎ"¸|‹†¡lg¬Îðç7vߣHh¸qW»Â›‹²IdpûÙ×ÓO|Þ7\›2ÏusÉcYèçÞrlË>7îæ¥ÓÊûÎyä¹¹æ×‰¬¦º¸p¹Ó¯¥Ï¢)jwxªq…5Ãpæoפû¼×cR™q'Ÿo-¸®ý?rQ¢tù9±µ|üúa¢u;±>À3<ÏgO|+컝ÎçNü+܃¦G0é‡s8§¼YYeí4ˆ¬“,fyDEGÍ•0É8Ž&›žÎ*p½í9[·N\çW«§®JåêÎvë´9lÇ‹pxϓ͜~؝gÛ]W;™ðû»”Býk¦‘Y&^Ïg³Ç~î]Îçs¯umôÁé=UTzØ`ʲшtñee—´Ò"²Læf©¯+™NF»¹ G³Ùìñß…úz§s¹Óî–ÞÌôôôóÝ[}0ô=VG‘é9kçÅ•–^ÓHŠÉ2`yTÃÆÌâç¼XÌ£zÕˆp8xè\4ÐÓ9q^О$¥ø¡;¼;v·»O9é›Î:qÓš¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛ´ª+nÒ¨­½Ÿ}™öfyEÝÛJ¢¶í*ŠÛ´ª+nÒ¨­»J¢¶í*ŠÛÙ‚xÜt댰¼2Õ—ǍÜñ\.ú‡èR.T¸ãÆw©j±Kzò®)ytf$WNNB=×ë³÷QVØûûôÍVIW…RéquwÙÞÍ®ºÐ½R©*ËK#7¯Ü#ˆšç“f¸„tÈý{³÷b_Ì2þü¹/¶LÚéúÅdçµ3½Kz»ëj]‚o–ÔµÏ7Ÿ§×Ë×å8_ɉOÒI7í¶ÛUUUUUUUUUUUUVÛm¶Ûm¶Ûm¿§é>¶g×
+„ky21Ç!gëôïÔ?Tév·œ“#ôRñ„åK›¾ºÞ
+ïRḭ©n¶››RÜܶð›[Uº¼UOB5 ì:†A&HÉ„l#SÇS°Ùã¿mÙ‰ç‡ªªªªªªªªªªªªªªªªªªª«ñŽÑmjšKSŠê¥Äp§Îœ#†# ÈÈb×!‰Ød™ÞuòXGÓÉÎÛf,ûݶdý„u׿‡£àÎrdää™Ë»Ì™øü„oyé¹ÈE:±Ÿ-Å|ÅÌËHü@Î~ ûʪªªªªªªªªªªªªªªªª­¶ÛxÈGÅ„Y²ŸSaù*"¬‡•p¥¸miKUÃ93p0ªªªªªªªªªªªªªªªªªª÷7˜„a‰ˆGXE9!–øú«_ŸŠúþ/ê~¶êîï¹~>cn³$;šù™#WtÕIRguj.|‹¨û§½dºåš­e¨ê.xOnZª8q4sS63Î/NfóOƒ…ömæóhàŠ}Ç=äêYÏ{$¼y^pãs™ãÈyÂA3à÷}m;ìò”x8tëžlË4Õ•˜×2Ðê"ƒï9æÌ³Æäì¹§ÛÄFáÇÝ<ëoâ.§6×ar^|¹5ö›¢Km-Ï7ÍkQ·rÏ\æmÞ½çÇ;޺뜎U¶rO–ôt;Ü:ªŠ(+'.µÙTD»lê,âöÅáÞ ö>á_¦LñÏyç\çqÎIËK%[8ž¶ôxöÉË̲rrûÏ:ï8ãŽsŽ8ç#•mœ“Öôx÷“ÕOIë|<{þÈ„’sÏvi‰•$2¶émµü$‰Ö×SVOé$‰û÷íßßï;Ìîw¼ïÃMc
+5Œ4Ö0ÓXÃMc
+5Œ4ßK-Û¬a¦±†šÆki¬a¦±†šÆki¬a¦±†šÆki¬a¦±†šÆki¶YnݲËví–[·l²Ý»e–íÛ,·nÙe»vË-ÞϾÌû38•Û¦±†šÆki¬a¦±†šÆs>ûìø™ß	bÌ™®ä|ï#wñôªQRTKªU(X’”U(©(©>?JSä:É™‘ñS,É™"Ù…™G	üB0âs!°ŠlSll"å»2ŸÈrééÏ/âÙöÁªË.þ›	ÝÞÌee12•˜ÌeXL\AAïáUUUUUUUUUUUUUUUUUU[m»õÙ‰°$1Éb~œH1Ä–rWèž„c‘,ᰍIX·a±6<9ýqê<œù(«b8èìŽr"=øXG~ÞüU¥nDfÏl~zÙØ}C#$ž&Í­¥´•µm²mE[î.äì#ä:“½ˆi¤`9Ù"lF
 ˆü7Éæ[m•ù‘¹×ÏÕ´¥…±m´QUm)JxúXGÈ9ü„~„ԍHtä#’"#„0ˆVD,²Å•†n-¥m[Tdd²&,•„™YKÝ-Ãqo$[U°ÐÔ­#¾r¥Ô‘9ˆ›øo¢ÒÒÞÙ&~°y9ˆ"½UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUÜÃì0ûj[«i•ƒJZi]fÔ»8®'IÈGr<ä#‰œœ„rs“‡‡aHz„}|¾2[Uc¶Ev)o-N²–÷µÚuRæ‘ssÊ»N	%ÃŽ)Ê—
+ál´•£QÒ¸RáQ¸N›Š²÷ñ~øZsÿ¿†h˜s¦þùøP€y¹5/(ÓÝé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBá“Èj´Íé¢açL!éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<XõR­T³Èi‡M:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€xdò­3zh˜yÓzy‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä <†«LÞš&tžBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ðÉä5ZfôÑ0ó¦ôò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃÎ
 ˜C§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„Ã'Õi›ÓDÃΘCÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„ŏVùF™½4L<é„:y‹­ò3zh˜yÓtò=[åfôÑ0ó¦éä ,z·Ê4Íé¢açL!ÓÈ@<Xõo”i›ÓDÃΘC§€x±êß(Ó7¦‰‡0‡O! ñcÕ¾Q¦oM:ažBâÇ«|£LÞš&tÂ<„Ã'Õi›ÓDÃΘCÓÈ@<Üš—”iîôÑ0ó¦éä <†«LÞš&tžBá“È{™¹±kU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôòžCU¦oM:aO! ðÉä5ZfôÑ0ó¦ôò7&¥å{½4L<é„:y†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdò­3zh˜yÓzy†O!ªÓ7¦‰‡0‡§€xdòü÷߃>ûð}ù2}‰fe’zb¯EìÊ–”¸ŒN’MN–$ÔjL›,6#!±Q°Ô«‰Rî+‰º©–Õ‰68LMICf¢$g)\Iq'8AÆFªÕ¤NI#Ì?©Ç)]"äNV-Ò,Ä,Ä,ÉVE1"˜Z¶É„TȵF$S*–0Š“%“ ¦,^¡$å- ŸºÃÕØGI"=q–ϏÏÓÌůÁ-Xワd$R¹ãÉÄW)¾tÖ+'~T×EÕ>²u¹òv󊪊»¢§^sˆš"â#œeÈ
 ÂÜ>pGãϪ/¶åŽO&47Ú¤2Y¬KŸ<"žóÏ)GƒaØ´ò»wËžaMLÜ<o¼¢ÓªŸxóɍ;ñxÖñ¼ïÆáÁbεç™öläÙ–xæñÁX‚àqvц'^«<D©Ø¸ç=ºÛqçÑ©o8ó'yó½áóÇγ¬ËLj¡?t÷||}Ó׏ñãîø`ð3ÙáO(ý
+z¢ô(­žDGÒ"Š*±}óxû5œ–IlSw7z³t×®7œÓjm·s\EƒÇ{b}}g})xò¯TíOY†ûE¼xïŸ{Ëxñß>>÷–ìÈ #<xQ|§Èú(¨ò*}ŸŸ/Î*üÖ|â-ãǼsÃßy¯ñãÝðÞ<{Ǐ»áƒÀxÏg…<£ô)ê‹Ð¢°xìö/‘>W=MžEõ`˜A¡ã>?YºËuã^!=Á9ïéÓÃÏ~?>ݺõéÛ]·Û·n݈Ój©mU#Mª¤iµT6ª‘¦ÕR4ÚªF›UHÓj©mU#Mª¤iµT6ª‘¦ÕR4ÚªF›UHÓj©mU#Mª¤iµT6ª‘¦ÕR4ÚªF›UHÓj©mU#Mª¤iµT6ª‘¦ÕR4ÚªF›^üüûóïϾû»“«¯¹R4ÚªF›UHÓj©mU#Mª¤iµï¿???>ü~ï¾jßårVRGØ%„n!dË#"XeZ™"ÈÅLIJ™Z±²É’J£$¸±L›QË$Ž ?ß*Ùk&fI [	‰aßÓ#*#’ŸÀIJx#’(‹ Q(Š’"¢ˆòA’0E‘#I"dÏ_´çż’ê”ïRÒºT°¤eLI”±RÊX‚Ê–@(‹ Š"ÂQ\Y=YOVY>Õ¢|L„bG„XŠ$–T,ì‰„%‘œ`ÐŒ™2H+µ/Êz±n2=U@Ǹ€b€%UUUUUUUUUUUUUUUUUU[mØáö$L“HO»
+hF$ÆÉ&`ŒËrÈ)ŸlœTcîOЉâeB\~Ãûm‚Ù%¶Ûm¶Ûy$}²J‘Cd‘0Œ°PŠ…BKÈE@Ï‹ýŠ™_vÕ”YÑ3꥕uªeeCªî$ŠÊÀ‹D’ÐŽòÛm¶ÕUUUUUUUUUUUUUUUUUøƒðªªªªªªªªªªªªªªªªªªªª¿–uÏ6eåû?+ö~ü,ȯ•\[=†ˆ©±'QÓy,¨¯-vù5Dx|.uq¬ô¢(V½ˆ8‚ˆŠÀ¶fë‡\>÷%ׯ9Þq$‚4×–ógŸZ«óœlË8{>|Kž9÷O<˜ÒƒJÍwÈ«
+ã®/;àñY¡ß9Ô²<}òtv/Vޱ®)Â`ÝN"Ž÷õï+ÎmÆÃQ
+Ì­ä¿{äIó?nÛ®•rQ™:ë¿wM9ÍÔÖØ®òoDêk;«×—vã{"DçÆN»òü÷žžw×Þ:L;™òçA:ªw:
+¯j)‘Q0»š©ðñZŽ£¶2ª™šNšõCç:N¹ÜÍ\ø‚·Þzyß_{ÏO;ëïO['¡†G‡OÖÛnŒ4»Uo¼ôó¾î{ÏO9ëßyéç}}ãÃÈô¶x¯[kLJ‘áÓÅyUüÎ([d¶S0Ì3U™,²2Êf†a˜X²ÈË,U–FX1ŠU‚ªKE¨ªBªKQT*¡eˆªKd[ÊE²["ªTŠ¡T•Hª’ÔU%R*¡eHª’ÒÔ•BªX‹,‰eHª’ÔÏžwù¸qÀeˆËm¨rÛ'ñ$‰×]8éÀàpLáŸÇÞü^ÇO¹Þ﹯½îóÝÓ/ÀL%™~a,Ëð	f_€˜K2üÂY—à&Ì¿0–eø	„³/ÀL%™~a,Ëð	f_€˜K2üÂY—à&Ì¿0–eø	„³/ÀL%™~a,Ëð	f_€˜K2üÂY—à&Ì¿0–eø	„³/ÀL%™~a,Ëð	f_€˜K2üÂY—à&Ì¿0–eø	„³/ÀL%™~a,Ëð	f_€˜K2üÂY—à÷yî﹯½ïÀ{ì;áµ(ñqÌÈ3³0ÀÂÍÏÄddRªªªªªªªªªªªªªªªª«™™™™™œu‘òE]u
+:×lϳìºlñœ…'Ù”•VÈ’XG¤HëӅͶ¼™Él•l-W¥³E\UUUUUUUUUUUUUUUUUUUUè;—ÎE·ZôæØ¶¥µè*Û dgéÒªªªªªªªªªªªªªªªªªªª«ã0*Ø}»^|³6Õú6FÙm+‹E«-"Dƒ¨ˆ‰0„Ƈ㠀Œ¥UUUUUUUUUUUUUUUUUUU_æÉŠLT‚Ȫ“P"
+1e=õÈk}^ÕµgÛ˜ŒÇáUUUUUUUUUUUUUUUUUUUW¦æf¡„˜'^k’zšë]Ž9IËm³úfvÔ·7K at 0¯UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUwü‹ÇåÜ‹Žß“©Ólr­Z-œ™öêìA‚ó1ü*ªªªªªªªªªªªªªªªªªªªû,ÌDÌàççdRªªªªªªªªªªªªªªªªªª®fd—å”E_Ü*§+}¼3^9àíã­ZwOŽéͦ]r÷•8"lnä›7æ5™G,SYWî§\$Yp™Ï+Ú“çÛß±x€ââäf臨$8n>Rù6ï¾Þ,ÍñÏ9Ö̳‡{9%‘Üܝ˜Ð÷|‚¤X^¢œöuôÆç§¼ç=x<Vhov5)Ⱦ3‡ƒÅgƒaØ´ò¦œsƒ‘9.èæï9"ûuúæ¼x–ë»Î;BÛö©Åß­\Y¾Ck–Û}W+œæód€Ÿ7“Î9Î8àáÄäŽ['‹--”«Èå«j”NS¢â⊮g׋œ8pÈŒµlqÎqÇçpp¢œN#–­ŒL‘–ÉÇ9Í·xç&8ç8デŒÃЏ®'Æaë¡:Ü×[‰ºÇ˜²f<™Ÿ“Ÿo üO>ü 7Üpw¯¯>ïRî¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆÙº±…6n¬a@Í›«P3fêÆ
+i¿~~~ŸÍûß{í;G,¶O·;–\Û‹2	
+‰¯êHWÉ$KÔ#î>ŠsáÄ¿xÅœ@ÕľW4ÌÐŒý’¿fªªªªªªªªªªªªªªªªªªªªªªªªªªªªª©À€áø³ ¬Ì0ŒˆÁÉpÇç‡ÜüÙòÍâvUÙž`µ'®k7nfTÐÇøØÃƒï$’.2Ac2$ŒLȈa™ ¸˜ˆ¥‘!K$‡ÈäŸ~âgÔp¬Ö;¬YlŽÛYxÖÕF°E’Ç¡Žáß9}àP¾ÂÂá7rp’2íëm†ˆü„}øåI,‹%„±ãÏŒ“´›iÛf(Êsy›f¸†9˜ dAú
+UUUUUUUUUUUUUUUUUUW33:,X,X`¬Y)•‘’Ôpës¦)œq£Ñ6ÌPåÊæ°E„å¶Ù©Ñ‘T…–$´B™î3;^¨Ö¯vjb•¶ZUÊÔœ’CŒ”HüI÷™Ä¼q^÷Ä4£ßd’‹ähw¼WÌ)ðÈ¢ªºæ›ñöÎ.¨Ë¬„É;Ï”S®#
+[«§„W7zœÄCˆ8„N.B‹¦ˆ¹Ÿsy»»EÊç2~%ζϗé\Ô¾:«ï7NùÍÔÔ²4Þ}ÜÏa¹—ÝÅ:?gÏ	sÇÞëžy1¼G9„‹‘9=}1¹A¥f…"䛸…:o¹l¨í	Û[±ÃNoÜ®)¾§Ž/RïܾEÖÞï6^%í-'o½ãÙÞ¯}ž÷g¼ú}ž€ög‘}
+"¥CÁžÏ¾ZaUL+ØkåõV黈—˜ÝcuÓÖŒ0îŽé¥;»B*.(>Qñ×µïrò¯³:Õ"*üÔç\{dzÞ_Ï{dzÞ_σÀA°=ê‘ôç‘S`q刨ãÉ.aïxö{Ï®Ýöxö{Ëß³Þñì÷ŸO³ÁàðÌò/¡DQô¨ysƒÀx+ñJWÌXøOç"H䜶–#–ÛSù[m‘ËjrÛ$ŒÃ“5ÄâkŸ~{ï³ï¿/ïËûã»}¿·™Ÿ­ÏÙ—1Yï$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV{É·Ÿ$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV|‘ËqYòG-ÅgÉ·Ÿ$rÜV|‘ËqYòGwY=äŽ[ŠÏy#–â³ÞH帬÷’9n+=äŽ[ŠÏy#–ã÷ï­ûóßyú~§gåÇßËVÎw&Md(ÎC¥ÌlNsù*ŸaÎv'*Gíe™Q’X©É#ñ³ó3Ÿ‹R©EáhhhBôtp{9ËartNÈÅ‘R¤©Q'ëãã×åù‹m•912,ø¢ôåu9šÉ:+hɰš‚ÒÅ2ºÙš‰–$¯žæ|÷ªÛe–϶<Ô©“›ì”ë¶ùm·,ä<¯æXG×$’ZÅ“*EŒRV%*Ë
+‹
+” WÇǹbß™'v>óƒbÉå,ߟ2Ìdât#pIU>œJ$(	aûD$c·k:ó™†S³Ní[·2qa“}ÙÑA$æ›ùªªªªªªªªªªªªªªªªªªª«~¸Kñ'Üúãå¶•ö¤³
+ÈÉc«7q“¶nÌäªì¥¤v²§]Dµ#%Iæ1ñU§Ê’äf*agº—#‹K^»zI5ûO°¾’I‰ò¤ÝŒC"©,YbYX«+ÁâªT®{s
+4?3Ãù×àwî‹ó./˜JßN4|š“2«)}ޤÆÖÉò²¤Î=çz¢z„Óm^:N#|ýÎ{–"f¨…„‘Y:iŽg»}öºæ¶eš6ö¹ôíŸ)Gïä¼u^ç%Ï¢)œéä<9‘º!¾ù:"›©}ÕN¶dxû½ÔòYæRq
+T²G
+§=©ä²=›“³”¹©cY°&FæúZ¸ë6ë»õqÝvÞVýœÛ•E׿×èç©Õ6Íuôóxñç}ãÇ>{z}ïx÷Ÿ^Ÿg—Ê({3Þ©òÊúT„=ž=•JÔÒ®({\×ܽµN%Cæ-¶jÛÛ5ÖÆík«dÉ&p÷ÏÍéöz‡èóËÆyú¨L¼™Y{Þ=ç×§Þ÷yõéöy|¢á#‹žÌ÷ªEÅ<²¾•$9™Ç–"
+s'‹ |(,0ø=++ÀŠ+Çáï÷Þð{3Þ©òÊúTðxðªÉòߊ[lù2¯ÅV)Çž8þGûï½÷¾üÏ¿3ï¿gÌcúßÖvö–&´Ç[SZc­©­1ÖÔÖ˜ëjkLuµ5¦:ÚšÓmMi޶¦´Ç[SZc­©­1ÖÔÖ˜ëjkLuµ5¦:ÚšÓmMi޶¦´Ç[SZc­©­1ÖÔÖ˜ëjkLuµ5¦:ÚšÓmMi޶¦´Ç[SZc­©­1ÖÔÖ˜ëjkLuµ5¦:ÚšÓmMi޶¦´Ç[SZc­©­1ÖÔÖ˜ëjkLuµ5¦:ÚšÓoïߝûŸ}÷ÑÛiò‘^³wjdS8¹.$÷j受¾	Ä8X•dUeRª['yÅ„ì¹Yc,p{LäímOÓø„r~êÙôêÏT,̇ÞK‘XNl¸ÉØ“øT¥ü¶Ûjªªªªªªªªªªªªªªªªª«øö{¿€\Ã?,(¿-üévä/SÙ$v®ÄœæH´ç3>-m̉QÄܰúúg >Û7†W70ø:‘Ð>3ôøUUUUUUUUUUUUUUUUU¶Ûm¶Û!"AñV–¥YT) &F*Ç“ñóqê“\ŒÌGÇü9tÌû?<LL
+ªªªªªªªªªªªªªªªªªªª¾ÄA1DÁîv‰óæ&ؼ™Žì/L:Ï[mµUUUUUUUUUUUUUUUUUUä|’àaúp#á±ilAüRÒQ#iil¿xü‰"u×NÓR«®}ôúûöVLý¯Û.aAº0 Ý˜Pn…Ì(7Bæ¡s
+
+й…è\ƒt.aAº0 Ý˜Pn…Ì(7Bæ¡s
+
+й…è\ƒt.aAº0 Ý˜Pn…Ì(7Bæ¡s
+
+й…è\ƒt.aAº0 Ý˜Pn…Ì(7Bæ¡s
+
+й…è\ƒt.aAº0 Ý˜Pn…Ì(7Bæ¡s
+
+й…è\Ã>|èOÒ”þ!‘ÁŒj”²–åWé”EZ®·„í;N+¾÷Þûï¯ïËûïÛ~·gí±Õ¢H±iUbҪťU‹J«•V-*¬ZUX´ª±iUbҪťU‹J«•V-*¬ZUX´ª±iUbҪťU‹J«•V-*¬ZUX´ª±iUbҪťU‹J«•V-*¬ZUX´ª±iUbҪťU‹J«•û÷ï¾ýÏ¿~ýû÷ß~çß¿~ýûïâ§ìÈGñ
+Ă
+ÍeUUUUUUUUUUUUUUUUUU\ÌÏ šRÒ–N+¸By!<hM!>y	úT'øÁ?2„÷A;Ô&HO©B~ T'PBe"¬d¨{•Wç	ú*>°œA?pM„ú”'*ˆ«ÿ'쐟`OÝ!>Ù	ÑBx*"­ÐO	DUøÔ*4ªT¬û*?úB`MIWr„ø¡>
+¤Ò%.N’ˆ«‰(O¹Bw™
+²ÌÌ˘Ë3UqÄEWUDqÅUDEQÄDqÄqDDqDEs030Ç0ÀUU\qQÄUU\qq0¬³1æ¡Qö„øÑK•	Nä&(O¹B{%V”'Ü¡:¨O|¢*÷J"¬Pžõ	òÐ ý¯ÛBÿ¸|•ÀUW夽å	è„øÂjQy…UW–J“ÙA6¥SÍBp¡Q¥	ë‚{‚nBpIW¶Q{àŸ:²Û(оY(LHNèL‚tše	Ø'½Byê¡>YDUà¡<è&A<Ôªt”EZPŸ2„ô”E\B~)DUʄثíB}°êÊBw'„¢*ôR©æ¡=ªU;¡=ªm½'PœÊ"¯‚„ï	êR©øeWT*Jꨊ½J„RûÐM¨M’"»Å*ò‚|òˆ«¾Qq(н’ˆ«ˆ&ä'¶Qy¨O%	”a1BiBzä'|„ô‚tTE]%WÇ	Ò”E] ŸD¢*êEDU¸'¤&ä&”ªnÅBwHM¨Ob%yÂw(OÕ(оåDUÔ‘ÖBuš’„õÈOE*ž*JÂQxÈO`MJ"®Ò„ûÊ…Eÿæ(+$Êk#²w€C\?ðßòÿûýÿü … @ýûþ    „_	3ãê³éT   (g¸©N¶²¢•€UM´O# Þ ïCƒ¾    aÐùÜp@³'
+¢è>ØÐ{¸; HA¨Ûª ô     @à
+!Ð#tx!£ÃЊˆ…!* ÃÀ`pl 9((QSÿ`IU$Ä4Ñ„ÄÐdd4a i£ª~¡UPИ&& Èѐa4M
+
+O=U%Oh™€Ñ„`¦@€i䐩5$ÄÐ   C 4   š•BQêmAé4iµ
+   @   )D„D™#F#&@І¦Fšhi²ŸÔQ ý …ýÂWýˆ2胊ÄÈ3…[W,”â¸[MfaýH?O”-)¥&¦‡tªÑ4ažº¨½„ù ¦*¤õÕ
+9Ê¡¥PÑZdQß$Wæóø+”R¤`ˆ_ÃüuÎgÜ"j8û†ÊÄË‘%Š/ º„¶÷57Úc9*øhÄ.B‹´Œ¸înûÞsž4`è:4hÁðÑ£]AÑmº+—Brh	ÍÉ '4æ‹ èrM‰ÍI¢94h¯@–èÑ|0{
+Ý£F½îŽó¾÷~,·à»´u—@®hŽMY£4)3mÑš.‹ïxk|:4G÷¡ï{ÂûÝ÷£”ÔŒ´·Hm;[FÆÚÛ¶€5šîÇ·›+W+6žÐ¶ ª´´JzB’C M‰\ÚdɐµN²kodµÔ¶f'wm¶Ô’šéi$ ®I»$¶Ûl’ !$“vÐ + I-m¢KÝNI	'´“»ní»m¶À¶Ü¶îÚI2I’D’¶É%m¶íI-V´Ø€’9cÖ”2ÆàR©›‚¸7Sv©l7µ:V	$ã"j8fEšòc„=T)P  S`¬›†·nÕ­Zˆ„ã!ê8fEšòc„=T)P „Ñ9šŽ‘f¼˜ÁaU
+T(68N"£ÆdY¯&0XAãÕB•
+M‰¨å–KVkͬÈ™`d+hÖ\JÕ‚MÜ…¥a!ãÝÃ.\•ã6MÒRÝ5m²X–#Ov"Pl&í@@2ᩪIÆCÔp:Ì‹5äÆ<zU.J͹vNB£ÆdY¯&0XAãÕB•
+
+Øæ ‚(œD=GŒÈ³^L`°ƒÇª…n¡A£%r6–ÞáPOp{©0ëK—[‡t	7xÞAˆï7+pn¾&§Íá&Äž»Q¬QS42]Fë8å’Õšók2&=T+hÖÜ„=G,²Z³^\`°ƒÇª…*uH$ÝÈZV=ԥ˕¼fɺJ[¢îÚ܉b1%wj%ÂnÔ-»àn^ÍÙ“·á¹Ô‹rÔ#Æ`
+¡,pnD™2È,Ãsmñ;ÉÞ¨G«XÕÎëïkI}֐ÌSpLѸ&l™nâx͍ã `dz"¡,	 ò(*À·á¸¨2Ápe¨[†e'£fZ@¹b2Ç©b 8ñb`E„¡n[›^[¸ž6Byha0†ÞÍÆôÍÆöÏ<yç[î\Uˆ²à¶KÈ)엝õ¤ôUû‡z™­pvfÜçUÉ¡sµ¾vx‰îðìñÊÑá=ÞEÐúì'3:é-œí¹wwfÛí›´W§€'< zZÍ%•¦XÞ;šî»
+%uü][ïJñm…ŽëUÚªå–Z‰onÓvзwc@!œÌé@À„ïÖÉ"‡*¹­²½“lèâ%À´“<³·2a mI5;Ã.A–]]Ñp‰«*Ûª>3<UÞ›½ä«;ƒRTîªË¯C¼ç&/*ªŽ_ºâ¡3;Ýѧ'dì#šÙ„ÔË«¸3N=n&í´9§E§ÝYC“0ªÎëÉÎV^¡¬i5¿792¼çšªD.0îÙD]në@¬mrÆ!0$»·s)Ð ¨˜ÆäSm˜ÉxÏÁìäfìõ]Û›ZBÎ9ÑU( z
+3ZÓ¶«"„¹Íª¯9¢ë4áÚ¸Bo´Må¦sFò±°ÎFö×'·eØ0Â3“¾¡ÎøÄ÷xvxxÒðžã#ys^èÚ;[;×ô}àøºá+£øïÙݾÔ'$d†zFª¬ç·w7}Í›»e²Ö5ÀÀÏO zOj w».“u]öÍÙB¸Ö@ñsÕ@:›N—ê­©UU2Ûí²Ùu­§Õî»N.¼mÒ5Ôt
+Tå÷°w[[¢1„!p @‡¶Ó£m´•¼æ‹+ZW‚Ý"(¤Ï6€Ù¬*r7Ê·vÃaŒ!''|Ë,8ºÔ}ÅÖY\$]à¤jsÎÁAÖôÝÏ‹¬²¸?Œ»3ns·&…ÎÖÎ.µx>.²Êàþ2ì͹ÎÜš>KŸuKAg/wswwfÛí›´WºOí @‡%•¦XÞ;šî»
+%+ë\Åov¶ÂÇuªíUrË-D··i»h[»±Š0Â9™ÐÏIh1œ½©k°–ú¶Û%00ÓЄç€ҐãIp–´H^7WnÝÀÄl}í¸lךаIU€>ì–Öt„a2~<˜goÀ%üfK“=‘q†dd˜ó½—’9:ÞQË'd‘ÊaÓ¨-"ì왲HĤFr0Žd¹“³y/)ËÉŒîö7½“f1¼£%“³Ýìo{&ÌcyFK'qÞÆòK'crvc9ÞÆ÷²lÆ7”d²vc;½ïdÙŒo(ÉdìÆw{ÞɳÞQ’ÉÙŒîö7½“f1¼£%“³Ýìo{&ÌcÎùšpñ<Ìtó1¸ÎnëËÂé$*³™pÆL²aÇ—³
+æËÞåÈÆí6áâםxÞ;8¼o9ÌÓ‡‹]ùÛxí,ÎÆÚ2Y;1œï#g$³;hÉdìµß·ŽÎ/Îs4áâ×~vÞ;8¼m´d²vc9ÞFÎIfv6ђɽ™cÞK9#3±¶Œ–NÌg{ÈÙÉ,ÎÆÚ2T¸¾ˆà¥BU}Å-®%Râú#‚•	UãyÎfœ<ZïÎÛÇgç9špò‘Îw”% .!rs&\É;q\¶[.Kɽù۝Û<Þs™·/O;·3—c‰å¹Ç76¹^+NÞ;·3“±Åy¸ÌÎ9rËc‘â×~vÞ;8¼o9ÌÓ‡‹]ùÛxìâñ¼ç3N-wçm㳋ÆóœÍ8xZïÎÛË9Æòìp¼mbÙa%’uåÞmæGì³˜äëm¹ÙŒïy9%™ØÛFK'fFs¯ÆÙlä’̝”•´d—3±²š7ÝäÝ䳸äëm²vFw¼ä–NË’çc²š;3g;ÈÙÉ,ÎÆÚ2Y;™àw€ç3vìrž79›¼ã8<ãd>d2å‚•ÀJRÀ„]Q8MJÓCMCµ5f©¦šj’ž
+öcú1ŒkÇçcïcŒ:cŒqŒcÆcÆ8Æ0û1ŒvÇLvÇÆ8Çã
+c¦1…"tÊÁ0†dì$ØaÂvlþ„                      Ñ@}ÐûF & $úÕ
+KP¦ & $}ª…1"M¨RmB˜€˜€˜€˜€‘&Ô)-B’Ô)6¡Ijˆ	>ÕB’Ô)œ¨S
+	–¡L at H($@L at Iµ
+KP¤@H€“ê•
+Dˆ	 $²¡H€‘"Dˆ	>9åUUUUUUvÚªªªª¶Úªªª­¶ªªªªªªª¬UUU²í¶×\6Ûk®Ûw º““ñBæH̐™ 2 at .d€\É ¹’s$æH̐™ 2 at .d€\É ¹’s$æH̐™ 2 at .d€\É ¹’s$æH̐™ 2 at .d€\É ¹’s$æH̐™ 2 at .d†•é0\É;™ 2 at .d€\É ¹’w2 at .d„
+Y 2 at .d÷ß:Î÷{üBüP@þ˜ l¢^D¾¹Ö¯"xTårœ§4®%]ªN–0¸º]®ˆŽ—J¸ŽË¤+¢è»]í.ÑN‹‹…ÅRÕÿ´_rðÃï}íq­´âûÌqÓMkXáÓšsN§?„’NI$êwrIgo0     ¦Vk¶+1FÔ   Ù  a†35 6À [
+¨0zó’sîNIÎݬ$Mþ,öü7ó‡øÃ?‘ÚÈ{ÒûñÙ—}ïÀ¾û}ñx—øƒå—Ó€¶üF$lùâ/¼Âžìž¤¦Ï è½8oŒHÙó[¥÷˜SݓԔÙà§mñ‰#~kt¾ó
+{²z’›<¢ôà-¾1#doÍn—ÞaOvORSg€t^œ·Æ$lù­ÒûÌ)îÉêJlð‹Ó€¶øÄ‘¿5º_y…=Ù=IMžÑzpß‘²7æ·Kï0§»'©)³À:/NÛã6FüÖé}æ÷dõ%6xEéÀ[|bFÈßšÝ/¼Âžìž¤¦ÏV^œ·Æ$lù­ÒûÌ)îÉêJlðueéÀ[|bFÈßšÝ/¼Âžìž¤¦ÏV^œ·Æ$lù­ÒûÌ)îÉêJlðueéÀ[|bFÈßšÝ/¼Âžìž¤¦ÏV^œ·Æ$lù­ÒûÌ)îÉêJlðueéÀ[|bFÈßšÝ/¼Âžìž¤¦Ï è½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶øÄ‘¿5º_y…=Ù=IMž¬½8oŒHÙóÄ_y…=Ù=IMž¬½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶øÄ‘¿5º_y…=Ù=IMž¬½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶øÄ‘¿5º_y…=Ù=IMž¬½8oŒHÙóÄ_y…=Ù=IMž¬½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶øÄ‘¿5º_y…=Ù=IMž¬½8o¢HYó[¥÷˜SݓԔÙàêËÓ€¶øÄ‘¿5º_y…=Ù=IMž¬½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶ú$…‘¿5º_y…=Ù=IMž¬½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶øÄ‘¿5º_y…=Ù=IMž¬½8oŒHÙó[¥÷˜SݓԔÙàêËÓ€¶ú$…‘¿5º_y…=Þ¶’I$’I$€  ÊÍvÅf(Ú€     0Æf    l6 1†Þ9ÎNIü¤’rþAö晴{÷ïß9Îsœ    ËQ6Ũ…¨€     f¥lÉ    mj¶[´ä      CB      ä’\Ì´„     ×9Ç,s¾rN€    
+ef»b³R³P     †ÌÔ    ­†Ôƒm‹m¶Ûm¶Ûm¡ €        $’ä’Z      s2æe åû`è<"ùó×®sé÷w϶÷öé~4à-¿&$…‘¿<E÷˜SݓԔÙàêËÓ€¶ú$…‘¿<E÷˜SݓԔÙàêËÓ€¶ú$…‘¿<E÷˜SݓԔÙàêËÓ€¶ú$…‘¿<E÷˜SݓԔÙàêËÓ€¶ú$…‘¿<E÷˜SݓԔÙàêËÓ€¶ú$…‘¿<E÷˜SݓԔÙàêËÓ€¶ú$…‘¿<E÷˜SÜÞîîîîîîè            w$“é’Ih      ÌË™…¶¸’€    2ÒݱiJÍh   
+²  ÃjZ    ZÃZ”’IÎNu9&ðï³O‡tufï v'zÒn÷gLyœ„žèÎs,¤x¤á×ם§k›äÝᾜ2ôïlcAôçF=á·žo£ÙÂw¤bÈRRç»=æ/:mÕä-#µ‰N!}·Yv!¼eWž]zPffw$“$’oyÞMÝÝÍ“dÝU‰3dÐ t5YUUUÌÙ-º-
+¬W&îîæîîæÉ²nªÄÈ W3wwswwswwsdÙ7@ÕbLÙ6MÐ5DaÉc&,F1c0Æ,bÆ,bÆ,YF2c°Å†,1a‹XbðŃ(Á“&,VXbÃ,,30Å‹Æc&°Å‹)–fÑB«õ‹·79·êÑvt,X,X±bèíÚã_×EÎ>_MÝç…¡hZ…¡hZ…¡hZ…¡hZ…¡hZ…¡hZ…¡hZ…¡hZsœç9ͺè´-Bд-§9'8ÊèŽ\×G…t[šˆ±EA֝âÒÂ1m&P¢«P~¬>¯Ìÿdníüà~bÝÌÓwFjȬŠÈãŽLW7íý¹‘Y‘Y‘Y‘Y‘YqÉŠâ²GdŠÈ¬ŠÈÆ9"¸¬ŠÉW1A‘c$~äϹ33îMþ&+ŠÅb±X¬V+˜ãŒVEdqÆ+ŠÈÆ1X¬ŠV+‘a¹¹]Aüm£øG9s‡Eòþfiºiºiºiºiºiºiºiºim¥¦éügÇñnšnšnšnšnšnšnšnšnšn›-¶[nÚ7kFÛnšnšnš5£s-ÛMÓFífiºi–曦¤c$öN@ù„͈1X‘"±X¬V.3XçÝ @ @Ì0	C HB	@LrtqüqÎmô^_ÆZÝ5ºktÖé­Ó[¦·Mnš¶ÒÜÍÛè篸ㄈ$A"	H‚D ‘ˆ$sŽ8äàq!âGÉH‚D$DIŽ ‘!L×M¤%$Hˆ’wÎwºœÌäÉ$ÜsÓéUXªªª®8â½Aù_ÌþQ»§ç¿™ÿfn黵»¦îš²+"²8ã&+'ÞûßzEdVEdVEdVEdVEdVGrb¸ÅÌcŽH¬ŠÈ¬Œc’+ŠÈÅÌÓrÜÝÓ[£?Ç~ò¿nHÿ
+¬(iV•¡^”ÔVš)–)‹ÂÅX,X«!‚Á1bÅŠbÄa,F,XXŒFaa±bÂLF*ÂʰF#1b¿nBî¯Ýä~@ÌæŒÛTÀºUû·½LÉ—\Ü»æü‰Ë«¦°ú"Ýeˆ@ø¼õæVaŒÍï×®®ŸèOP¼Ä,÷´…^»z½¬ÌÌÜǝz¦—]vuÀ¡9$™9’K7îgzàËs¾ÐuŽMÒ’vóȸÇ=íÝ–nÍ›õÍm–[o–ûkôœèÓi±4GöêI#;´ÖíŒY†î·wdž2&E9™&Y™’}$ÌÎ÷ÁîFïu'wáÝh@ç^N§œC)ÈeØ„¤#Q¶/@7rž¼…v¶ð=Ò3Ç:§T·)ð¸ºÔù¸ŽQçNŽ7ß§ZCeóä<E‚-–ßQöÍ©6¤Ö½ææ»ÇFšçž‰}&LлrÛdÍÆ t ,™6IØÉ8†€s–ÚÐµŠ y4›¼Ù9 	º -·-¶dœ“„œ’Às€ åÀ2­¶× ’u'nÒ%¶ÙÛµ¶ÚZÌe×Y™ŒÓ£·ƒŽ8×ãEôù/¾Köþù/©ÞþâÛl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¶Û-¶Ëm²Ûl¾ûï¾ø [m–Ûe¶ÙmÝÙ»»³wwg&d™ñó&|Šù&}RLŸÓ"N:ÌWѪ'}G¶YÉãÚ‡Üvú¶&â{tÆ'ßTª±ˆ±m…™z½ün{Û®°Ë3á<ù_;ælL|ž"Óã,ñî'/eŸ¯/…¾½ž¢kÓ=ßDí·=k}(¼ù½[¦dÓ+Ó~@ú[Tªºº­}"b..-ÚÔÙôw|»úGxg7éÎ[Òô^âqr=´ØêÙ±­6·m[­›­7Ï]̽}YôÉŸ@                   |gÇ3›5ÜN8ã2øg;»‰Î.™]HŸó3Y}±¹Óá6“Ș=‰ë™™Œù‚ÊÖ6äOˆÄNÖDÕ‘4ȝ¶'"i¶ÒdgÌ÷ˆÏŸŸ£t„àÏ ‡ÎÆ9ËjæÀb^p$aÙ;±<Å‹Xö„çyÍ¢ïs†s’é¸R1âñll{ï.ÂÒw{‡'ï¹Êwc=`ÍŽs;ßXÆ‚1cÉKHJxua
+m;îîã;¼z¸ó{¨²±à¡[dDŠI$3“ØCYªÛcuº&ePb¼Ûž>ʧ¢šÕ$’G‚„ŒkãﲍéÑI$ŒÕ¦ž‹HÜRF€  1F?²½‘I$‘¥’SD³;n³_òTWï½=¤Ìdû¨º:,&ϱ2Lø¿g‹F4hÑ£F2åË—.\¹råË—.\¹phÑ£F4hÑ£F4W.\¹råË—.\¹råË•£F;™™™šÝ4hÑ£F4hÑÙ™&|Îiõ!B                    ŸLúù&O­&d³¤Ž	—ÙºŸ9¬Ü³6˧—‘=užñ™O:õÕˆ½¾ØÌd¬–3ˆÁ†1™`íÎ-Þê×+ùuKe«Œm­jÖá3o•ó»Ù˜Êíååw·kƒÑç,ùÓ}ngxÏ_Ì0bbY™ŒXË1–0yÇŽ«âø‰Ó§Eè¹s•ÊW.8_ˆ:®GÁÈçÀr¶ScC}^¢ts1ï3™ss^>.Î:®ƒØ¶5R®'¨0ªÆ–eGåÂXÆ“M0ZYUihã)hÚ¶jÚ¾/r¹/>=Y™—™Œ­çÏ/UKÝÜÚòÉñkN¸®rç Öí»ªêñÈõƒ0ñ—YOhžå;vøqQÇ/…ÜN¥Q×SvÚäN#—g!râeòþœý;›Ïìý<ë¼ÞûþÝó·|?ý½Œš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜ÀˆW̏‘ÃváÀôàŠzùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒ…|Èù7nN§¯˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒ…|Èù7nN§¯˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±
 ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜ÀˆW̏‘ÃváÀôàŠzùŒš™ï;7nN§o˜À‰©žó±ÃváÀôàŠvùŒš™ï;7nN§o˜ÀˆWÌåpݸp=ÁÓÏ>…ó#Û‡Ó‚)Ûæ0"ÊæüìsnÜ8œNß1¯™#†íÁéÁõó
+ù‘ò8nÜ8œO_1¯™#†íÁéÁõó
+ù‘ò8nÜ8œO_1W7çc›váÀôàŠvùŒ…|Èù7nN§¯˜À‹Šæüù1pàzpE;|ÆB¾d|Ž·§S×Ì`D+æGÈá»pàzpE=|ÆB¾d|Ž·§S×Ì`Gn{Ï¥}/¥¦×àÈÜO¾&þ&GuM8ˇ\eräxÅÇ*º"“ެ®¹HMå‘ÇE³®«6tê	·:ŒÚéÐ0ܝäÌÜNÅø=v;Ë‘Í3k3±šfe¬Á°ÔÃL𙏯4dÜñM$“!                    ™’gÚ&ïÁðzóÁäò™Cš¢]›T.‡ŽÚA	ãl"‘©[ÚBvx½HΗM
+ì÷Çg÷Z7œè¶[}Iî÷³½#;Þú>†X&G™cîú>ÆÞÆ\°Í°E|ݺÙR¥Ýg6íÖWo<´»í}m‘Ä1É6å€"C†l¤vâymVI¶K"ÈÉvÚª²mÊeÃM?*‰Ùãò.ÜjûQ~J-ü¾ö+ŠÅb±X¬V+ŠÅb±X¬V+ŠÅb±X¬V+ŠÅb±X¬V+s330µŠÇu»­Ýnëwx¢õ}³xú`}×¼IâÇ™[X2eaŒ1c.–5†nnäû³¬/2;Q¦²&ÖÒ®ÌÇÑKòÄåÒ“*±‘4V-ª]Ø@à(§õ“ã,d÷…ìeؘ‹*²SȬ)&+1Þ.ñ¸w…ÚÜÌjv&ÊÖ*ÖÌa¬±™í]*}˜×½µäÛv‡8&íh˜“™ã=b»E»Œ|*äx&&	‰‚q¦àÊŒ–	“%6yßœ«´\‰”ìL`™’+\¤ï¯{ÌgÍ:úvv˜¼¦î B$6lé$–¥$ôbÜàAË7·‡¹³“mŒÞ‡·½#:Êg¯}<ãé}8g;ÏÞÊ³“_xò1ìzK	»,Ж°[Óa^Xç9u+BrI32}ñ÷wNh…#ï”H’)dyµ3’L@&r^yMÝ·wE®ë!¶é" C™“œwœa'#Â.ÛmÔn7÷˜ƈP1¢>û寒)!dͶ¢I¥cÍϤլßÑ$(©…4B÷Ê$*H¤-‘æÔoPï¼Î›šÞøÇY–´í˜™d3
+‹4­¦Õmƒ0fÁ˜3`Ì’Ã%cŒÁ˜3c2¬ÊÌLeY•˜3^»ú±xºK¦IÔÓ©/‡^Zl@ @ @ @ @$í<^üqÛ›©mäòu’[l
 ‰ØQ×”§ëA‚nf	óEéï޻Ͳ³ÚyH»tǾóŽxtqeâÌÌò*ã¿3sÇ‹ŒËÃq˜'aU\²ñ®å¬Æw[°@èg3¹TVrÁ[N!5޼ßWwoNù]Ü·>»Î
+¶”ï…™&¯:xáÓ.g:2õãÊèí›]äá–ã‘«71ÎÅ:øó±øŸMøœá 
+ƒ9ԁ
+ÙÅÞN¿Kèn“|é–IAé!­ÞöZF>ã;ÈÙïvÆu=ïÝöz¾‡}Ò3ž'¼F6lál	BZötÎù­öéºJ3[Ë·]#†¯CšW$—ß.sço77vKšd›&æåÈ dÃv„2hHnP’S,Ž]ÜÝÝÜÝÙ,˜Hi™6MÂC7w7ww7ww7vKšd›&æÉsL“dÜûL™õä²vg;öUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU~>g	>}Ä&BrI2I!à                   ±3>“$ÎГ2oI4p°oÝœk¦K,“0bÆ.ý]“™¸ç!˜í—2HO°HCä                   ÎIùrHÅ™29æA›fÑŒ“6Í»ª=ü|{Ã.³£6nIô‡#;è™ì›'²i|Yrîež77.„ȝÙaa“)›Î­®®øºæã™r
+t&Ÿ‰å¬XɄ̣°ëÇsÍÓ]Ü33¬©|¯˜žŽ$2L™$‡;ÜwÐx³Y²9ÀrÉ2ñ'²LŸ9›ñøøøsºJùñã†YË^`ó‡a…¯©â[B	„úoye:—[yîz>“Þ#ÙϰÄ;=j÷<‘ž°yï÷¬Ó-ÙtŒn›‰e(Ð^T.ÛÉí}Z}ëÛk#'n€šd
+º ¨ ɹMt 7j¬Œ„„›º 
+Úª¬Œ›t 6M“zë33>µGªï(úåÞf\ÄmŽqŬ‘–K,H¬V+ŠÅb±X¬V+ŠÅb±XX¬V++ŠÅb±X¬V+!:Üñ„ݲⱚÉèψ„ìN_[—yŒdÇ6²=9ç¦o®°ˆG³Y¯2ÉÉ&K’däÀÉ…ÌŒÀ’G˜s™ÀÍr‚Ïšö=„·btØÍE±5‰XÌÙwß®¼s[c&Ó3\Üë§—*²`¡Œª¦`‹	˜dÉ(󷏳3l›[æw–ç]ÔsêK¬                   ñœÌ“$ÂEY|K9ïßxËvÓæÉÏx|·	3™,é&aŒQÂFNóºkÉ&Mlc"c*ëUleCÖÚé”ï¬æqk.wÌÝèN>®üÊî«)¸®±¸7,Fû¨¾(zw™Ëô~‡‹9Ýøµpž´[ š ^pRCÒžÝÍÍ0 G§YÝNõï)®ØÆ•¶s÷½Ð<Eû½1ÎÎxŒyݱšïA½NÏEñHÊGˆ©Ãiæ<‹Ëíï/	Þñ(n[rÛn‚BBo|†„‘ñT‘kmVÉ$nEò¶á	m¼’Û` $$!¶òJ¥Umº5ð    		m½÷Ù,–Y¶÷ÃK«/ËKÊ/žG‡oÀ                   vý§t’Ù-‰yß¹<'kÝ/m¥™Y†2Y™Þôñ‰çxæçóZuÞ3!|õwë{³3¾›Ž®t'Öñéç©{Ï~³[g¾ø;fìOˆž»½;ʼǙÔ̽tÞ ;otnm˜»ÎÙæo•_G~© f}`¦îXò{Xuœ›Ë©¬±–0åÕ:Êã“™ï=ÈyÞaÛÃ0ÌUÌðÌ3À¹’¹€}"\4ã¡Çn¹õóéß}÷½…îü×Í|ãm¶Ûm
 ¶                                     Lú¦                   &fFI&ùÁåéѬ_Sž¾{ï¾wß}÷ß}ö                                                         å÷ß/Äi£ï’ú}'·ÄN”^Ô_*-Q~ÉEüè§r”ù(§‡JsÑME>ª%ÿt^Š/H½"ʦA–J—êÁùh¿™AŸô"ì‹ûqüÊ/ ÿÒ‹úÊ/ê¢þ‹ô^_t8"úæ–¢AýP‰iEˆ¸„¡ðQ~J/ð^~£Â/ª©é(¾™’L3$  @ †„  @É$2fC$ÀÌÌÌÌÌÌÌËŒaö„Kô"ýe#²‹¾XQ~’‹ñ‚”_¤¢ôQ~¼?"©Uj)âÑN ~ÕOÞUüU<I^t•|Rºª)ÓìÊpQíÆ"ÕR}J/´"ZQ~"/È‹…IUú€ª®ªSÉŠsÅ;
+¥UÚ¦$_XEáE¥¡Eí÷J/ª/E÷ ô(¾Â,"û*“À@Ò‹õÊ/ÂQœ;(¹EU~…è¢ù(¾¥À¢úAðT—E;K¼)ӸĮš%é`û…Ê/½TŸ¼Šz‚ÞQt¤~Á
+.JT>jªú‘~Ì>A @ü`Ñ
+/Ô‚Ø¢ú”X"â,(´¢üEÉEøyòÑx¿|=Ql"ü(¸Qj©9E÷_
+/ÆPCíEðQL?L=¨z(½œ)×¢0K½¢œ(§ED¸¢üh´=Š/Ø©%/ü]ÉáBBIO…¨
\ No newline at end of file

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,21 @@
+Machine (phys=0 total=4192952KB Backend=Linux)
+  NUMANode #0 (phys=0 local=2095800KB total=2095800KB)
+    Socket #0 (phys=0)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (64KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+  NUMANode #1 (phys=1 local=2097152KB total=2097152KB)
+    Socket #1 (phys=1)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (64KB line=64)
+          Core #1 (phys=0)
+            PU #1 (phys=1)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 NUMANodes (type #2)
+  depth 2:	2 Sockets (type #3)
+   depth 3:	2 Caches (type #4)
+    depth 4:	2 Caches (type #4)
+     depth 5:	2 Cores (type #5)
+      depth 6:	2 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,14 @@
+BZh91AY&SYÜ¡² Pÿ¥ÿðQÔsÿñ½;_€ÿïßð P  *ø`Þùè>íŠ@ÈP   q¡ hÓ#Md& €ÐdÈ8ÐÐ4i‘¦2 @h
+2d6%5@         Pié ¤Óħêš4         6©Qå=4#G¤ÄÐÓ Â4bb„Ði¦&0&
+’B&LšCjž§¦PdÞ¤ñ LŒÒ3)O'ªBGÿÚ,"¸‹¨_7ÚºÄ-dç>“IŪW³ÛþùñjGÀÒIE	ÔêI" ž„%"TE䀐ÓãøínU·ÄøóUþV¶µZ^…@‡b•h›
+C¼44 Á'e5®šÖºb±š½VºÖ¹ÒùÚÒHÙ$‹$ÄlÎÆUIK,HdõÈÖ©¦Ì°Ý}6av°Êô.YuÒŠRfh’GÁ¼–H*©REB%’H¤€¢Ê…(¨¥B*‰%§àz¾/™—ìéákg•€Ä™¶R[‘\p†ÙÅ,X˜
+(mê'ª:ǀРà@	€P^H;^.àp­몼E–uâ©UJ BAšÁ씣¢Õ*LšÔ9¥S™¥4ÂI4šˆˆRÆÎ׊PÏÃ%ªÖ              6µlfƨ4¤…­³bH½î$µª®›´$¨”L€Q,–]R”(ÆÁ­¢!^!D+*Ô ¨M!5£8ˆIc•Y…‰4󤑹…"Alß¾n^ö
+=¾‹z»±‹ì'o\Ie¥)BÑG2#tH9ð²$T’9¬üî{“ï¾ñ÷“¹î{žä÷&]<}‡¡©Mìê]éù=û?Oæü‹NŽž‰û8<@HôH‘èö&Í5&RH©l&—KÒ©¢¢ ¥¬M
+J–¢"¦%­­/Vª•8ZÏ^5¼ïp×­Z9§}ÀÓØ÷¹Ä–ZR”µ%Egäg^£ƒä\×ZÐ’9H‘•˜è߬Î]Yµ³ÃI1*£
+W¬çÛºI£m›3ª÷â÷øòËŽ\.p¤’4£÷í¶ô[Z®RÇËÑ(Õ9¥i­u»çlôkÒ›ªrµ“åpÝqÎ’£æ¬0ÄF¤«ß¯mM)Ù{)Ô©Æá¶m´ÒÉe›Z݄ͥ‘Q·“=%±–È©*¯³!K‚irƒ„A…IFÁŒ<¦\"œ áƒ
+e’Ń
+^²OUçLéLX­)JMgR¼<µV¿o†=kR-ôÆ„FdHóßÂŒR°™yÞ|gOo/OkR$nÙ®˜“ù4åVӍf˜a®b¨ÑFZ&Üs{V)$ŒíìŒEé¦׶i,à²kt’7†•MvH5¾sÒ˜åmØã­®àtˆÚûçfql^Üo§8Õ$‹c]î¾yöÎú/Õ‰i)=ßñhºœb5º¸[«N‚ŒkI×ÇYIJµA6̺((T¼’Z®]IÉùÒH×|çmËe®®ý»ñi¶k,ro—Ö×Ji‰®ÒfËé2¤’5ˆÖøÅ•Jöï-–uÖ[M8ªaxÑZ¸Ø¾›ÎNo¼Ë·
+ÔÓ6ͳêU¾š«?#°äd·‚ϝN
+]މt|@¦ÿš«Oü`þ
+hÝ»Gл\°þ‰ÙØŸ¯öªœSêò§r~¶ŠËy),Õ-Á8.9¤‘ÅÑ5RÏ¡ýDž/ÝÞàú^…N
+Ӎ”’.¸úVI#êNIO:hÃéx§7Öže™Nä’4ÂQüÄ”ŸB¥F—J54E¸Ø!IQè]ÿ˶M\H¤e¼I#)™7û¬¢”ígº«ÎCµkR–H”‰g%>Ã+>ÅÔõ¶JRSõŸöè÷Fé™<Sº`V:ž´¤Êû$‘Ð’:9Ò®”hC¸n×”a$Œ9¤‘#dò¸‰9°™,òC	˜	#Hðžóƒ½ïºŽÄ’:$JIÜ£Úê¦ÎóÁ¢u¥¤ì'‘í:“¤Oj燏3‚ÎÄñI#¹àL¯s‘#u'™,áª]Hâ¿ÜÕej’FÓí$‘gÔÝÁªjˆû-Î1'Ús¾‡Í•ÑÑMÆÞ§¥àŸ; s'jI#½=ˆè2âó¢ÚVõkð:ŸÕËÌ:…5s¼È¶W$‡–É$PÄ{ÎŒ'Ûa¢w¾·²ìW?RÉ$lîöi;	$xµòD‘P&Ë'¥Á$Ž)äMlh).—NN['Zí’H»i0ÔIh]f­T‚aR$avŒ'‘É(Õ0\“)–·zH…Õ,”¡»wÖ’G؁ÑH›œœRÚØ’,œRɱ9v"Î)IÒ$ÓÊ-"FäøRû‹¹"œ(HnPÙ€
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,14 +0,0 @@
-‹ ÀÕ9K íïnÛ8Åó9O¡˜]’¢H{¾Í`P`0ØÁb;Å~4™u„Ú’!)ÙÍ>ýJN›Êv&oãÛAîùõOš˜m]’â="M¾[;ûƒ©þ~u1TÏ²á«ö™:|¯­=|ýÌ•ÖF™L)«õ•ÒÚks•d—{K_¹k»¼I’«›M½Ù–ÕåBÓr¼!^ÌSüÛ‡öB×À¼øë4K•2Þôñ7™Uˆ?Çñ_‡û²¯}ÄÇßjý³ð|üûwa÷Z—A|ü³L9ÄŸƒã_ìï^㈊¿âˆ?“ñïÿ”ëmø–ë &þýï>þã?&fÇ¿¸kšPu«uSÞ‡&ªŽ!Àö1ÞÏÇ¿öQüqN_%êBŸùáñÏ‹}¹|ý½ß	øDëS÷ò¯êfÕÔsë˜Ô¿ÊNôŸúúgaª;H_.sô¯¿ñ&€0þë¿Áøƒyñïê}½­7´!:þF+­"ãßÝ6!_¯Úò¦?W›™çcºÿOOâo•³èÿ9P½¿d"õ¿¿}hË"ß®öyñ)ß„þÖqºŽiýŸÞÿ[ç2èŸ
-ù‹&RÿEÝÌÓü˜xý›Ô8èŸý‹†¢ÿ¸Ñ?eüŸfý?ÿËfžþ몗F Ö1(ÜEõÿ*MqÿÏÆÿ²™§ÿ"/n鐘ù߃ÿÇô¿<æ9ˆ‰Y­ÃMüe@˜ÿO=æÿY Ä¿-ÿ7˜ÿ»Óûãú´2ö7ŒÄBÐÿS`¸'Xíó¦+»²þsåæÿœÑ˜ÿcãÙôß=ì_¹ÿ×§ã?3Ü@ÿ|¨ÊeX£
-AÿÛp¶1uòÃcÀÐ?˜þ—
-AÿE}šP7 ÓÓñù¿,5)ôρ³h $CÐÿò‡vU\åm[eÞ•÷e÷ðRý{ƒü?ÚAÿ’¡ÌÿßæMX¯úV»|?£Žxý[“Aÿ,Àÿ#‚þ«»ÝMh†@º9’˜Öÿéó¿6Õúç`Èÿ¡K´þÿÃÁÿÃ!þðسüOÿ'îÑôÏãÿ€þY€ÿC6ý¿¾ÿãìþϬÿÀÃ/y—£	Aÿ,þ…ùÐÿˆ ÿü_,Àÿ!‚þ/àÿ8íÿ3oàÿfé_ÙPæÿYüð² ÿ‡lú¿€ÿã4ÿgSÌÿói4 ’‰Ö?a1xŠÿÃcÿ?ñçñÀÿËü²!èŸÇÿý³€ülú¿Àúçý?Öÿçáת횻bhÀÑ„ žõ?°þèÿeCÐ?ÿù_àÿ
-Aÿ<þäY@öG6”ùÿò¿,Àÿ!‚þyü˜ÿcþÙÌÑ?aɏ#bü‡ý´×6…ÿƒƒyñÚÿ‘TGLü?û†%á"ãßÝ6!_Gî Jÿ+‡û ¢‰Ôÿ“÷gŸŸòͼ½Àãçÿ¬Ãú<`ÿoÙDêÿ°ÿ÷͏!äÿS¬ÿÍô/ŠþãFÿ”ñšYôÿ,`ü/›yúÿû;ÌÿpÖý¿1ÿÇ!þ,ûgXÿìÿ-‚þñüßÃÙôϳÿ7Ödûˆ <ÿ÷†€ûO6ýãù¿7žÿ“
-Aÿ<û#ÿÇöÿ–
-eþÏÿ½ÿ—
-Aÿ<û;èŸìÿ-›hýsíÿ
-ÿ„øó¬ÿŒç¿XÀúϲ!èŸÇÿý³€Û?Ùôϳÿ7ôÏöÿ–
-Aÿ<ûcþ‡ôÿ²!èŸÇÿÿðȆ žõŸáÿfþOÙPæÿYüð² ÿ‡lúçYÿó,`ýgÙDëŸiÿoçáÿà€ÿü¿,Àÿ!‚þyüÐ?¸ý“
-Aÿ<ûCÿ,`ÿoÙôÏãÿÀú, ÿ—
-Aÿ<þäY€ÿC6ýóø?ÿeÙÙPæÿYüÈÿ² ÿ‡lúçñ`þø?dó¢þ«zMßõç+Ñþí¬Áþß,LÇø‹`úßw ˆ?sãßwúy¦:JSý¿¶§Ïkƒç?y⺺-»$5KŸ¹tq}øÉ®lÛD=þûcÝ„rSõß–UšmÈïÃá¿,3e®·õ`.’áÎéÅâºînûâ
 ágK›a‹Ñ¿0sõ¿»²úX“ê˜Ð¿îõ~¢å=ôÏÂõïƒJuò°û£îòíÉ£–^g&ùôó¨À»&„ϯ'}míÂøÐ†õ—Išç£?]yÿt€¡„_Úq_«ü¸Hšj“Ž
-üR6ÝÃè ‡w:~ÿnÊ.Üäŧq!5*ð®Ü†æ›Ð~ùœ~¸ÔÆŸ"ßïG¢ÇûÅø?Uu5>BÒ_·z|„áÅ?ò›í¨„uã7ùû»÷«UÙõe~|îMþ\ßUE8ùœãï·ùÍÑËF/ŽÎäû…b›—»§*´Ëü8šï?TÍc‘/ÇÉÌãyøÞ$`enû_ìï4µŽÃøßû‰ñªÝ¡ÉÐCûŸ÷æo¯ùIÿáíÿÜø¯Ëþ<õ­¥Žéù¿Óý?µ¶Xÿ£º\"ÚÿyɾgˆÏÿ)—Bÿ,(Lÿ‹fZÿu5Øü¾¥ŽèüŸöþÔ0 Hf^ÿOXô)ÿ£ÿá`nü/›ÿ9ÿi£àÿbá)ÿc2çÓl™Æäìҏó?‡PvœÿY,ѽü•™«öüOýsð˜PÏä²…úšsP§ù£ô"µö¸ÀQþ'ñÞfnTà,ÿ“d©Õ£gùŸD[µx.ÿ£ÇULäÔYþ'1VûñÎó?‰[Œ?æYþ'1n”ZQÏä’qþGMåÔTþGçú3ytªÏò?‰^8Ëÿô
-·BþGsÛîùÿÏÿ² Uß”Côb™«ÿá1 j¤ü¯Fþ—ƒˆø³æÚðü—l¦õ¿¯Û¶ìï#èuDçú›ËþOÿ‘Í´þoóvxÖûê 佃ÿƒè_6óô_ÕÍ.ß®vaW7/.õò,ñý¿QÖbú               àíðߣÖh h 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2amd64-2n.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,21 +0,0 @@
-Machine (phys=0 total=4192952KB)
-  NUMANode #0 (phys=0 local=2095800KB total=2095800KB)
-    Socket #0 (phys=0)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (64KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-  NUMANode #1 (phys=1 local=2097152KB total=2097152KB)
-    Socket #1 (phys=1)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (64KB)
-          Core #1 (phys=0)
-            PU #1 (phys=1)
-depth 0:	1 Machine (type #1)
- depth 1:	2 NUMANodes (type #2)
-  depth 2:	2 Sockets (type #3)
-   depth 3:	2 Caches (type #4)
-    depth 4:	2 Caches (type #4)
-     depth 5:	2 Cores (type #5)
-      depth 6:	2 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,8 @@
+Machine (phys=0 Backend=Linux)
+  Core #0
+    PU #0 (phys=0)
+    PU #1 (phys=1)
+depth 0:	1 Machine (type #1)
+ depth 1:	1 Core (type #5)
+  depth 2:	2 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,10 @@
+BZh91AY&SYߊ'4 ††ÿ° Äwÿü:FL@ÿïß°  0 (P{ÒVšJ€U  Ó@hƒM0&jh ˜0L at 0	‚hÈh`ba"M4 z&Òz'¨Ða14¢=OSÔòjhmC˜0L at 0	‚hÈh`bašjf¦©þ‰=SÔ6“õ!¡êhÓ@”ýSn„‘¬Ö»ŽÃ€ûUÀja”¬C¾’.<¬‚ †
+‚ˆƒŸ89Åø[³"¼í™‹ÒÕKDM‰2ªd6)"F’@eI¡!´‘¤ØjØyI¯Ä\ÆàIÈ™³·úFä:•/%ù"H	7dAê?bÒòâš|c)Ô©Èóŝ|x|9Çt H)”‚-h,:R€‰^	–Ûñ!;¼ùU-Î"!Ä»¼ó–&cV@$a!±Û®Þ
+§¢(a‡((ƒhY™S³°•%R5…<ùY¤åa±1ÇßÉ&'l*lÃ)“*
+PµRY˜.)*°ÇͯæY
+H°ŽAyº{<'{[FÞØ!¸J=ê˜cËØG¥S1MMûõ)¦”¨$I:×TCT‚	³;+*—£øšÙc9	•öPK)¸HˆLD]2C˜% ²”‚|PD•L¬Úa/­':Ƀæ‘DT4}ÏtÓôDQöþ	Bª•ià`EU#`À¿O‚â†Y™ƒ@’’¦söËl,a¶g4oühyhÿdˆaÒ8(aT(eX6ªj©D ÖÀè^»4,ÜÐõж
+”(Z^k&¦2gЦt
+……æcyÕ`‡;Z*T©@üˆI°­:^;N;U(;‡ÍßÖoÌ®
+…Æê“שG×_R¦ ‰ÁS°áÚàWȐµRNb¤ú BÕK
+7l·EMö…ç—Xeqir¥ÂÅâ…ÇyS“*›HΡ§"ƒ iä©ÑSi¹C*i&ñÛ€&¤t*sñw$S…	
+ø¢s@
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,2 +0,0 @@
-‹ èÕ9K íšßn›0‡s[ž‚ËMj;ÿ¯»Ü4i7“&õ7As0Â$Súô3I#uQ „©>ŸT…&¤FùùÃÇ'e•åw¬ù4›âQÔ>R‘ÝïTˆÝã3Ja!‚²¡4¢|FS^ԁµmÒ:gó…Yè¢<qžª-ÄÁÂ^ò¯j“M5	úåOyDcs÷:eB2Ì‚òϪuQ>™KÑïó~3!ØQþ‚Äd’K_È[xž›»²ÖÔ7_B¸	pã¾)­Ã¯µIóyZæá÷rQ”ê6LuSlTÚuU™ºQyi“ýnßÁé»ß§ùóÇsP«MaSºWh|OÂÕ¦ÝM€„ԝñ1^Ká†mŠ•š§V¹äÃçÝû‚J§Í“©Wî¹_<X™\éöo?šrÛ>q턦åà¿ÝÚÉj€þ÷áôßÝÿ¹ xÿ‡àuþ¹ÓÇYyñy0<.c\ÿAx+wܨÕå¦Áðü#NbÌ‚ù»Uù2s`xýS‚þƒÐ‘¿)Ýg¢FŽÑUÿ»ÀQþ’Žõ?䎾ó
-9E‡ÿU­¬*›qcœá¿ý‡ ý÷›.ÿµÅ\« Îð?æè?è¿ßtøï~èèMàû?áþ„>ù7¦2Ú,¶çN„Áù33ìÿ€0(ÿfY«4OÚŠ (½?Îõ_­ÿŒKŠßÿpˆàö¿ïý0¿ã¢Û§50¸þgBbýÖÿ~ÓÇ»j[ó¬’\ét;tŒáþ3&"ôJúï1}ü¯–[[d©NŠü¬1ºý?úÿ?Fi„þƒ€«¿ßtøo³¥r¿+ *óGÕ‰M7Cvþ{†ûÏ$è?¸úûM÷úO®Óÿ§Øÿ… OþWéÿG˜?ƒòìÿìÿ€ý¿ãÿ¤ýÿý‡ ûÿ~ÓÇÿ«ôÿqÿöÿý¦ÿWéÿ£ÿ  ý‚ ‚ ~ñAc! P  
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2ps3-2t.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,8 +0,0 @@
-Machine (phys=0)
-  Core #0
-    PU #0 (phys=0)
-    PU #1 (phys=1)
-depth 0:	1 Machine (type #1)
- depth 1:	1 Core (type #5)
-  depth 2:	2 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,8 @@
+Machine (phys=0 local=1025408KB total=1025408KB Backend=Linux)
+  Socket #0
+    PU #0 (phys=0)
+    PU #1 (phys=1)
+depth 0:	1 Machine (type #1)
+ depth 1:	1 Socket (type #3)
+  depth 2:	2 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,13 @@
+BZh91AY&SYOwM Õÿ…ÿð@Jÿú}o_€ÿïßð € ”h`ž{ᮌ½,ñÀô ƒ@„5M4ý)é2   ¡ê
+
+  E=&2š 
+       s	 4Fƒ¦&LM d&A2iL  Ó@      "•Ci¤ôjM ¦	¦Ð4 ‘ š	¦“i6‘Q§©  4 4
+è—•ËíR¡ÿ:²B¡þ‰c
+Pî"Hs4R ˆaqzàD
+À,!8*«Z;A-š¢E»g˜Ì¡Õ4‘`BÂMÖNnD¤DÒA¤cH :T9ÎÉ\‰‚¤‹‹ÊL©rH,3“RI!‚I$ÐCÁ€ÐÁ6 Ö¨ÊݾbüfãÂæ†{ol¶‘{+YSǐš€_ƒ½PFí\+V
+—CY¦µ!î˜Ùoםl¦|ºrÀásÝàU.ݬE´ÐÎ8kt—#`1„;‹P IŤՐÙ	‚_x±-‰fT_)ñ™F}¤söoÏôo ú®¹¶ì$•€WR–@”›œD¢ 1¤À	Ͷù“9xA0Sþ×/g¹L£|vWV>?!Ë•ý…é w‚¥‚-B¢Ï¨Nzh-•Ȳpܵl±1&)Ùzõž~ncûdª*Ø—ð¨D¢Ê¨E…V‚¬¤3g\º+xËS|êayi@÷	NÍ·™B·¤Pæ„&÷b&ª– ·.PŒÖAx@´Ø$¤‚£6l½ù`ÅÒŽ*ysÄØBH3+	 õmbDå§å™­$ʱ¶™†Ð‘§6sî-µË9Wvv7ÅÛ0¢Ò T¬²¦ Tpk«5T­T2År Ȉt¥&dIwZØÀ" 9›çõ4kÓߏOÜ;§WŠÒ£¤êæÜ8Ç›M6³ynòÂ[~íÌž3ŽšH¬âDâ8qÎR3‹«q*_[S·ÝI¼©ŽXCüC('¨”âe«Ð×{™¬"
+\Hˆ"[§Iôš9^’6qÅÏ‹„dJ‘\¥|L@µ(ž) ԝ*:mì”é–yHi¤4YrC¦dµ:Òéá;aRsˆ¾òûîº5¤ªÂP‚ETT'jrh#iÄãG(ª!Uï›U›«™4È!
+&¤–PÉIRs¢Ã¸¢¬5Γ3ÓMì Sй‘–¦I²WU,:ƒ½TáÌ“Ózèéæ^Kn'"2"¯‹­Ôm6&¾=úm8PGHÃü£ /$*«A1ô
+sÂãÈ8àUw(ÒdvÀ\ˆ¥{°MÆP¥plÊ,(˜ÉÊç@ì@ׄÊÎdK–&í^؃Ô7ï<âµåâ¹gzƒò¢H=7	_2¦ËÿH9’A{L::?‘Œ
+l¿iq¹ 
+˜fŒž¢ÂÈå	%©‚l…ª—vS+ýT$\€-¾$úÍ(ö27á‹”FùyÐË,z7ózœþ.§WU¶@€Ã]¹ŒðëšH3©yŒô@цªɆ(ŸoÀÉ•dá±ËT.*"a•jÓïU')@3é3‚ÉCQ™%þõðŽ£ŽèÝ36p¼4-æç*Hè$Uœ0Ú!A »`è'·s5â’Ô9ÄÅkSÀZp *Ǒޯ’é¥Ò¸pzö’H$bÁ¾î6¢&4ÎIúÙ䋨2í§ æL6¤ƒl…â]…ÂϜ޻N¡uh„±éÎê“Ù]\QºuêÐà'Ót#±Q›µJ‰ ¸ÛŒ9“é&;”±Õ¼ýË&"¸$‚Me¯¥P™°Ú’nÏá îI&Ãe‡¾X=9FI ËXê’Ì…­¨6Ù$k 8wH@•Yzo'3€Iœò &:eÁÌ`*_9Á¦ô„º½Œ¹Rs_ngÊ¡P¦ÁvÙ”€SYž»8Åa ì›`‹ô.äŠp¡ žîš
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,7 +0,0 @@
-‹ *¹K í[oÛ6Çó:
-{]WÞEØCÒ!Xušv{4d™vˆèQN—~úQ²“Øn]œPØt~€cGǼˆ‡Þ$ZÔ²¿¡ñÛ³×;!êw¼ÿþÀ!»£õ÷–Lž!ñŠyzdc«¨DèÌFéýsßk³ÿG¡þ·÷öµê@ÿ.8øßþ_ê;ë¯ýýÏp ú÷Âwýï>W:}±jÐßÿœS
-þ÷Ásþ‹Í‹Ôþþ”ð¿Úü_äÖšE¢OI£v°äüÿ‹#ÿË€g¿ÔI>ÇÄýß02;Àh´ê¿ÔVgÕIi´ëŸë_b	ú÷~òŸ2múw/|ê °ÿøÏÉÃøÏüGE´0‰©†•@ïñuaüçWì:€éÒIÿU^äI¾¾Øôoÿƒ€Áú¯úù?ÎK=¯×L¶¶Óhmÿ	9jÿ)´ÿ>Øy€A0MNÐÿ<1¶ÓÂ@ïù?e‚Âüß0ÿŸ6ô-—¥¶Ý;ü#ÚõOÇœbп@ýÓ¦“þÍ2Ñó8ß¼Ðü	èßT1¥…5 ‰Òmý7ÏVf½)Þ0 ÿêûÿ@ÿ¯ôÿÓ¦“þóÌMø‡ß4@ÿTÀõ/€þ§M·þ¿ŒìÍ<Ë+=h
- ]ÿøxüïþýû ûü¯2©žo†T€öùŸ<ö?çüï‚•p5 ä*$ú‚ÉÑIÿEžD¥ùU&ϤѮv¬A`ýÇ7¹slžUQâŸ"mú?qê×Ðûú/‘œ@ÿï¸þ;mÚô_jGC:ý=zÏÿˆd ýû ÍÿKc‹¨ŠoL¶œÆ ëÿ0ÿ÷†ÖÒt˜ÿ‘QöÿÀþo/tòÿûàþ?ÀþŸiÓIÿcìÿÐþû Ÿÿ=îÿõ/ì< û&Ê	úÝý?pÿ`ýwÚtÒÿû`ýϰþ7m:éŒý? /0Ì¥Tnýš(ÝÖGØÿ×½ £ÿiÓIÿ#ìÿ‘pýÇ ÿiÓ­ÿaÿ¬ÿ{¡ûüÏóþþ÷ÁŠ…”„!‰‚¾`rtÒÿû`ýǰÿgÚ´é߯7z9Oãy‘ÑåÜFw½nýhè=ÿ£õ пàúÏ´yÔQæ¯õÐZá=Ÿÿ(1Üÿí…Cÿ»²8íQ?ߥ­ýçâøù_T`˜ÿyÁõñJ%•Fa(ÀL18	qÀ%Q(CbäºeÉ(áî3(³ú÷Ê’8¤b+.Å!”¨ÐÅC0ÁH9O×)……„„Û°.‹™º$°P²Ž;t!\XI)§!bJqUg¬N™r7SE.¬`.´ÉªI¥H“g¡B*ÁR2¡‚Y\ýS!æêQœ©Ù¢^¿péWóꃳºÂkkµE\ÊúÃæ—›,sƒDwÿ/’<¾ÕKô¿ì*õŸêÔd«ü…ÓhÑ?áß>ÿÕùôïƒ:ý”»Ùß9j ˜
-Žº½œ9ËU©õÎàem¹Ü¬Vº´O†NžÎò.ª§O0…Ëõ—¨8¶¢ÆrWæn/!œòqmyŸE6ʸ’ê!¶ýlÊŒ,ûÙv¾ÍÁ¯¦¬î÷¯›=ÒœÏߥ©ô"Šo÷­MlYžý­µ}Ê‚‹®)¨(Î…Pµ-·ë$ZìGTWj×TÖ–:N"“F‹¤É_Ýìªmé|ÎÊ­íÑB5±Õ©ª<·š\ÿqu=ÿœ¹Ú»‹í)×—ù&‹õÁ©î,gú)-üËÓÔT¿÷§ÉfrWn[Kåf×Mî*H“·¿Ò(qmãƒ#æJló¶³|¶EäÎu?Ì»›Mv»
-ãÚÞ¦t~Û¬uSÖó=Ïâ½Ã{nÝ?üÑÞ-¿søzS‡‹ú°ùº‹ÂUôæìÆÖߨ¶ÿ®GößþcþÍï0"áþ/Üél™—s³Ü5çèý凷׮RÌ~D»!R^Ú­‰Îù:OMaQ¡KäjË9
-¤T?c<[é¨Ú”ÚþpŽ´2†¾Fe|ƒlµJ4Jm„’ú§6iŠ–«Í#GøݹþÄäú]]ý„Yê¬2+7KÎî(–D]8KÕ¿E Ý!7Hö"!Ã#Û                     /Á¿búJ    
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/2s390-2c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,8 +0,0 @@
-Machine (phys=0 local=1025408KB total=1025408KB)
-  Socket #0
-    PU #0 (phys=0)
-    PU #1 (phys=1)
-depth 0:	1 Machine (type #1)
- depth 1:	1 Socket (type #3)
-  depth 2:	2 PUs (type #6)
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,222 @@
+Machine (phys=0 total=100661148KB DMIProductName=DRACHMA DMIProductVersion="Rev 2" DMIProductSerial=0123456789 DMIProductUUID=008844D0-2214-DF11-B89F-F50F715B14E8 DMIBoardVendor=AMD DMIBoardName=DRACHMA DMIBoardVersion="Rev 2" DMIBoardSerial=0123456789 DMIBoardAssetTag= )
+  Socket #0 (phys=0 total=25163676KB)
+    NUMANode #0 (phys=0 local=8386460KB total=8386460KB)
+      L3Cache #0 (5118KB line=64)
+        L2Cache #0 (512KB line=64)
+          L1Cache #0 (64KB line=64)
+            Core #0 (phys=0)
+              PU #0 (phys=0)
+        L2Cache #1 (512KB line=64)
+          L1Cache #1 (64KB line=64)
+            Core #1 (phys=1)
+              PU #1 (phys=1)
+        L2Cache #2 (512KB line=64)
+          L1Cache #2 (64KB line=64)
+            Core #2 (phys=2)
+              PU #2 (phys=2)
+        L2Cache #3 (512KB line=64)
+          L1Cache #3 (64KB line=64)
+            Core #3 (phys=3)
+              PU #3 (phys=3)
+        L2Cache #4 (512KB line=64)
+          L1Cache #4 (64KB line=64)
+            Core #4 (phys=4)
+              PU #4 (phys=4)
+        L2Cache #5 (512KB line=64)
+          L1Cache #5 (64KB line=64)
+            Core #5 (phys=5)
+              PU #5 (phys=5)
+    NUMANode #1 (phys=1 local=16777216KB total=16777216KB)
+      L3Cache #1 (5118KB line=64)
+        L2Cache #6 (512KB line=64)
+          L1Cache #6 (64KB line=64)
+            Core #6 (phys=0)
+              PU #6 (phys=6)
+        L2Cache #7 (512KB line=64)
+          L1Cache #7 (64KB line=64)
+            Core #7 (phys=1)
+              PU #7 (phys=7)
+        L2Cache #8 (512KB line=64)
+          L1Cache #8 (64KB line=64)
+            Core #8 (phys=2)
+              PU #8 (phys=8)
+        L2Cache #9 (512KB line=64)
+          L1Cache #9 (64KB line=64)
+            Core #9 (phys=3)
+              PU #9 (phys=9)
+        L2Cache #10 (512KB line=64)
+          L1Cache #10 (64KB line=64)
+            Core #10 (phys=4)
+              PU #10 (phys=10)
+        L2Cache #11 (512KB line=64)
+          L1Cache #11 (64KB line=64)
+            Core #11 (phys=5)
+              PU #11 (phys=11)
+  Socket #1 (phys=1 total=25165824KB)
+    NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
+      L3Cache #2 (5118KB line=64)
+        L2Cache #12 (512KB line=64)
+          L1Cache #12 (64KB line=64)
+            Core #12 (phys=0)
+              PU #12 (phys=12)
+        L2Cache #13 (512KB line=64)
+          L1Cache #13 (64KB line=64)
+            Core #13 (phys=1)
+              PU #13 (phys=13)
+        L2Cache #14 (512KB line=64)
+          L1Cache #14 (64KB line=64)
+            Core #14 (phys=2)
+              PU #14 (phys=14)
+        L2Cache #15 (512KB line=64)
+          L1Cache #15 (64KB line=64)
+            Core #15 (phys=3)
+              PU #15 (phys=15)
+        L2Cache #16 (512KB line=64)
+          L1Cache #16 (64KB line=64)
+            Core #16 (phys=4)
+              PU #16 (phys=16)
+        L2Cache #17 (512KB line=64)
+          L1Cache #17 (64KB line=64)
+            Core #17 (phys=5)
+              PU #17 (phys=17)
+    NUMANode #3 (phys=33 local=16777216KB total=16777216KB)
+      L3Cache #3 (5118KB line=64)
+        L2Cache #18 (512KB line=64)
+          L1Cache #18 (64KB line=64)
+            Core #18 (phys=0)
+              PU #18 (phys=18)
+        L2Cache #19 (512KB line=64)
+          L1Cache #19 (64KB line=64)
+            Core #19 (phys=1)
+              PU #19 (phys=19)
+        L2Cache #20 (512KB line=64)
+          L1Cache #20 (64KB line=64)
+            Core #20 (phys=2)
+              PU #20 (phys=20)
+        L2Cache #21 (512KB line=64)
+          L1Cache #21 (64KB line=64)
+            Core #21 (phys=3)
+              PU #21 (phys=21)
+        L2Cache #22 (512KB line=64)
+          L1Cache #22 (64KB line=64)
+            Core #22 (phys=4)
+              PU #22 (phys=22)
+        L2Cache #23 (512KB line=64)
+          L1Cache #23 (64KB line=64)
+            Core #23 (phys=5)
+              PU #23 (phys=23)
+  Socket #2 (phys=2 total=25165824KB)
+    NUMANode #4 (phys=34 local=8388608KB total=8388608KB)
+      L3Cache #4 (5118KB line=64)
+        L2Cache #24 (512KB line=64)
+          L1Cache #24 (64KB line=64)
+            Core #24 (phys=0)
+              PU #24 (phys=24)
+        L2Cache #25 (512KB line=64)
+          L1Cache #25 (64KB line=64)
+            Core #25 (phys=1)
+              PU #25 (phys=25)
+        L2Cache #26 (512KB line=64)
+          L1Cache #26 (64KB line=64)
+            Core #26 (phys=2)
+              PU #26 (phys=26)
+        L2Cache #27 (512KB line=64)
+          L1Cache #27 (64KB line=64)
+            Core #27 (phys=3)
+              PU #27 (phys=27)
+        L2Cache #28 (512KB line=64)
+          L1Cache #28 (64KB line=64)
+            Core #28 (phys=4)
+              PU #28 (phys=28)
+        L2Cache #29 (512KB line=64)
+          L1Cache #29 (64KB line=64)
+            Core #29 (phys=5)
+              PU #29 (phys=29)
+    NUMANode #5 (phys=45 local=16777216KB total=16777216KB)
+      L3Cache #5 (5118KB line=64)
+        L2Cache #30 (512KB line=64)
+          L1Cache #30 (64KB line=64)
+            Core #30 (phys=0)
+              PU #30 (phys=30)
+        L2Cache #31 (512KB line=64)
+          L1Cache #31 (64KB line=64)
+            Core #31 (phys=1)
+              PU #31 (phys=31)
+        L2Cache #32 (512KB line=64)
+          L1Cache #32 (64KB line=64)
+            Core #32 (phys=2)
+              PU #32 (phys=32)
+        L2Cache #33 (512KB line=64)
+          L1Cache #33 (64KB line=64)
+            Core #33 (phys=3)
+              PU #33 (phys=33)
+        L2Cache #34 (512KB line=64)
+          L1Cache #34 (64KB line=64)
+            Core #34 (phys=4)
+              PU #34 (phys=34)
+        L2Cache #35 (512KB line=64)
+          L1Cache #35 (64KB line=64)
+            Core #35 (phys=5)
+              PU #35 (phys=35)
+  Socket #3 (phys=3 total=25165824KB)
+    NUMANode #6 (phys=72 local=8388608KB total=8388608KB)
+      L3Cache #6 (5118KB line=64)
+        L2Cache #36 (512KB line=64)
+          L1Cache #36 (64KB line=64)
+            Core #36 (phys=0)
+              PU #36 (phys=36)
+        L2Cache #37 (512KB line=64)
+          L1Cache #37 (64KB line=64)
+            Core #37 (phys=1)
+              PU #37 (phys=37)
+        L2Cache #38 (512KB line=64)
+          L1Cache #38 (64KB line=64)
+            Core #38 (phys=2)
+              PU #38 (phys=38)
+        L2Cache #39 (512KB line=64)
+          L1Cache #39 (64KB line=64)
+            Core #39 (phys=3)
+              PU #39 (phys=39)
+        L2Cache #40 (512KB line=64)
+          L1Cache #40 (64KB line=64)
+            Core #40 (phys=4)
+              PU #40 (phys=40)
+        L2Cache #41 (512KB line=64)
+          L1Cache #41 (64KB line=64)
+            Core #41 (phys=5)
+              PU #41 (phys=41)
+    NUMANode #7 (phys=73 local=16777216KB total=16777216KB)
+      L3Cache #7 (5118KB line=64)
+        L2Cache #42 (512KB line=64)
+          L1Cache #42 (64KB line=64)
+            Core #42 (phys=0)
+              PU #42 (phys=42)
+        L2Cache #43 (512KB line=64)
+          L1Cache #43 (64KB line=64)
+            Core #43 (phys=1)
+              PU #43 (phys=43)
+        L2Cache #44 (512KB line=64)
+          L1Cache #44 (64KB line=64)
+            Core #44 (phys=2)
+              PU #44 (phys=44)
+        L2Cache #45 (512KB line=64)
+          L1Cache #45 (64KB line=64)
+            Core #45 (phys=3)
+              PU #45 (phys=45)
+        L2Cache #46 (512KB line=64)
+          L1Cache #46 (64KB line=64)
+            Core #46 (phys=4)
+              PU #46 (phys=46)
+        L2Cache #47 (512KB line=64)
+          L1Cache #47 (64KB line=64)
+            Core #47 (phys=5)
+              PU #47 (phys=47)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	8 NUMANodes (type #2)
+   depth 3:	8 Caches (type #4)
+    depth 4:	48 Caches (type #4)
+     depth 5:	48 Caches (type #4)
+      depth 6:	48 Cores (type #5)
+       depth 7:	48 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c-sparse.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,118 @@
+BZh91AY&SY„Ÿò®ÿ÷ÿÿÿÿÿÿ÷ÿßÀÿïÿð€  "@
+ ¿ø`ßxñ‡J   "€ *¥rhH‚H豉I
+H  Ð  yšS^E {   9óï6ãž´
+<p@,ø}       ;¹	ïéò„Ýî`©@  /`4-dÕ!³uEÜÀ,€UQÇJçeÀ@Š(ˆçg ° th‘uTäåÀ]À¨Éôtð        ¸äs ÚÛEJ“ˆ8;8ÇYD	•Ò0
+Ê‘v^Àa<x TD€    H  Û             &‡¿ÓÕU)¦£õ5bi¦&hÄѐ 0L`™0 F˜hTñé5$eRH›@&&   ÔÀŒ¡€   i€F„O=T‰	êPd              $Ò!SQ"ž¦5O5ƒ˜€2h``LÄÐLA‰ ‰AB¤ô4™hiê
+44mA h  z¦†ƒ@) „ €†F¦ÔÓ)´šziª~¢zG¨zš4ÄôÓQêéyC hð¦'ýôâbŒüWñþÜ?ÜÿuUUUUUUUUUUUUUUUUUUpèÄd@Ùºªªªª¿Ù@é p'A’Ã,bêŠÆXe#q7MØÃcà(þ5ÛXdɆ2a†L˜dÉ–#bŽôAX&é½¹“dØ›(ÒŒLøñ?ǁ|gUÆ(Áܱ…-	ˆ—LN;(ãdZO!¬E2(G)Be:Ki‰Bß)m€4Á0(ECü´…	ú×ë‰àñ~›æjÚ­yëM
+ªø5çÃՏ¡ÀF¿Ø*–dXHõSœÑV¡ªHY”•’„µ+i‘TT~éûªÔ@UGJETïÕÏÑ»ç_~ë7¯¯½oUkh{·µ·³Y´^îBSÝݽ2ä»u«c’nÝ^¼­s^Âä–Ü+K›Þæf^ȦäÜɰµn±’lr],”ªR©L%]]*•[º•™&fìÝ*u#nI™J²«Qò>GÈù<ÝÍöÛäzÖ£ä}ª¥	#suÅ­Õ:U)VÕnÒ©J¥6ð†…*T¥[J¥*”Ã	ZÞ6÷Võ#ä|•§;}^ssx[Qò¾»Î^VåË—.I{3.á·.\¹%˪ªÙ·.\¹%Ë–®fܹrÜÛÛ¼»ËšîTÃk›FaH’<`kȼ‚3/a”^ÄäkÈ ×Íš !‹Aæ£MÍkÈ ×RÖ¼3Dä^K×’÷0Í<€kÈí·Ûoê·†hä^@5ä½Ì3@%…ëȼ“4Ü€GRõášy ×’ÂõäªÉ3@ ò"š¼€kÉazâ¹!ŽU at Z®èšEšòua4ËݍêÖï+E¡4Y¯S${’DIw$Ц:Û׺Üë[šÜÚ¦æ‘ÝÛÒ;“IIÐÌ­*ªòeBe@ÚØeCr¡¹PÔô2´2´%lÙRL¦¶PܨnT5=­­&T-lÌtóv¤2¡¹PܨjzZZL¨nT1սڐʆåCr¡¹PEÊdʃ•²e2eBª¯&Ty¸än:ÝÙÝÚÝ“^îÖì“[»¹$™$ÐA»5ó‹[æ·575¹»»$m§§2NkŽ·wdszmÍsv·vMnîäÍëV]ÍÕ.æíVÔÆö·(ÊuR
+™FI•2¢–Mêóe¦*fÜ6ÂGd°–™—w–BLo,6•2¦mÁYY‘åL©•1Ê•2¦eeO{q©wDÒ,njlÈÖG“­ÂC3ÓouÍÅ. ²<Õ5ÍY¯"Èòu²æM¸ëMÛ‘äÚ¬¦ú·™‘Ùé°v㆑2TlÇ´äÝêÃe]äk&ãYE‘äYE5ÍêcqUI$‘·‘‚Èò,"qìS^õiᏫ(zÅ‘æõ¹#zL‹5äNá«ÍU‘‘UdÜ›5Ç[»²9½6æ¹»[»&·wrQvãU-ïOMÜÝšã­ÝÙÞ›s_7kwdÖîï‘ÝÕ2J­ª×½_/—Ëã¾_öî®®žòù|¾=åòúÛm^ùòù|¾=åòù}™‹‡¼¾jUI%Tª€UETÝÜ’L’kŽ·wdszmÍsySwã»·µ¹rïaiènfeÝîì—w.î]IwrîåÝ˻ک.îUHÛå·–ß=¾¶úÛëo—Þ¶úÛìÌÌÌËoYrîåÝË»•R]Ü»¹wpîå;—w.î]ÜRK»—wnîÝÝ»»7oHžEBŠ-[º¤™‹H¢ŠH¢•UJH¢ŠH¢Š]«‘EÝZ·1bűÕh,Ö¯«šd“\u»»#›Ónk›µ»²kww"
+•2åìš1ÍÙº03„Ý›£ªªƒÝ›£ÝÌ›	7f—¶ÝËš,š
+f†nÆã­Ý‘½Ý­Ù5îínÉ5»»‘êË#›5·RÛ›Çε¾ksj›šGw|•­³y5ñï/w‘¾u­ó[›TÜÒ;¾l+”#œM6Ö¨¢’)&bÅQE»«Šrª”QEš¸¢—j(¢Š8µnbÅ‹c3H$n:ÝÙÝÚÝ“^îÖì“[»¹3I7`µä&îÈÛw+%¼«Öñìn:ÝÙ#›Ónk›µ»²kww"‘.éf]`¨\Ëטh:¥"Õs.’].sÉœˆâ·—K¹“VEfnZ"³.–Es.é{•3¥æTÏÙS<_eL÷o“Õ{—K½ÅŠj½ÊÔÅ{—K¹—Y5^åLé{•3ÅöTÏÙS=ÛäÃ:^åLâ½Ë¥‘\Ã’Ý6­«2ë«ÜºYª÷-3ÅöTÏÙS=ÛäÃ:^åLá{•3ÅöTÏÙÞ…îW;â÷*gKÜ©ž/²«"¹—K"¹™ŠÞ],Š÷.–Es+Sû*g쩞/²¦tîr¦t¼Ï³“Ó'm–ÖuJNK+*“)Xˆ+‘fAmQ,ÅN7Æu¥U-°¡ô{Túõ«åç3;»™Ì̯«=±aY­–ÙC!guOvÕò·™¡™›™uRé"º¾”ĵ]S©wjMÐ̾ÏfUífÆXRsÊ{¶žÛy—¹Ýܯ­µ˜AŠ!Ï)îÛën[Îfwsww™•}râi †Õ
+––ذ Páåæ_f–>¡Ï[»†ožÏs““bY¸Šέ@èH×)©©>†©´úiMëZjj[ÖôÓiôÒiZLèÖ+ꛘ–±–sÊ{¶žÛy—¹Ýܯ­µ˜
+‹¶”´£Æ Æ"1B‡ÊxÃ2àó5ÝOpÓœçM7Öjn¥³Vå-[©6¶ö]Æ®ÓÞŠjÖ[NnÁDQ2滽Õz·U-MS×{LS+iEuÜËŠæ—Ui§³&KjJ¢ZŠ"åˤËpŠšÔÔ¸·wnÌ4ZŒyMãÍ3Uµ«36í‰â«º.ñ]]]l­@ÙÏ/)ëyÏf¹•÷³pÝ¡mX‹ Ð8ˆž,´¼´OaqªX²ê•©4Ýí­[«J¦©¨Öfæ†ËQhÌ»¶­§vc©ŠËÛ¶5—T^,ml­I£,)Ï)îÚ{mæ_fwwr¾¶Ö`…9å=ÛOm¼ÌÎîægs*ú³D(YÏ)îÚ{mæfww3;™WÕš2Âʪ¼òžë_¼;›ÜÌÜܵ|œòžå«åç3=»™Ì«ê†‚ÅTUHP ŠZª*ªªB”U¤òÔËÊʺ¹¸kݬÅy3
+›SdÖïswY•­`fn0Ó/ ›Öi£aœp»»Æñb–ÖeÎ.\è09á»wwW/1ãÇŒ)´7˜·7^™Þê5î¶£#„d3V3Í6{ºf¦õƒzñ¶f7–Y‚ˬ¼Ë»ËN”»V¦Ý©»˜ÁÓy°ç{ç{/C¦ö[y[Ó¡Ó{
+½¬Ñ,/×0ËKî黹Ïa‡·yÉÛwB›îg9.¥+cZ
+
+Vˆ–ó0ö“tܘaîèAГi¨ÓM6š­¤ÓLO§ÖÒÝZµjCÕU«Vê[ÓI´t%„¥Mn©l¥"‘N¢[´·¦œ­KV­ëV­Þµ.ôïg
+àsfé³)hT›ˆ‹-”ãcì3†Yî÷w—¹;;Ó›Á99îÍoUÌëV£-µ‰ôÖC­Ëm5ŠË¼–¶V¤Ø‘b…QbÂRÊU,âžl§3'°Ì™0¦ä÷»Ã‡''8s‰§Ô}6ê¢Þ·­Z÷V­ëw_MMè-jnîº[zYÐÌF]ÝÝttåR›v¡vòægww+ëmLT(YÏ)îÚ¾å´ægws3¹žËkX!³žSݵ|¼ægws3¹•}Y¢,ç”÷m_/9™ÝÜÌîe_Vh*ITHqñcÊö¥•+Rk[©4Úm>šNoM55&ŸM6ŸL8sfàsfé³)hT›DQI(Q<R´y™‰í3Ã.5Å&ˆ{kVêÓnõV©©ˆ†ÁDHmÙªõ;1©‰îæîeê½-»j̼ºWv­¬4B…
+°)m§ëB û¹3)o—ÝÌæîfw2¯«4e•E“ˆ‹ÎP§°À¥,¡O{¼;ÐáÎáÉĜޚjjM>šm>šM3¡kI:År–…I³žSÝ´öÛ̾Ìîîå}m¬Á–œòží§¶Þeîgww+ëmf@Ÿ_ïóõ÷Ùªo´²} vEùWj6ŽRÛiÀ†D…š°û*™,*©¡Éà(@ê*l…YɁ€p‚Š’… ÉÙè, Nȧ­·–ÒÚ9Kim´à a¡„êªÐ«
+ª¸dÖ(®„¨´ä r@`¢ˆ°¡d‡aè‚ÁÓž8\8ŠTuuJŽ[TІA=˜pc6yie\,ÁÅ[(U\™8r*Xdé¤ÈLŠlN!Nd¡vM„Œa…ƒ4°Œì<C€ƒ$<E=m¼¶•G)m´àÀ`rO*©eXUU02²Ö(©˜¡ÀaÈ`E&ÂȐ`1QB‡Ç1)jŠá“I‡ˆd8<¨+J-¶Úr‡‘b*ÕH˜+ä0àÚ¦LÌ0ÃsTo9c!ôâ)ëm^G)m´á!â†ʪYVUL†CÂ„ëTÀ˜¡ÀaÈa ÁDRl,C¡à2*(CÁÏ^"&
+®W¨å´äÈx‡0UmFÒªà`r,Q!2@TÂb98$ca¡d
+‡aâCÓˆ§­µxTm¥¶Ó„†ˆd9'•T²¬*ª™‡„)$ëTÀ˜¡ÀaÈa ÁDRl,C¡à2
+£xë8•=W*6ŽRÛiÙ!è'•V…XUUÀÀä(°@0'QS	098$`¢¤Ð²ðñ‡’‡SÖÚ½*6ŽRÛiÒC!ÒC	åU[*¨UU\†Cá ÂuŠ*`LPärH0Q› Øv=ÌÉÍÍúáäŸW¹»¹=Œ@öÜŒ=;0Éè„9Ø+Õê•¶ž ÉÒ\œ–h}*ØdÀÅ]™=9t˜@Ü…¡n˜éµbI
+†;b&ÊÖìß\/I¡y t<
+Ò*ldR³YJ
+ÄAY(Ð*hde†1(ÀÔÑ¡PY ²A²…"‚±D˦¦†ŒÆdµj¥F°RbÈÁŒ,,UTÁŠIY€1€°Å%eM(Ãڏäð¼Â÷…ñ”è„Ê}ñÒ_”-†ÒÛ3ó K~ ¿¦32 ¶Úa+m¶Ûm¶Ûm¶Øa,m¶îfd’™m¶Ûm¨¶Ûm¶Ø[€Ø}À%ÅèµUUU]üÀ@&–ûékY µ°[°_0XÌ?…ÿ1ÿUýÊþo͇õùꪪªªªªªªªªªªªªªªªªªª¬’I$ú ÇésÉkñþ§ýÏ•¦®VBî’ª¡R)Š~ª5 ÖÂÛoâ›­ýŒÝã030=bf¤ÍIš“<MK.d²÷õÙ¹YÝe·½¨303YfjLÒ‘ONãp1"‘H¤R)ŠY˜Ø[am…¶ܼæŸ^ü¿£m¶­µm«m¶­¶Ú¶Ûm¶Ûm¶ÛVÚ¶Õ¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶ÉùÓàI:Š( ¢Š(¢Š(D’oê?Šg鎖Á#`Œ‚0FÁZX#`Œ‚0FÁ#ai`Œ‚0FÁ#`Œ…¥‚0FÁ#`Œ…¥‚0FÁ@Ÿþt?aú6Ûm¶Ûm¨¢"Š(ýÿcm¶Ûm¶Ú"Š(¢åå¶Ûm¥¶ÚŠ(¢Š0yÎs³¾}` PPfffc ÌÌÌÌÌÌ ã{ÞÀ  Îo{Øs½ï|ï{Ø    ÷½ì   {ÞÛ›ÞÛ›»šîîkÇù3ïÕ~5ZÕEQTUEQTUEQVµQTUEQTUEQTU­TUEQTUEQTUkUEQTUEQTU­TUE^b}ÿJ|9•¿j¦[–}±M·lúÅ6ݳ¸¦Û¶Xbc>•2ܳ1DrϬRÛ–5LµÅTËrË1ÍùŠm»gÌSmÛ>b›nÙóÛvËLgÅL·,ÌQ³ë¶åS-CåS-Ë,Ç>U2ܳæ)¶íŸ1M·lùŠm»e†&3â¦[–f(ŽYó¶åS-CåS-Ë,Ç>U2ܳæ)¶íŸ1M·lùŠm»e†&3â¦[–f(ŽYó¶å–cŒ­ek+YZîOŸ>5¨Ûò’˜ÅÄÅf"‹™^ÝEv¿.¢‹»Dq\ÊŠ.e1QEÌ¥q[”㨢îÓŽ¢‹»EÄQs,ÅUDr™*Š.e1QEÌ¥q[”㨢îÓŽ¢‹»rÚŠ.eÄQE̸*(¹—2ÔQn\娢îÜææ5¨ÚÍ­."‹rå-E2â(¢æ\\Ë
 ™j(·.rÔQwnrÔQwm·E̵1[–åQE¹iË­j6å7]EvݺŠ.m¼ºŠ.m¶â(¹–¦"‹rܪ(·-E强Š.m¼.µ¨Û”ÜiõœkQ·”æ5ùœkQ·”Ümøñ­FÞS˜ÝûmkQ·”få]Øð ~ÇÎ* =÷Z“xï¼÷YÎñ¼c{ÄǍÞì¾1£YÏ‹çšÎoŽ×êF22DdüiŒ• Q’¤
+2TFJ(ÉR*@£%d¿bTm¡÷J…µÆ•³Ið~ ñxrá}ap`·ÍqÇ—qÇqÇ6Ûm¶Ûm¶Ûm¶ÛmþQ$ºÔ’ê$—UI%ÕM߁ø¿¡>V­Ø¾÷7aŒœËï2NI×½»<8ãŽ:x]æsÏ\ð;»û;ûûûÎðç—<óÍžyç›»¼¡8çФ€ÍÍ9ºÜ˜Äò þ ßÚU&º6Yà²Ë,²Ë,²Ö,X±bÅ‹,Yø’Kªñîù<÷žòI$“¾5US5US7wqÇOœqèqÇ8ã§gqÓ±,e‰B¦H©^{ÂÕKêD’ïDÊ ¸úàxBÏ kÞ6/›6|ÇÌOH2(| |aòˆ¦añ¼oùnÙª3ãgå©o©\Õï[â´q³,ã„ãê:€Bqópçyϧž~v‰}×åç%q¼åË’<Ãd…”Vî쩝Vg'ÈÜDðPÝÇùÓ¯nÅsÕÇ=ÍÏP_ã}fÏNæÀqΐ¸ë=Õséã|ÛñÌâ¼Wu3…Ò䌖Ô`w„Çà)»ß¶[ÝsŒã3šõáÆ|[œk‰†é¼BRá¸ì¬~>LÞë-âí²kåÝÞ=lSÛœø°ñaÔî°ØP/|L ´ªy#lsM:£:0ÝÓE ?€À2G$—–µ™¹Y¾mˆ¿º´Ø/t’´‹¯\Ùâ¨õ¬X~ê
+|ÛŠ§¿Çžù…Ìö×Ã3wZÖwŠ¿ÅkfCŒ^'Øð<ñhÌ*Óà==ېYaº,ãÇÒ ×RºïK¯Ã3äü.ŠtÛLM¶ŠmêItØ=̬v¿>’]Ç®ñ1ff7—wæ7˜Þc¥¾›M·ÒK§IáoòÿI.£—tƒ±ºc¥V6™—æ7˜Þb¬ll¤`éQ™cüÊIt<ÝF˜­Ž¿a¯G¹™ÍÞswœÝç7” ý@°öÀ ?/¾Îò…èÝå‶p½á{ùôÞp_ 'ã ŸŸù`þKJ_ÈýÌvâk´Æš–Ú·lÝ2îfîâæí«lÛZ›‰•wmLbá¹¦Š¢5Ͳæ]£¢nåC6†îÛrn–W\CuÓs4ÕEc1sw7w4×Z\É—õ\ß°?8°õ…ÞØþazü{Bè ]ÁwÜò…¸]áw¸_h_€.¡pá{‚ø…îp\ü¡yûBÜ.ðº‚ìÁvóÞp^|¡rP½A`_0\…ÀGàHœ‘˜Ÿ…‹«Ø
 A|~éòŸAôÄqù(ÅM>9™3333ÉøÀ¤êªª¯¡1UUWšÉ$’I)±bðÆW÷~ØõÄøhíMªŸƒéÈ©¬Îê¿îîæcvì ¶h«b¨ ¶K‹b¨ ¶E -Š ØE¢ØE -„Z -	¼Ìðfµ¬ñ52k5¬ðó]8ã·³§N;½­»NÞ½zö÷÷øúÚóz fÀmƒžyç{Þ÷½ïžzúÿWÕðü?cæ›ùgÑø€<@/ÇãŸ7šóy«Íælت¨ ¨
+›m²ª  6l¶ʪ€
+€Ù°fØ*ª *fÁ›`lª¨ ¨
+›m²ª  6l¶ʪ€
+€Ù°fØ*ª *fÁ›`lª¨ ¨
+›m²ª  6l¶ʪ€
+€Ù°fØ*ª *fÁ›`lª¨ ¨
+›m²ª  6l¶ʪ€
+€Ù°fØ*ª *fÁ›`lª¨ ¨
+›m²ª  6l¶ʪ€
+€Ù°fØ*ª *fÁ›`lª¨  °`
+ª  6l¶ʪ€
+€Ù°fØ*ª *(²ª  6l¶ʪ€
+›¶ ªª (l ÙUP@3``ʪ€
+€Ù°fØ*ª *fÁ›`lª¨  °`
+ª €fÀm€*ª€
+›¶ ªª (lت¨  °`
+ª €fÀm€*ª€
+›¶ ªª (lت¨  °`
+ª €fÀm€*ª€
+›¶ ªª (lØ;Þ÷½ï|ó é={îwU›»»—wUwwva‹IjÂPØER[E°” ¶e´°” ¶h¶haÝÝÝÝÝÝUÝÜù !ðG䪨<óÏ—ËåçŸ/—Ê¶Û UU 9ä¶lUT ç¶Û UU 9äm¶ÀU@ Í€Û UU 6lUT PØ
+°UPž@`6ÀU@y›`m°UPž@fØlUT ç¶Û UU 9äm¶ÀU@y m€Û UU 6lUT PØ
+°UPž@fØlUT ç¶Û UU 9äm¶ÀU@y›`m°UQáÓÐô|qÇqÐxvù<½½ýý½½ýý½zõíïïòy*òyfÁ›`lª¨ô8ô}:qÇN:táãŽy¾ûÆ€~`8( ×jøâï9»În󛼿ï9»Înª¯9»ù*p *¾Üq$ÕUjBîE´dÂH±!#I [&0I$ÂHÙ0[$¶ÒÙ0’ ¶L$‹a$[KdÂH¶l˜ÙØqÃÆx~³YšîÌÌÍwÀúû}¾³íöË[m¶Ûm¶Ûmmm¶¶¶¶¶Ûm­­µm¶µ¶Ûmµ¶ÚÛm¶¶¶Ûm­­¶×	1Ëm¶¶¶Ûׯ^½zõìëׯo8ó»»»»¹çÇÆ¯Ù°fØvöövsÏ<óÏ={Þ6k¯YÖÞ ‚Ðl"Ñi-XJ [ªKh¶€Ál¶€¶€Â-Â-l"лª»»Ÿzö%Äæ  ë××›ï·qÛm¶Ûm¶Ùl¶Ûd¶Ym¶Ûkkm[m­m¶ÛmmVÛmµ­¶Ûm­­¶×I1Ëm¶¶¶Ûm¶ÖÚÍa1rÔ˜-¶€¶aÚÅ‹«E¬Â)bÛVb­´³²ÛmÌ QjÌ"ÛVa€¶mL· `ªªªªªªªªªªªªªªªªªª¸HHŠªª¹™™›&Éëêê^ª¸éçñÇqÓ³Ž8㧇‡‡‡Ÿçøø×ˆ3`6ÀU@ Í€Û UU 6lUT PØ
+°UP@3`6ÀU@ Í€Û UU 6lUTùö Ÿ_JªªªªŠŠªªŠ¨ªªŠªŠªª«ð>ā˜ªªªª¸C~–⪪ªªªªªªªªªªªªªªªªð∪¨Š¢*ªˆ¢¢ª¨ÅTUUS1UUUUpÆHBI$’€ü¤U r©xòy17æ«r˜wñ¼;ÏexŠ»x‚àÊᐬӼ
 ¾ON¼=¦k©Ã”Ç&R™»SÏ{ÃzÔݧUŽÕ§WJõ\ËWº<J(¥'ÓOS´¯.îÕ‰­+P™Å&æÒÈtœ»œÙO[g{¬î0ç©e{Þto:‹'M°fŒ:wÌÝ…Üï‹åë}™Ã{¢s¾ÉŽŒ*hóC˜Rí¸aܧ·ÕíxÞÞ[…­×[ÜïyÚÓ½«^·7;!$:D´j`°Ë&Ë,¦2Ë ŒE 0A$‹`*©"1ƒ1cd‚AQ‚ªÄ"$€0ˆD „c*1ŒeˆÂÄabe•ae–2ˆJÕ”2d0`2eV™U†&!“I«[JŸhì^Ü3(hìv·ÏKYŬ3°Z…Âê·_Œ¥Ôûó: 3óÜ{I$’I$œ ú :kŽ<’ºÊ®oÓXAD¸9€"¢í+	¬ÖC œK‚ñ!?3 úÔÜζ’I_Ÿ‘û?È_±üÛïã?üæ}Zÿu.GÛs—omWáGS]ÞÝÛy8xyÜã³´ÛÁËyÞÞuyÔÆ{Ç>ïã“¶‰–‰ÃDËDD‘$ID‘$ŸXÍø-#€÷`Üë­uóãÀ                                                    ’]6Û                      
+M¶ÚëRKªT’]nî‰%Ó¤’é&ÛÐ       i$ºtŸ>¦Wm¿Fq	M`1ƒJ*`BL!Jœž&èt5Ï9ÓÛŸ>ÃaËs–§-@$	4 ÁDS›Í-3¥¦t´Ì¦ùÂàààÜØØÚë›ÚÌžt©ùÂˆ+çüÿÞ¿½6õǃôÀý7ù‚ÙbZX…é¶óAÙ64F¦‘¨Ñ¤j54F#Q©¤j54Oö‡u½¹mÏCûé~ñ?x–¦1>^‡{uÐþåâjjhׁ³û–ïscF¦¦¦ššš4jjjhÑ£SSV­[›×üA£Qª4ÞØÝo<%¼Ú5FF‘©¨Ò4j4MF‘£Qª54š‡ïÞ齺ܽ·¤ú}>Ôüj;ïÕ²dÇ[OÉhÃ&L0É“2dÉ“,¾áëï×øOß=Áïýó÷Ïeà!úãÈ;§qÜNÇc´íGc²v£·øNç}Þ}2ðx<à¼gŒñzëÊ{¥äxÏ
+;gHæŽg'4s99NhäæsNg#˜s99£™ÉÊsG'3˜rs9ÙÉÍÎNSš99œÃ™ÌäsnnK;þ{Âv»]—bþýù§è¿n}£øÀ±”dy_~ðOฟÁ.o%ÐètWIÍ'‰Â¸8£ˆâq8—ˆq+ƒŠ8Ž'‰q8‡ÁÁ¸8£ˆâq8—ˆq\\GÂú=ƒîÄÒj­4ùkkdÔb±2¬X˜¬,L«ÛÇÙºÞ>îÿ{]Gaælš:0ØÙÖ¶o<šiÃÂâ6šš5šš4…%%	AA at RRs÷<~®‡Nž„·¬RXXP¡BÂÂÂ…
+(SSSS¯^¿dæææú	ôyþ?°×à>Û¼ôì\œN'q8{®~ýÑÒyÝgZ¿†ë:NNgpppq88G‰ÄàâpŽ'âq8œNÁÁÁÄàáN'‰ÄáOÞþ/ù¿Gìw_Òx…ùoòžW¾û³ü_ôÿ·çú|ÏÚ4~“ôžÐ« ·°,`\Ÿ‹*°þy8hœ4N$S ÔP ÐiüùÒÖdàäa˜…û€´ Wö
+"
+Ѫa†e×0ÃGƒH‚ºá¹†æê5MŒ6:¹†æ»[QµÁmáûŽËvæöíÁRŠÎZÆ‹h —‰ÀiTÆ3€Èρ@ø	¨¤œ2ýé´¾¥žúÀ²ê 1œs
+=\ms@Ù{³¯	¿´ÓãyÞ»mÁŽíÄlmio‚¦Î»J&¶c°[ ^¢ª2xaݪ ’
+ 2(²
+†rª†ï±D`ÎgÐø4ÓësJǶXL74ã^@|/-ñÊ ŽH€»Î¡Æ¸4ÚJ ŽôùÀäÎJ´¥)Îé7:d2eExŠkµ»Þ¬Ôè0`:Á„Åj‘qxÌ,È &}u“ßG^B€ð“íì2ZaJ¡X°úØóp,ÃC0;©ÄÎBâŽ}a9Îmòxï!L0²Ée:ºè!gÝ ™ÏRö<Ù‚Ls=&ÎÇO¯aî÷,ÓkÒ'WVõ0ÈÄçZYƒCq	øo;šÕlÂØ`ï¢ÁÒ´ožzÑ ¢t ?É ožŽ!R¯w1\MÍ›îLtãœq;K®&™¢ÉÃÉéß W:ÊÒ3)e^;»©!Z®)³qk‘·wpÕí®3ÆYî4ìÜçáÜÈeÚºªQD˜Õ¡c–T¥2õ*Ø-Áõ˘'½Ì÷”é6rzw¶ž¼:xFO0ÐÑž£äçszÎo¶u¼ÎM}äê{)™ïr¼M2ó|†ºƒm/»Söz^ÝkÇMÝ^SAE]…\¼,¬Ç›º¦L™”ý­gA‡æ5[EÙv[ÄE'¦1ëÖÃéAfwâJÍñ¤už3ƒ<ãXÈç©ü|c\ñ‰ÎAvÍ*Ÿ ïߍõÞ1Œ`                                                    5$ºm¶                      ›mµÖ¤—T©$ºÝÝÖ’]m$—Inîè       4’]~àPÖç<—Æ®sMT2ãä7”POÎIãúRéî‹{Ë
+òë6ŠÿtÃâphÖaûtä0-’ôòØîÏ­ÆEÏ®mK‹ª3ïÖ_xÖ~áç?*;[æöyÑžk#ŒnIòü…qù«ò‡åPzwÏqù ; ~|˜3«,«…Ën|A@° ¿–„›nËh¦`½è(©Î†LMjdq­ÖHüv ‡¸ý=ˆÙ w:ûÇÏʆ§é¨òú<—mÂwõð`Å>r85퇼øFéÍ' îf™X:s¾÷¸fÍ4fI&}ÕGÀç£Ñk¯ÇÜm//
+Tç1¾yf¼
+j¯¬3‡>M%cr5é¾5æÍÔ$2z '’éìw÷ù÷àŽ÷îã÷xåÛá´ØèËàˆg©~GÓÎL¦hóW¯ó³ï}±Þ²qñåÄ09Î
+I$5žÇ߼ɏsóب™ÁDøxŸ4ççwgÜÆë‚°jŽÍà“Š¦ñsA¬­qÎøôçš–<ì…å†Ù‘‘‘ãéëëå~µÎ<Jõû@€õ5=¸á,Ãæ¨âS%q8`0š…ß¾À9Ï“ØË‡NÎŽRõYİֲ«1>ÊüÉìO^¹¡;ÎBêyX‡<®oh¤	ëHW\%‰­¨ ëôañÍ6¥!$’I?µýŸäøO]ah;ï®ýý /Í9AŸßÇ_Gšøãõ;Ä ~o„ù¸ùîƒæ1Œc'tûr–œqU¨™ˆ“™l9;hyi˜bYÛŒ¥óÛëëœëãÉîç{zºZ·´¥j[ghózuC™iÃts½é¾æ]¢–TS£^ÛE¢USÕZ©¢mÉ:Xú3ss¾€i˽;žÊrt¶P™0aÆzwL›ÜõöV«Þç;ˆvÓ‰›ãšŠèN#­wÕ
+kÝ[.åm^¼Ê*˼™ˆººë}s½;½Ìåæç³¹H@‡ÞHy„‘Š©“aˆ2d2U“ a•)Æt›õ¼OGE#eÑr>DÆî€@j_[*ºÍä]^±‹Å5;ˈݲ†œßɽìâwʪ¢*"¢:-UQUUUü@Œü$&®èÍTÄ.ñ,¹}8_¬ ëŒuÎý                                                     ’]6Û                      	*·wwvªªª©TI.ªê­$º’HÒK©-$ºJI        4’]8„úïñtùò•UÒÖòó¥¯yÞϨ=ô|Nºêro°Ød´AÞhÖ¬ú.G‡ªÎ={˜Ù–²ù8öüàê9Ÿ_œÙÆ£__‡ÁÇÄÛ×+UR•›â²UØëZ‰uðôüPC”¿·AÜKP;è–"Õ,^ªÖZ(}m.‡Ý©$:?&ßG'<BBI=/8)îóŠqF5%rúK¡¸H³X
+P8äæï(Ùïv;‡ÄL[ˆ; ¡Aqã8\ÁØGŠ
+
+¥ÄY$Rxô÷×<1ä-ßæªIWD9˜ÐT][*µÚ‡•ôyôæ „wi2šP¨ˆQ¾mK/›Nâa1ÆÃd¢*Hƒ»rÁØ-Œ0!-d °ÃÜñD|L†éþ¡cÑ‚£™9uUš1Ä-1Mj[_#áÏž€±öþ~§[åC€ðãÐì	xÈgbÉê_2C)NT°P*A¸‹’@…IÔEj,Ã@5 ºBÒc‘ÖÛ"\&|΃–'/á7$fð’ƒÖ.tGVWcëшqçp:.F@B)…¤93|¼I}¹ˆÜÛ•Äd3ޤ‘¼æ%{&5!Äâñ.§Ä]:Ö0ïÇ!ß81ÏÕÅà,ˆŽ¢ƒLARDREEA$„‚„qø8X E$ ,€8ÒA!o²HVÏš2XlëSÞ}µ{ÌÔt¨JSnsÄÀìÃÐç“sª€!ªÑS‘$A‘…¡+ÏšùM:…DõºŽè
+j€JLjXȪ÷„¿K£ 	#/U"o¥öÌzžOMžÞ7çzõòç‰ß´ô>Kè>ºÏ~`z`õªÅü1$…z{`,û:Ô’Š €,ñòè²æï
+sŒy”ßÂÁTF¨ÂÑrÎLzž<îja^å&ì+,Ìó‘b«Þ¤HÀ–åQ1egUvSËUJ8jÌw‘>¯(Ä^â^îR©èZŽ»o%Éг}0RŒÉ9vŒéª®–Ô:ç¹Î%¶Ym
+ÒŠN0ï¼¼<çCžÚ³¶…îè¦ÃnúÏrš—¼z+¾MyêÜw—]q»]ºîÖãÖû7‹Ës¶õsmy!†€ÄĬ+	`ÁX˜S&©†&&ņÌ× ˜:QÝß?/öCš÷›~ûÈNÞ÷6Ÿ‡Ûõ.÷‡o¾éeùUETEUEEUDTDEUWý 	ky½€                                                    ©%ÒM¶À                     ö©¼nÝUUUUV¤—WuV’]n›­$ºÍ´’é-Ót   7wwwwwwwx K'FÛíë(˜Éi÷Pá3|ávcç>ƒç‰ãªÂØpuÌ×ÔÐ Ð	~ÔÔ rãÏXQLIÖ5¬dLc/¨Ìc…Û²Šó…o-€"O[½.ȆìŒ"”ž`œ8‹zÖ¯#Ç^PC¬õ—€Æ-,
+¸`˜?¡ö0¹ËDÊ[o#IT	ö BuoÏD’V€õ€sŒnš bSâ)–©f¸hÏÇØ}ƒÚqŸ~2,¤ŒCºy´ñX–³šd§æ»ë«¤<ÄÔãœc«¨$Êù‚hÍ-ÇG&fäzéó ·J¬$H½§ñaškwg‹»|€U¢ª«fµ¨®g‹ˆU#o<FyØPIäxä;Í-U„€IMª1év_Ž<ƒ(îÜòãpJ™[··Ù¶TÆÍ%ó|«Ù]%hÞ)d.¼qhTžÛMXWØP÷Cj`w‡®ykÚ¦Lã90âí²ðcŽßˆò
+ ,p8sœÃCr~ž“fðäü¼o“>¾Ž›µ*@j^)	é°Ý‘ϐó8‡ÄÅÍ•ÆÔ6¡ïN³,¹¦Òí--l±°´(hhnÒÖÒ’¤¯–Ÿwç
+ÈtwÏ?ŸAÕ	×D'Uô³¨_±?	Äû¨>€Ð¥	B´"¸­°XYw÷ ¸Æ¬5v‡]cèiêf€C'ÖñYóQ›uâŽ5€×ѪÔînT,¬¾Eû‹Oɪªªªªªª®Eô-žÛ/¨L_¿'®ýyÜòiŒÑª"q®ámž15*){]g[Œ)eæ+»êâD{q¤åNwݺá–ñz5¼J™Ç6W¶ûÇg¹ík]Þõ™ŒÊQÕ¼¡µ‹6d6ªJ`V^sÉÍœævòñîÀèp3rº;-VºÕ¢¥ÓOh×)Ô´,[›v¯-`}–c½zùÞ>n֙ˣ¶¸Ü·¼âñ̼¯2ñÛ§6Û¼’@ôtËœ
+6ôSÅe•ŠÅ0°YVTÉb˜¬S•#$D&0,”ï耜TV Cˆø¨¬@‡Ò¢± =Åê½÷« T8¾¤Æñ£RµÏµk—zšó®5¯}bÀ§s¾ëˆ·’ækrèÁ%†1ßç3™œyÎ+¡² @	>yË϶îîîè                                                                           ZI……€      nîåP·;ø_¥9XVN[ã 8?`ÍyÞóéÝ­Îe|ÆAÔÑ{Žºª§Ø¶ñG¥%b‡Ÿ/»ö|döø×ÄN¡ÏŒà¯ƒY\Í?+\ÂòԾ㮉>9€!¾¸Yj¨eJ#]{ÛÆ3,/¾-,ºÈmtk'‰5Á 5!¨^Ó±®É;–´&NxèÃpÁF1€¸á£Êã!ã˜ã,2õ›Ê,×·ËBcuRm‰³yʘ±r}p˜žs®—	ÄÐ`‚îöޏð5~^fü ‡X éì °i€‚a8L+œXŽN3˜,ÂäŠåÐ( µ•s)C
++Pˆ•bàZ†LE÷÷ 
+#&AW+¤J¡¿\û5GÉœï½Í$÷HvŠ ügŒóÍ¿^µ°¤qÐÈVɲ-]² 
+ ¡BÐÊMÀlJZ*âÁªP$û9/í{îÍ»õç‹õ5)ÕãV†5eDuרúù€¿f•XH‘y{y"Ld¢e‰1b„É”˜bDÓKR‚D‚ÁJóլĞîéYT ”T—ç޼ÓRhÉæ¤ÄÅn€½K$À׍NÜÍfqÝ“‰—/rƯo{¯h sœæs®wÏ+»Ö£2ª'vÕÔhl·WXipØ|qW—‹¾|Ü&o#zÔSæô_œzT&ȼ'/w†€˜c}Ò˜4cq‰ÆC8ŸHYÖ àl7` hMlU„
+ƒ€pX¨% ;äñÅØ 릾5>¯ýñúÿ±_¯ü³£ö?k?öü?Õãÿ_þšÏÿz»¥Ÿôÿ®ÿNU­ßÉÄ:´Ü¼Ö3ºù%ÖI9ÿDó”­ÿ×òyMy¥R—*‡‹¿•jlÄ:´Ü¼Ö3ÊòK¬’sÄó”­ùç)¯4¥J\ª?'éöêÔØÇui¹x=¬7‡¯Ø]d“}[™JÏ}”ם”©sœ(ô=º´=cº´Ü¼ÖÃ×ì.²I¾­Ì¥g¾ÊkÎÊT¹Îýn­MŒwV›—ƒÚÃxzý…ÖI'«s”­ûï)¯>©|ç
+¯rýºµ¯ëÕ¦ùx=¬7³·ì.²I=[œ¥oßyMyð¥Kç8Sô=ºµ7ëÕ¦åàö°ÞÎß°ºÉ$õnr•¿}å5ç•/œá]úÝZ›¬wV›åàö°ÞÎß°ºÉ$õnr•¿}å5ç•/œáOÐöêÔ߬wV›—ƒÚÃ{;~Âë$“Õ¹ÊVý÷”ן
+T¾s…?CÛ«S~±ÝZn^k
+ìíû¬’OVç)[÷ÞS^|)RùÎø~ø]Z›ãÕ¦û¼Öðøÿ]d’~s”­þ‡)¯>©|ç
+~‡·V¦ýcº´Ü¼ÖÙÛöY$ž­ÎR·ï¼¦¼øR¥óœ)î/Z›óêÓrð{XlÎW’]d“ž'œ¥oÏ9My¥*RåWÏk>ÝZ׬wV›—ƒÚÃxzý…ÖI'«s”­ûï)¯>©|ç
+~‡·V¦ýcº´Ü¼ÖÙÛöY$ž­ÎR·ï¼¦¼øR¥óœ)úÝZ›õŽêÓrð{XogoØ]d’z·9Jß¾òšóáJ—Îp§è{ujoÖ;«MËÁía½¿au’IêÜå+~ûÊkÏ…*_9Ÿ¡íÕ©¿Xî­7/µ†övý…ÖI'«s”­ûï)¯>©|ç
+~‡·V¦ýcº´Ü¼ÖÙÛöY$ž­ÎR·ï¼¦¼øR¥óœ)úÝZ›õŽêÓrð{XogoØ]d’z·9Jß¾òšóáJ—Îp§è{ujoÖ;«MËÁía½¿au’IêÜå+~ûÊkÏ…*_9»ô=ºµ7Xî­7ËÁía½¿au’IêÜå+~ûÊkÏ…*_9Ÿ¡íÕ©¿Xî­7/µ†övý…ÖI'«s”­ûï)¯>©|ç
+îbñÕ©»ˆui¾^k
+™ÊòK¬’sÄó”­ùç)¯4¥J\ª=ú}ºµ61ÝZn^k
+áëöY$ž­ÎR·ï¼¦¼øR¥óœ*½ËöêÖ¿¬wV›åàö°ÞÎß°ºÉ$õnr•¿}å5ç•/œáOÐöêÔ߬wV›—ƒÚÃ{;~Âë$“Õ¹ÊVý÷”ן
+T¾s…?CÛ«S~±ÝZn^k
+ìíû¬’OVç)[÷ÞS^|)RùÎýn­MúÇui¹x=¬7³·ì.²I=[œ¥oßyMyð¥Kç8Sô=ºµ7ëÕ¦åàö°ÞÎß°ºÉ$õnr•¿}å5ç•/œáOèyujoÖ;«MËÁía½¾áu’IâÜå+~yÊkÏ…*_9ŸÐòêÔ߬wV›—ƒÚÃ{;}Âë$“ŹÊVüó”ן
+T¾s…?¡åÕ©¿Xî­7/µ†övû…ÖI'‹s”­ùç)¯>©|ç
+CË«S~±ÝZn^k
+ìí÷¬’Oç)[óÎS^|)RùÎ÷Ž­Mùˆui¹x=¬6g+É.²IÏÎR·çœ¦¼Ò•)r¨ûôûujlcº´Ü¼ÖÃÇÜ.²I<[œ¥oÏ9Myð¥Kç8Sú]Z›õŽêÓrð{Xogo¸]d’x·9JßžršóáJ—Îp§ô<ºµ7ëÕ¦åàö°ÞÎßpºÉ$ñnr•¿<å5ç•/œáOèyujoÖ;«MËÁía½¾áu’IâÜå+~yÊkÏ…*_9ŸÐòêÔ߬wV›—ƒÚÃ{;}Âë$“ŹÊVüó”ן
+T¾s…?¡åÕ©¿Xî­7/µ†övû…ÖI'‹s”­ùç)¯>©|ç
+CË«S~±ÝZn^k
+ìí÷¬’Oç)[óÎS^|)RùÎþ‡—V¦ýcº´Ü¼ÖÙÛîY$ž-ÎR·çœ¦¼øR¥óœ)î/Z›óêÓrð{XlÎW’]d“ž'œ¥oÏ9My¥*RåQî/ŸjÔÙˆui¹x=¬7™í{%ÖI7Ôó)YﲚóJT¥Ê£Ü^ý«Sf!Õ¦åàö°Þgµì—Y$ßSÌ¥g¾ÊkÍ)R—*q{ö­M˜‡V›—ƒÚÃyž×²]d“}O2•žû)¯4¥J\ª=ÅïÚµ6bZn^k
+æ{^Éu’Mõ<ÊV{즼ҕ)r¨=´¬·YíoýóEU_“ú;Ýæjª­ÛÝülÕU[·»¹ªª·ú÷»¹ªª·owsUUnß{·¢I­Vµ«Ñ$Öª÷ø Ü?¾ïâ}¿­÷½Œ}Ú BüA~ª ¯Ñ´’¿‡OÃ×É™†8Ö±OÅxýøuàu5‹Js»šm™§8&¾|^a®&ËK5¨"SÇÞe=ï¦gqñÄëW…­9sÝÍóÞœDã콚±«7E˜®Zˆ}^ÊS-[e ,T·qŽ–fnåtéi="µ.ú´–õ©b2ô*x´²¦÷;îLöéînfy¯y·Ë×…¶e”±éë‰rÃqóïW•óÞ¹­ï3•ºï-ç3ÊÜŹV¸Üï+yÁœDDZÄJ€¢xD@
+¨vºFÇ#î.ñÇWØÎnë=çœçÓ·Ø’]YV‹ýMþ­áZÿ+Å{Ó}.ºÐÈ$                                                                             R
+I…€    ŒcÆ1Žo¬·ÆóÜk‡W™&™„ü°ü†÷Ë‹)6­"a²ˆØ¸´bo,ÌÞÌn­$M’ÆØÍ‹PaøZ:†ÀI ‡®âm‘ŽØÁJd”ÁKÇèu}ãeãg5ݯ7èΧ ûuc80!ø²Š‰‰^Am¬e Žý¾ù—o×÷nß1¿Zƪ̢ƒ××u‚ÏZô8³Y¬ãx­T™ª¡ür›Ï!Ÿ…1úÞŒ)¡õòéŽe>s’×NL”a—²ŒÇÄ–,AˆzÐÒ)&ú8¼BŽsÕY‡3©©&C~NÍäH‘H•J=r”Š /QYëCv--	@~rÌù¸snû¹‰°ßn#­j‘uÇ&vD @ EâŠe â®&
+ƒ?A Ì=ô|ÍK0ÎbÍS‰îvåUÃèíï‰e"s$¹´	oo¬˜íJVp…€ôó³Žx°¢õ®8SUöà|ëÕÄ_±Îþ“ˆLŒÙ(0ˆ1„b¡%­+¨w;Ƥ$’I'Þþ.ËéæW<äëç~¦<xÖl:ždÝräûîç×™|úq¼<÷ÔÆ)…ªû!‡4çç¸z¾z™Þd×fÙeæ`#‡bthj¼Õ©ÓËXîU
+®®®Í½t–9K]fV®•K¸­â‹n!]C6¥\d©ºÛ/©¶Í¼éj[ml®ª”êîúO]ÔÜÊlžË([[ÔãÒÛ2Ëž¾çTê:<ñÅ/ym£Zr…3ÜáÌå3›˜ÌÄ÷iSÍáåÚÞ¼7ÚÓ;Jñ¹kÊW;Ǎõê`Æ „ Æ@I‹ŠÈ Œ0ÊÁˆeF%™†*eSff,0ÀÊ02Œ&`²ÉæqKLƒ+ ÅeVKŠÊ¬–€É`0°jÔjL\í±ïÐZ‹£0A9$'$à8çÎ÷Þç¦ñЬw…®Þ÷~q¼ÍÎ;| 
+ ÀïF}r¢;Ãæ‹ºêãZîfåm@'ÞM/¯¾À                                                                                        ´ »Å×iljªn²©j¾·kqUUuëÆ0ì]`º¯\r;jnÀ]qºÀém9FaÒš÷¢bãÞæ¼ÎÛI@¼Ü„ͲJ‘-!e¤’…°d+#ó½—GhœÈ˜›Ã†<ÐçÏ@&FB74Û
+•Yký•i`22냀áÆÈX}­Ð9ðùlŸœÎ˜w¥µª9Ë^óÌS„"±ï!x‚q*	\Ý¡ÆÞaŒ	BÂím‰ò<W}°úFõ³ÅÙÛcPî'xm8Ó[ x@58îzëÂ@·»ónQ$	Õ"œÄÎ>”U }p¨ãu #Ä	“-@Ï—šâÝÆ£´p?§iF‰Ö[Æ<0³‰Qø½ôH"¯¨ZÒ®ý{xýPÛÌdÑŠÃCè÷´±òu"îNçƒxb‡ÑõÁì´ °,¶›†L …)`w
+€KÀÈJþWß>}v…CÌQ†÷g!ߣ¡Ì-K×Ì‹=g<5OÒ 'Û¦Niïm¢š:ªnîí«—hÕÝ‚Ñ3€ÁG§×Ñ®<oŽxñgSQxç]c5/ä~°„ ’ý|>bþ…3vüùÇ,í®å|ÙäÔÁ£¦Bœ®ðç½<™Ò˜ñäå12fa…[ºVyî»N÷¶—»‡3—1óW¦\¬z¯tl¤¬ºéôb¬VÛ&f§‹/TÆhŒU°Î¯*æïXë/5¢±K}-G“¥¥päÜfÀìå‰Ñí,¹†9}½{ê_r—¯KÌöN¯­4°¦QÛÎJå«VRµIJ–Ê…ÕãmS¼u{xÞqç-å×[´½ëä,0`ƒ3ŠdÉ‘31˜F!“!0`$ EUŠH	TY BA2A0Aƒ#!”d2¦L˜¦Lž#¢Á‰‰‰‰ƒ&&˜˜0bbbbÅÑtFaÝik¢ì´ºüeÕ~Í÷'†f|.‡vø%lºñézùVT                                                                                     »»»»»·X¤ðŒæC§O
+Ãåò¥;Ú`Ä•®x׿ûløÀN4ꨪ¢”ª
+¨ƒA©*Á²ùç²E쌐wºžÉÙÌ¡jÂs¡Ù†*á÷Üô¨~|8ôúkçÝb¼N—„ßŒÓáÁ£1²î9:3wð„—Ïé„i´£€•ƒ ŠAI#hTXŒ‚Œ"„ÙxNs‘ääÀiÌ%ÜF¢äÓ¦­ªåx
+ˆ›ï¬]qÒ"fÓ£M†xŒ¹t	Ytj°eõ†øÐe"¦ ±Ñ¯Y`ìç úI¦NÎéYÜY­¡ÁÏ<nm׿vøåVÆ;ÐUSö8ÁŒtFª"-–Xní´ñƒ¼ã8ÙÈ9-q„ÎW-²Á2™ñœ qâõÌçžC&ef'ÐFé¬UÂüUÆóLŸZñ!²ÇFÇ<B¬C!œ ‰AØ~ú³8 uߏ¯N¶kxÍÖüxß3«óôÝÉww$ H€÷Þ;3õkZÖwf20NÙ'†F+®=Þyõöyöë~qw|é›}Ì+'7?5-ÿáÈ5>ýýâIuIu´¡Yçî‡dâêÝ_'Åq87¼ÎÜÌwwÀ                                  Èf9ž+/LÏg™3<žf³W3&`ÀüàÃóÃëüÞš¯RxñSß~žöÙžfñ¬d1|ø:ºÅVñ\}Š®þañöúǍ•0c®õÃÑòÅs³ïû•Ƴ<uÜ3Ïm{}tgz¾>ÿ@ùÀ
+ç~&×C‘÷Ž•õ­g™U~f@×<o—KÆ7;ûãÉsϸîšÜég€                                  ×Áׯ^Y®÷už[œëÇ^î™×ºöÞ;»¥Ï3u³²ù¼zx“Y×f·¸xñÏr~ŽzŸ¡ÞzÜ_Èê¸Ç?½yÏâoxÅ}8øúv{|çøä~Çàöp–äûW_•TM"(ˆ²ÜæÀÀðÿÇö†á’`ä:ªªªªé¢xÂâdXÖ…q™.@÷û9ûÔ䙆%¡ª%pµ—XìéÓâWXð+ð¿‘ñ|­?‘š~Üü!{ýal|‡ô.ÜßÛð…ûKû¿þE»öpfÄÌ%ñ”¯þþ`´Çúx½«ë׎=T/ÖÅý|oSÔ`]ñíí ¾{{}¿Ñ|}qêü¿Î¸,ƒ°¾Ø33+Ð//ÖéÖÄ.r¿¤/àÛñ:Jâ%¸]üÚuÄÌa4Á€¯}¿äoÀüGÊe™†Æœ¯¿:÷WlYƒû1’ZË0~(â6¢ïÿqõÇóGÍõuè<AyGHã ääf¼ê{Êí°[gð0-›­_Ña†Lˆ Á‚0`ÁƒÆ0`‰˜ ·áÍúBýÙ{ì²Ã3,1b"1‚±b±b+V1Pb ‚ ‚ Æ1Ÿ¤c*ˆ”!ô?@.ÁvØ.ƒ}ƒ ÔÐ-ýMÔ/¸`¹âû ZÄòÜÀ\y^«&D`Á0AÄAOÔæLŒ ƒ Á‚1“,°Ã11¸^™éÈÊîþp°AVÁzD_
+·ó]vëäà‚êW¨.]Áx…ÜÁvàk]2Öµõ"
+Ø/ ¾ ¿èÁxFG(ê`Z~>`¼Bî	Cìq™…÷}){xû}À¹ø‚ìüqõ…Ø.Jg /âˆþo½}À°/X.â`¿h/—ðñp¥Åõ"
+ø…æ‹éï…Èä.áäGÞ°[¾ÛÒØ.à¾`^Aq¢
+ú§Ö÷¢R½šw…î‹«i€^¬tíA{°.€¾wlÔ¼Ì3ºÔôô?rçrö"
+û´^ð^.…+¯
+¼øèk±æÁy„`_¶ˆ+à|ò¹_Zà-ïH]Áx€·n0.Â¥÷¹È-Gê…ÅRæˆ]g(”:û. ¹ê‚⑉º9‹Öx_´åp/ŸÌ-Âä-Â4€]ÜûºtèP¥™P̘#0F`ŒÁ‚3f̘#0F`ŒÁ‚3f̘#0F`ŒÁ‚3f̘#0F`ŒÁ‚3f̘#0F`ŒÁ‚3f̘#0F`ŒÁ‚3lÀŠÐXIh@´{Úð¾£ÎA~+Â1ede2;»vu;zÐwÜA€»ÂØ/UµO±ú¨‚½È‚¿%ví÷2QÔ/fW!g`¶rþp¶AWˆY$ž!yÑU,UÀ-†ú}¿ #’_ ¾!u…÷‚ñ¼þ/P]Y$ ˆª0AUÁX‚1‰ $‘ Á‚¤?Pvª}Ö=œk\ò ¹Âö… ¶ÀW*|áe)°[ÞÖ¸. ¸¿ ]AnGdlo¾šl
+«¶„‚ñAhŒÖ´…ðžY4º°ÔjÈÉk´l;ä`.àŒÀàn€^!p<À¹Ü€°ÃÍŽÚ?ÖŒ¾°»‚ù~?Ty=†Ñ“ºPßT¶À-àÖ‡‚À°-Ó`º"ª^qö¥À^ ¶O¬.ä©/…å®AnñkmÂÜ.°]{BØÂø¢ê>è¶ôÜ(]¯`]‡ègH.¡rˆ+Ý ¶6‚ñ£Ü¡dñâ‚ü¡󰞘ET±ðņ,Ë-š+£0-áp﯊ê{¾{áET¾H`*­î þ8÷ íx‘’I$I÷”%I$‘YUUYUUYôÀ~Iò… .BþÕ}Úë]a|Áai}AzºBè]¾ ¿">л½À½É´zp XØ7yVßÀ/7X*õüa}Au+ˆ–Ab…Òä,Dæ%õ¢
+Ð]Ѝà¸6	>p¾€°x´)Cï
+ܐºõ#‹òÜ‚ôuûæ~ ^!bZöÝB÷wy¢®¡r€¶	>Ê*¥°FCÀ³è`ÁƒX2¦aeadab­‚À¶Ƨ¸-ö¾ ¸ïÞ`¹ ½€¹GìP[#Ò~lD¸/ ¼AUlŠ]án<s ½ñõ…È*õ`GØÍâí0#ä¢èx_շ죙öàWp‘¡¨_Xx§dh.À]Ð]À¸îáEÌ,âæ|üáeúùVÿ,¥XP{¾=Bù€µ`,À½Ah†£ ³"_L}Ð_@]Áv¤ä/˜-‚ö=ß ]Q«jZ"öAj<€ºØ„|È‚½UOlÜÔ*Ð#æQu`½/”h.$}ê$õð^uòæP¾@½¨ª—1”8Ì[G³ý ZÈ^`\†A`nÔJŠéÔ,çtsí°_gØÅ.à¹Ä{‚ðaÞÓ˜ÞÜÄ‚éíõãî¸.vعV|£û‚½kå{›ÆÎAh,¸^–ÞïB^øóh.tU±,B®ÉþˆämI'öÂÈUàà¾ê[¦¡y…¯ öÈ^!|o$~Ôlœ.p,à‚À[ÐyF‚èxXx[ÆÀ½Axâ‹Ü"è˜ÐY‡À|ƒ€‹À//¥"ú&¦™ïi+O0¾oÒ+ã…bÁX³e*´sã| ^»^ôA]áh$öw_ IÀ[~«ÚDqKõä|.Ap@¾ð]‚À“Ä-ÂùO ·AmÐØ0-hÐ.ï
+-<û„ì!{‡ö£¨^~p\íD`/EòÿT/0¾`¼âøÇ|jÜ-èÊ´/p^À¹£C&‚ȍ‘l°[…ZïÒ9Ÿ]ó…и,`«ÓÈ*ê^cöÝò	0.êì;ûÂà.èóذ.“¯L…£Ö!uÈ^мÜ/GÄ,„`YJŠX¢ólôÀ*à,…„¼‘{´Á{p§@¾¡êÞ:À‹µ® º§iâ _ at .±çpü”yp]¬.à/Gx\‚£€¹çàE#¼/ô£h[`½R‡ZW²~°´è4^ˆ‚°–‚Ð\ÓîÌ.ÇMPzÈŠ™F&óI–Þ4(‚µ6À¼ÐUîÐ]BØ.ð´p`X36ù¥°ZÌET°GLªy{û¼|ànà.9¸ÛZÀ0»Á°!dh/ ^Arˆ+Ah,ê/p]¯4^ ·æÜ*ܘ]à-Û‚ùBÀ^!'¼ìà\ww`. ºà]ýdA^A} ¿0/Pì”^!w„m³ÖÉAp$q0/DA[/0½ah#°^¤UKÔç°Góòâòu@­‚ÄUKÚò…â4:µm^™`À´ˆ_ X}rÅœ…š´Ç± ´à.Ѩ~8ö<ˆn+À,¥E]Bý‹`ºÁw#äãÞáuET°,à;‚øƒÔ°[…óìÀ^ » ¾Ÿ .ð·RÀ/h^u	:x…ßêò…È^°.uìKtp°/p\…Îáxá°£À§’.ì))^!w…þº}þB+ýr¾ ³Ý±Uw½Ñà9îÿÔ/W°/P/’44îöýÑ{‚Ð/õ"
+üx÷<‚ñGÄ‚ðÐ_°,RÁ¶áW'ÞGº!nl at W=ápÔ‚òiÙó¶cO6áwøBÀ¾>» »µäíÇÇçÞ *ü °z‚ÀApäÁrÒ騍Á1= ´õOìñzjí”
+ïÈ^a&"ª_@^P#`º€”þ.äŠp¡ %	?ä
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,481 +0,0 @@
-‹ I¹±K ì]sÛ6Ú†sºþ8ìÎÄ-¾Aæ,i·owºéìÔÉ–¨˜‰â+ÑNÒ_¿ )Ë 	‘”"A|nµ‰l@ >xƒä£¿]-ÆŸãüv>þéÕ‘„µ”ÅßZõ¿‹÷„0ÁゐW˜‰é+$ŽU![«<Z"ôj¹XämùºÒ/TÜÿl¹8ÊI°ûøSÁŒ¿5ÆÏ“tº8ä1Ì Kη?%RÖÆŸª^!|ÈJlÓÀÇÿ}<ÿ°È£ÙT*)¦2Ðçw7:í×e?'¡0˜)ÎMÚ»Çé4^®6i‘…´øÜÏÑø!žXI¦XV¦Ý}‰2G:6ioÇyòW?'9£&íŸiTK¥X„ÜúÜQºHÿ¾i
-°ý¹jª}¼¦É,~N	•㽤¾ïc?%ã<ºŸU*[¤½Ÿ;U÷œfÚ^éìZZ¥³­´_’eþ­š@ôYÔó¿Ë$ï£ñgG™ou“ÿ}ŠíQ
-DX|î}”eõj>í݃žê-ÐCQ¤Í¢ûZUp ˾¾û3Ï¢dnuŒRT–e~L—eêæÓLÛ¼(ó÷x™Æ³»ÜnÇeš©ÿS ÕÊdq.ýñëÝècºªDQ—w‹Çt\ïÍuÚ¦Ï>̳úç~^ÌçIþ¯DÿQ$ñPbÂÊ~)Óòx2z{·þ!¸¬ËæÑLýfxg"T,`RYÉW›>gDвkÖi??<¦ŸËR=T0UôÀoŸâbG•s[	•ÇNøsõ4q&Ü=.³ZBf’¿6Q̃õُs}¾pëãµ4úþÍúC¡ ˜WÒÈÿizö’”=yêYô¬Æõ_ÛéÐ×¹ö뿾Ùcõû?m8×gzca€$FféÉ'ŒèÉG9$zŠÓWŒŠ×ÎŽõuB¿—”!¡¨Xˆôí‚Î¥^òèpó#£ÒdÒS¨.WOYQÄL9e†Ï<§³â­.Ǥ¢¬¦sÄõ[]÷"_g ì%‡(ÞR”9Tˆ8«–!¥æ ú&£¨…žÌu®J¥ûÁ|ŠšéºÈpÝ0SYú’+(~`¢¬,
-uöj1!"¨èº¢*¦ÒÕtR¾/+¢8³:c”äº1¼‘šDÓe{Í¥G˜Z"¬\}+Fu£qÑsL˜÷©5›èî5¥é[SX ‚²«ì,¢lSY£ +Të]RŽcëúúU&dªÂô!cõ†éÓËÔ.,{7Ô×—¢YVŽÐ$š1*‡H·	ѐW‹¡å€­{‡êûRºîâò8“z¯{ l>ùƒ¤MQc]
-û\Zgà¥}ȺרÎR½Õ}êP}l‚LM&¥Í¡çÇZI:­¨L¸i2©
-Uö)Ci³6ëÓ¯ë"Bû¬¤v‡­Mª;Õ|*X÷ª6©g!æÞQȺWôŒÿrJn2Q»ãô´‚©å`Eñ²*ú>ÕZËÊÓbme6ë*ìá%AÃAº£XqfÑuYÔ¨šGÏÅi`ίrp$Rµ©‰­û5\W…5æ¶õt°î‘fU8¶Î4gb¦ÖꎢAјõÐ(
-gV3˜¢M¢™ÍÍ'ë“$/gÚueõ]{}îâ¼P²F]d¥¹fN©ePEQžˆxm£çIš/u‚h ¤û¢lBåt6-ÅÏ.ÆG_qd-G÷KP3Míú©]_ºG	
-uƒôÅ)¬´^ð‚¼à/xÁ^ð‚¼àµýu3ο戩 œÝÜçÉ<֏W2ýpKoLX;^­â•~tdT?¯FËÇ4MÒOˆ®¾/¿¸Ó¥­Ó<Yþ?œÔ2a%&C¡Q™‰	é'7ó¤Q)Ì<Ðׄ›(¡Àap1ßp4âÿúaÜë÷ÿ„R,xãûßÿ{ÑÚ‹åßÞèSÿ)N'‹å(™èŸÞ>æqš'ã·ï1!4æÉì›N!òf¾˜Ä³¿é÷aù¥Ñ<6zÿúGú)IãxiÜuͳY|³Êã,Ó?›e½ÿí/ói¢0þQŸ7cƒ óõ£þ­ ýþî&{ø¶JÆÑÕѾLîgºŒ•ù½/–±I)’L‘æë´(KÆe’®j’&y¢KYÿÒdŸf&ñ[¼2oGñ×qœåÉ"]ÿÎX`‚fñ“n¢®ÍÍ—l“{éãëôÇГžf&1ÊV1ÊWc4_-QÅh>ŽÑøkP­âÍó¥NùdR"4ž/žt¶Ü|ŒI4žMg«4ŸEÓ¯º=O™ÿ)zÈÑêÛJ7_÷íW“ë9Îd-2ýéI“O÷h9чÎÐlŽØ$]|1yŠ7º7Ìãi>2U[ÆÙèÓb1A©ùí"+~©óNFe§ h>MÆs”¥	š/t‡-–º
-D¢l‘ÓÍ¢‡éHd<ÏF³øS4þ†VOsSDÑÊñ2xþut?7õçš'«h–|JM‹Š:eËxçã´X=}AÉý
-­>›ÁA_&¹®Ù$N&#Ó‰©nßì~ùd12³2J—I6ZEOñÍýâÓbždfœ™ž~‚›ÿz÷|âL9â¿£â«ì›ç¾]'J^že£¢Vs}j—¿Œ&}⬊l¦\=“ß'ù
-=Ÿ~¯7¿yJ–ùc4»ÉtG/Ñ<JõaL9oôø£<ÏP®Ûžu5ðüá/sίÐ×Ì|£ßÜØN#ê4Òâ4Õt§]…Ó8&?âËt½P§Ñ§M§QpÚÕ8à‹t»P§±§…M§1pÚÕ8íB¯iüBÆ·;â¦Ó88
-œvZ§‰ušhqi:M€Ó®Æiz÷(/Ôi-±GJ›N“à´«q/ÒiêBÖ{¤¬é4N§ÖiÁ…:­%öHyÓi8
-œvZ§…ê´–Ø#M§…à4pÚ‰¿¹¾TH¤-øè€DP"àµS{íR1‘¶ð£N¼vj¯5(Bö
- at 2G ’@¼vj¯5*Òâµ–$s„ 	Ä Ák§öÚYÃ"-^k	B2G’@¼vj¯5.Òâµ–0$s„!	Ä!¯ÇkÊ‹³FZ¼Ö‡dŽ8$…8äõxíR¯kgŒ´x­%ÉqH
-qHðÚ©½vÖÐÈžqHׂ5X±v=^»Ô{ȳÆFöŒC:–¬QX³v=^»Ðë=knd¿8$w,Z£°jíz¼v¡×5zÖÜÈ~qHîX¶FaÝxíÔ^»Tn¤%ÉÜn¼vj¯]*7Ò‡än„7^;µ×Κ¡{Å!¹#É yE^#—éµ³æFZ¼Ö‡ä®­³ yE^»ÐëÚYs#-^k‰C
-G’A¼vj¯57Òâµ–8¤pÄ!Ä!¯Çk—úýÚYs#-^k‰C
-G’Aòz¼v©×µ³æFZ¼Ö‡Ž8$ƒ8$xíÔ»ŠŸ57²_R8Ö¯1X¿^;µ×ΚÙ/)ë׬_»"¯]fÌŸ57²gÒ±~Ãú5ðÚ©½vÖÜÈžqHÇú5ë×®Èkzy©ÜH[ÒÁpàFÀk§öÚ¥r#mqH7¹¯]è÷k쬹¶WR:ââ×ãµK½®57Òâµ–8¤tÄ!9Ä!¯Èk9kn¤Åk-qHéˆC
-ˆC^‘×.ôºvÖÜH‹×ZâÒ‡‡¯úßÈ>kn¤Åk-qHéˆC
-ˆC‚×Níµ³æFZ¼Ö‡”Ž8¤€8$xíÔ^;knd¿8¤r¬_°~
-¼vj¯57²_R9Ö¯	X¿^;µ×ΚÙ/©ë׬_»¯]èwÙü¬¹‘ýâÊ±~MÀúµëñÚ¥^×.•i‰C*7"€¯Úk—ʍ´Ä!•ƒÀ€×NàµW «¿]éó3Îoç㟴[:Æ1ôüˆ•ÅßZõ¿‹÷„0Áã‚èßʉz…Ä1*S×£>¹—½Z.y[¾®ôU}ü'ñS¢/¨=v®¤Ž‡ñ÷¡mã¯ßçñü0§ÁîþL
-êsSóÝ'Áîã/¡0þ>ÔgüÍâ;΂ÝÇ_1
-ó¿õÿôq™ÝaXr¾uü	'Õñ§+}ÿ‡ßܦ>þfTGú–ò@‘à¦øY?ø®.ßOËX?m"Ãhäñrë‡Øâ2$âF?ÜF³‘9At8Pâf‘?ÄËò7*àÏ[ýý?çI:]ìqŒÿ…eÍÿXaþ÷¡›?ŒSzÏ?,òhö•"R)E‰DŸßYY~]Æñs…‡ä¸šåã*žl² DU ”]ÊÛqž<ÅV-A˜åŸiÔȤoq£”¢t‘þ}Se¡¨£”j&ä(ešÌâM&$w•beªÕåcj<“G÷³J+ýb‚€•~idù%Yæßê„¬,ÿ]&y|?¿ÙZʯº–ÿ6±C+‹TØnÑû(ËU¡} ·ºÇꥉíÝ=èù ^]Dìø=^¦ñì.¯UØ>9ÈÓq«JQöþøõnôÑD‚«Ýkgy·xLÇq£2ØÕuæÙ–RîfÑ}½‰…Ý¢»?ãñ,Jæv]hPiôÝÇtYfz)KßÌÚúíñS9F#Ëq¸™j™Í‘z÷¸Ì6©ûû¿ÿü¿Géèñå\1ê>ÇèºÿÃ˜Öæ¦(ƒù߇¾çÜ]¾úûœéǁlŸctúŸ4îÿ#àÒ½?}=^ÌƒÓNþŸ%«}<Ð}ýo>ÿQ	þ÷!†o™ ßVýýÿ =Š[þ¿	Ø9þO	Uÿ÷¢}Æóî–b|~×uBì>þœ/:ÈøO—q<Úü¶qŒÝŸÿ•I†ë¿Á=ÿ°uÿ§Ë÷ïãi00ð¿ÿ‡­ƒøõ¸Ìf«m“À×aîÿÁÿÇøØêïÿIb–ãŒãݏÑéÖxþÇŒ‚ÿ}ˆR¤ÿ#òù?\þ³Â@Ô×ÿÄ7ÿ‹!þãCýÇß3ÿü‡½ð¿"LìÆÿÊ
-ÿ+ˆH•ÿ.$ç­þþ÷ÌÿÿáE%XHºù_âæ¹H7ÿ«, –¸ù_FìRœü/g²QJ
-í%J:JÙÊÿ'ÿ[a‘‰›ÿ­Ö¥“ÿ%Ýü/qó¿’V–Nþ—8ùß@ö ¸ø_2{ \üo±©ÅK7ÿ‹ìêºù_j×ÅÍÿJ»”Nþ—t󿤛ÿ%NþW¨°ÒhÿK+½ëä¶[ÔÆÿ’Vþ—œŽÿ%žù_뿼âÃVÿûå)¬ÿò"Óý¯‹A˜Ža.žvòÿÑø_ÑäáùÏ‹ä-!`ûᪿÿ=ó¿ÿ÷¢}ÆßÿãïEÿƒó¿RÿãGpÏ?lÄÿÇàÿñ"ðÿ°uÿƒÿ…õ?^þ¶úûß/ÿëÿýÈb~ÍÏ80Ì
-Q_ÿSßü/øõÏü/ļhÃÿ²S~ÿËÉ…ªò¿˜Â…ä¼Õßÿžù_ˆÿxQ	Òÿ‹ÒâiƒÿEÆ‚ZT(uð¿,`,”Vÿ˱
-ì5ù_Ây@š¥ÔÐ^î,e+ÿK]ü/×#ØUÊ&S£.ü/íæ©“ÿeÕuò¿ÔÁÿ’@^F×þ¿¨’Źÿ¯n·•ÅÍÿR;‹“ÿ%¡}¾8ù_ªì,ü/íæi7ÿK]ü/ça¥Eþ—N+¥¸ù_»”6þ—¶ò¿ôtü/õ½ÿ/Äÿ¼âÃVÿ{æ!þçE¦û
-ÿ˦öÿ vò¿Ïýaý·zKø~°êïÏü/Äÿ½hŸñ÷ÂÿÂø{ÑAÆÿü/¬ÿó"¸ç¶âÿcð¿pÿïEàÿaë þ?ÿë½ü?lõ÷¿gþöÿñ¢’ù%ØÚXÿ;õñÿC´¥‹å<šæñ|±ü¶ã1º¯ÿõý?ˆâpÿïEø¢ÿCVßë?öÌÿ›ýÿ þ{|õÏü?ð¿^ôÂÿ+ɸ܍ÿçþ_	Ì›ÿ'4àârÞêïÏü?ðŸ^T‚ÅØÉÿK._Ðfìàÿ	¸µC5vïÿ­½¥±‹ÿ'‡vÇþß3‹¡ÆNþŸg)[ùìâÿ	»JyÉT¯K'ÿ»ùìäÿi`-ÀÝü?víÿMiPF×þ߬Òh'ÿ/…]7ÿOì,.þŸñJ‹œü¿¨¨“ÿÇÝü?îæÿ±‹ÿ§æ·³4ùÝs•¹ø¶IÚøÜÊÿãÓñÿØ÷þßÀÿzÄÿ‡­þþ÷ÌÿÃúo/2Ýÿzý-Ìæ‚Ái'ÿÿçç?ø÷?üß
-pý€Õßÿ~ù	ñ/Úgü}ðÿÆß‹2þÇàÿáû/‚çÿaë þ?ÿü¯ÿ‡­ƒøÿü¿„ç/ÿ[ýýï™ÿ‡õ¿^´!ÿË-ÀŸÿ„Ya êëå{ÿo	ñê?þ^ù_‚áùÏ‹6ü/•f»ßïà©$І6ÿ+Â…ä¼Õßÿžù_xþó¢,T
-þ—H¥µxNÕà‰ä*°7kV.þ7Bkãhåâ‘E¬œü¯n”RßÿsG)[ù_åâ‘"ÔYŠÅÿÖêÒÉÿªnþW9ù_$+]×Éÿ*'ÿ˶{×½ÿwP#ÿ‹‚À.ÅÍÿ"»çþߺIV÷þßÜ>P'ÿ«ºù_ÕÍÿ*ÿ‹Â°â ÿ‹¤m8÷ÿ¦•SªÿU­ü¯:ÿ«|ïÿ
-Ïÿ^ñ¿a«¿ÿýò¿¾ÿ÷¢éxÃÿÂþßÔNþ÷¸ÿ7ƒõŸ^Äé-‡@†«þþ÷¼ÿ7Äÿ½hŸñ÷²ÿ7Œ¿düÎÿ*ÿþ£Á=ÿ°uÿžÿ°ÿ‹ÿ‡­ƒøÿûÃþ^þ¶úûß/ÿË`ÿ/*ß’üݼ'0+E}ü¿HgIº‡ïŸÕ}ýuþWð¿ÁþßÃVßë?óÍÿSˆÿúPÿñ÷¼ÿ7ð_^ôÂÿJU¸ÿ¯*ü?çœ
-›ÿWàpq9oõ÷¿gþø//*ÁbÖÍÿ3'ÿ/EXËRãÿ™zŠ­,.þ?´ÙræäÿÌd£”Ú¯0v”²•ÿgNþ?$κØü­.ü?ëæÿ™›ÿ¯ön'ÿÏœü¿¢Ö*¶…ÿ¯dqîÿÍ+øeÿojeqóÿ•SÊÉÿW[ÔÉÿ³nþŸuóÿÌÉÿ+T²8ø}ͳ[ääÿ9µ{·ÿg­ü?;ÿÏ|óÿ°þÓ‹ Ò7lõ÷¿çý¿aý§™î±Y üÿ µ“ÿ=òÿ°ÿ¿‘à–2ðý`Õßÿžùˆÿ{Ñ>ãï…ÿ‡ñ÷¢ƒŒÿ1öÿþÏ‹àžØ:ˆÿ±ÿ7Üÿ{øØ:ˆÿÁÿÃú?/ÿ[ýýï™ÿ‡õ^d1ÿöB ˜¢>þÏ«Ur?Û{@÷õ_ÔãÿX€ÿ½øÿa«ïõŸûæÿÄ}¨ÿø{æÿ!þëEþŸiË	±ÿ/mþŸQ.xXåÿ±„‹Ëy«¿ÿ=óÿÿõ¢,æ
-þ,0ÿ Ȇ[æ
-þ”„Êâ¹¹ƒÿ'2¬
-Ò¹“ÿ²’ÅÁÿ#Ž­êù–ýÿ+Y:ùîäÿ­4ÚÁÿ×ëÒÉÿónþŸ;ùª¤¥“ÿç.þ…¬:ŒnþßÎâÜÿ¿:F[øûdèäÿù–ýÿ»Eü?ïæÿy7ÿÏÝüX©®“ÿ—•“Á½ÿ?³»®ÿç­ü??ÿÏ}óÿÿ÷"ˆÿ[ýýïyÿˆÿy‘éþ×lZŽÌƒÓNþ÷ÉÿÃþ^Dù-…¤q¸êïÏü?Äÿ½hŸñ÷ÂÿÃø{ÑAÆÿü?¬ÿõ"¸ç¶âÿcðÿpÿïEàÿaë þ?ÿû¿yøØêïÏü?ìÿåEkø¿¾ f…¨ÿ¢Õhœ=î}Œîëƒÿ•îÿ½¨ïü/}óßâ>Ôü½òßþý??²øo¥8Ù‰ÿa•ÿÍŽðþ›Âþïg®þþ÷ÌÃú/*ÁRÙÍKÿM)³ Yéä¿%µÀaéä¿y(¹•ÅɳJ'ÿmï"/»ùoéä¿9VÒUŠÍWëÒÉËnþ[ná¿©¥“ÿ–Nþ;à•póßÕ~qñßöîúrÿì~qòß*°³tîÿ.»ùoÙÍËnþ[:ùoAd%‹ƒÿ&!µ[´…ÿ¶O©6þ[¶òßòtü·ôÍÃú/‚øï°ÕßÿžùoXÿáE˜MÍþï¥`.œvò¿Oþø//bò–ðý`Õßÿžùoˆÿ{Ñ>ãï…ÿ†ñ÷¢ƒŒÿÁùo¥Ÿ	àúïCpÏ?lÄÿÇà¿áþß‹ÀÿÃÖAüþø//ÿ
 [ýýï™ÿ†õ^Tnø^ùÓPà0+Dþgßþ®õ?öÎgÇqÙú³®§È˜Dýõ ^õ¦Ñë^L™ÊÊ–Ô’œUÙOÿ‰rºnµTùQKÑ@ÅùÝ™k§k
-*˜ydÄaÐ;ÿ£R•ÄÈÿp°büÇÿªðžß¯ñ&ÿ·
-ÿcaõøMÛœšç7Â/‚÷ø‡A–*Œ?þãß¾¼õ•u}·ºø<nöòêèx†×þoÿ8ÿaµ_Ùøë¿hºšÿý‡Îÿð€ülˆú·÷UõsŸ¯±„¹õŸÎã’ ÿË‚
-Ãs€Xüõ?¼tF}f ·þ£™þ“ ƒÿƒ…V¢¹[ÿ+žáÔ¿ZÄÿ Æùì×?ÿPÎäÎõÿªgøë?JBÔYx×Y–пDVë¿ètÿ’×ͰîÌ÷÷¸õ?Ïÿ©ýÿxH£2T™Ž¡}™¬×¿.^Í`%îYÿUI€ú/žã_ÕGóÕ×â?þ*ŠQÿg6þ}õ·‡ԝÿKæõ¿ñŸ‡D… ôË…¦ÿ“y5§ÕÏpëYÿO±ÿgéÙÐô_4/¦3uñ–ŸªÚfÿ¿Ë·þõ¿ç¿xHÑ¡W44ýó Oòou7TCÕÔ<Ã?þ§*ƒÿøeCÓÿýÖçM™ë~üÛ•ª×jxûð„øŸ¢ÿ8ê)bþïEwæh/ÊWô„uêéÿ	qþ›ûõÃÿ#—»õ¿â €üãûàÿ•
-MÿÃ[»eýOÍë¿aáþþ¬«²2GLB¡é¿¾œŸLg3 ½œ~@wüëäÿxH° 
-EÿƒÿËöÿ€ÿkh㿵ÿk>ÿàþGÒö/ÉÐôÏàÿ‚ÿ“ÔeCÓ?ƒÿõàÿ’
-Mÿûû¿R¬ÿY@ü—
-Mÿ[û¿æúOÒõý•
-1ÿ·¿ÿûì×ÿ—\îÖÿ^þ/ìÿY@ùW64ýoìÿúQÿìÿYøM3€\húßßÿ…üðɆ¢ÿˆ£ÿWÿ´ñßÚÿ5Ïÿ„8ÿÇD¢Ô0¹ÐôÏàÿBý‡Üý#šþü_Øÿ± ÿ—lˆú·?äǪ×O'“»têÔ¿ZÔÂñŸ…àëm0H„¦†þð° ÿ§lhúß½ÿ_†û¿yˆ˜ $CÌÿïïÿÄúŸûõ[ÿg„ûÿDr·þ7ñ.ôÃÿ̓
-UÝ‹…¦†þèÿÉúÿÉf‹ü¿r<ƒ”ÿ‡þY@þ_64ýoíÿžŸÿˆÃ,„þ9PY€@CÑ¿âðãþohãÏÐÿ÷?±€þŸ²¡éŸÁÿõðȆ¦ÿ7ê¿,Àÿ-šþúbýÏâ¿lhúgèÿ‰úèþ!bþoÿ'öÿ,دý?år·þ÷êÿ‰ý?hÿ%šþ·ö.ëöÿ,ü^÷Cw)lö@húgèÿ	ý³€þŸ²Y­ÿ¦¶¹~Ò3üóA`ýÏòÿ²YÿÛKÙ™¿<­ŸVá~þÏ IÐÿ—ïñïÌI×܏sá÷Žþ'R1ú°€åŸl¼õ?¾VuÙäÅ¥Ëí+žáÎÿÌçÿ8P¨ÿ² ²i0	Å[ÿ}¡Çàs®_uušŽÿڏ/¦.*óÁ‚À©ÿd®ÿ4	Ðÿƒ…wý?¨èýU½¿^Gæáp}Áüð“BÖÿsójººéV<Ãÿùß ýxhMW6ÝY×…Æ²Aü¿Í¦œúO³yüGÿo&ЦîM÷j-¼æ¡©fœ
-Ž—ñ³¾Õ…yh›/ã[=þáw3–?
-dýïºÿ2ôÿàûÙxëÿ©júüT«õjð׿= ýs ýˆÿÏúëžñ÷?ó ýˆ\ÿ:]÷Ó©ïÜêâžóŸóþ©ÂþŸ‡Ä/²þwÿq ÿgñ_6týWõfúæùø¸8@þ¢ñßÿzèý\à“Âýúÿf
-ýY ŽÿPM>F û“óPsþ_Ôãý?y¸ù¿’Ì&Ý‚O7ØøN}{ÜÞnoþí6تþ›AŸ®9 ÷3Üë¿ùù¿X%Xÿ± )ˆ^ÿÙsÿÿØÿɆ¬ÿcW½š5îoŠÿ;ŠÓúç`òwÖÍ—Çϸ^"Þú×ei
-¿àîø¿8ÿ¦¨ÿ°€óß²!ÇÛø«5æ¸âîø¿èÿk¯„‡þøåR÷—¶mºqJÿS8Öé?Ž)}nL;üÕõŸì?ÊT¨Pÿá`õøMÛœšç7Â/‚÷ø‡AfïÀøïÿø»û§ÕÅgýlòʵp¯ÿÃÙøÇi‚ý?b¾hüõ_4Ý
-͏¿þm8èŸlÿeCÔ_=Ù,@¿æúúOçñ?ɐÿc!Jãs€Xüõ?¼tF}f ·þ£™þÀÿÃBŒûEs·þW<鵈ÿA‚ü?ÖÛûßÛ8`*ǝëÿUÏð×”àþ/ʲ„þ³ZÿE§û—¼n†º<Œ[ÿóõ¿ŠbÄ”=jõ¿LÇ¿HÖëºÿô+qÏú¯JcÔ9ðÿéþÇÐó×ÀüÇPÿg6þ}õ÷–÷ÿþ£ÿÓTÿcäÿXHTø"¿\hú?™WsZý·þ—õÿûPÿ—
-MÿEób:Ûó1·—çŽå€[ÿ‹ú_„þo<¤¨ÿ‰†¦ÿoàIþ­î†©ìÏðÿiˆû¿yÀýß²¡éÿ‹~ëó¦Ìu?þíÊ^T
-÷ô^ÄÿLÁÿÏ‚J1H†˜ÿ{Ñݵ@~Ö­ëNý/ý?aŒý?ðÿÈæný¯8 àÿã8ÆþŸøeCÓÿðÖnYÿSóúo&ôÏÁŸuUVæˆI@(4ý×—ó“élÀ¶r=Ãÿãyüÿã!A0ÑPôpø¿"ø¿8 ÿÖþ¯ùü†1ú?³Æ°I†¦ÿüŸ, þ+šþ÷÷¨ÿ° ÿ—lhúgðaýÏâ¿lhúßÚÿ5×2Ýÿ	ýﲿ²!æÿö÷aÿÏü_²¹[ÿ;ù¿Ðÿ‰ø¿dCÓÿÆþ¯ôH°ÿgá7=hÌ r¡éŸÁÿý³ ÿ—l(ú8ü_)ü_ÐÆkÿ×<ÿâü‰R8ÀäBÓÿîþ¯8@ý‡Üÿ'šþúaÿÇü_²!êßþ«^?LîÒ©Sÿ‹þÿñ¸ €þ9¾Þó€DhúgðÂÿÁüŸ²¡éŸ¡ÿÎÿ³0H†˜ÿßÝÿ‰þ?<”üŸ’¹[ÿ›ø?úáÿæ!ãºMÿýÿÐÿ“ôÿ“Íùåx†[ÿ?ÈÿCÿ, ÿ/šþ·öÏÏÄQ€û¿YPY€@CÑ¿âðãþohãÏÐÿ÷?±€þŸ²¡éŸ¡ÿ'Ö,Àÿ!šþüߨÿ² ÿ·lhúgðbýÏâ¿lhúgèÿ‰úèþ!bþoÿþŸØÿ³€þŸ²¹[ÿ{ÝÿŒý?èÿ)šþ·ö.ë	öÿ,ü^÷Cw)lö@húgèÿ	ý³€þŸ²Y­ÿ¦¶¹~Ò3üóAbýÏòÿ²YÿÛKÙ™¿<­ŸVá~þÏ IÑÿ—ïñïÌI×܏sá÷Žþ'R	ú°€ül¼õ?¾VuÙäÅ¥Ëí+ž
 áÎÿÌçÿ8ˆPÿeAeÓ`Š·þûBÁç\¿êê4ÿµ_L]T惁SÿÉ\ÿi¢Ðÿƒ…wý?¨èýU½¿^Gæáp}Áüð“BÖÿsójººéV<Ãÿùß ýxhMW6ÝY×…Æ²Aü¿Í¦œúO³…ÿþЦîM÷j-¼æ¡©fœ
-Ž—ñ³¾Õ…yh›/ã[=þáw3–?
-dýï¼ÿGÿ°ÿ—·þŸª¦ÏOÕ¹Z¯ý‡i„ûX€þeCŽÿgýu×øý³ ýˆ\ÿ:]÷Ó©ïÜêâžóŸóþ©ÂþŸ‡Ä/²þwŽÿ!òÿ, þˆ®ÿªÞLÿÁ<ÿÿÈ_4þûÿA½Ÿ|R¸_ÿß,Dÿ_ˆã?Tg“Àþä<äœÿõß8FÿOnþ¯dT\œüïÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹U†õ²lèõŸ}÷ðð€ýŸlÈú?vÕ«Yãþ¦ø¿£8Ë &gÝ|yüŒ‹à%â­]–¦ð; îŽÿ‹óßa†ú8ÿ-rü·¿ZcŽ+žáŽÿ‹þ¿Aÿ¿\êþÒ¶M7Né¿b*Ç:ý‡ÿ£ôý¹1íðWׯyBe*T¨ÿp°zü‡¦mNÍóáÁ{üà ³ë?Œÿþøÿ·»Z]|ÖÏ&¯\k ÷ú?œœ¢ÿ/èþ)ýM·Bóßã¯ÿ0RèÿÆBý‹†¨ÿ¾z²Y€~Íõ+ôŸÎã‚ú?aüa‹¿þ‡—Îè£ÏàÖ4Ó¢äÿYÿñKæný¯x†Sÿjÿƒþì×ÿßð}0ˆãÎõÿªgøë?J"øX¿ýò¿e	ýeµþ‹N÷/yÝuyþ·þçù?¡ÿ+ETFI¦ch_&ëõ?ÝÿGz†•¸gýW¥8ÿÉ‚çøO÷?†ž¿þã?þ€ú?´ñï«¿·¼ÿ÷ýŸ¦ú_ˆøÏC¢Â?úåBÓÿɼšÓêg¸õ¿¬ÿãüðÿȆ¦ÿ¢y1íù˜ÛKsÇrÀ­ÿEý/R¨ÿ³âühhúÿæžäßên˜:Á~ðÿøŸ†ü,àþoÙÐôÿE¿õySæºÿve/ª†{ú?/â¦àÿgA¥˜ $CÌÿ½èîÚ ?ëÖõ§þ—þŸ0ÆþŸûõÃÿ#—»õ¿â €üãûàÿ•
-MÿÃ[»eýOÍë¿a˜àþþ¬«²2GLB¡é¿¾œŸLg3 ¶
-ëîøÏã„ü‰BP2ýþ¯þ/h㿵ÿk>ÿ‡aŒþo,¤1ì_’¡éŸÁÿÿ'¨ÿʆ¦ÿýý_ê?,Àÿ%šþü_Xÿ³€ø/šþ·öÍõŸd
-õý•
-1ÿ·¿ÿûì×ÿ—\îÖÿNþ/ôâþ/ÙÐô¿±ÿëýìÿYøM3€\húgðAÿ,Àÿ%Šþ#ÿW
-ÿ´ñßÚÿ5Ïÿ„8ÿÇD¢Ô0¹Ðô¿»ÿ+Pÿa!‚öECÓ?Cÿ/ìÿX€ÿK6DýÛòcÕë§“É]:uê_-ê?ã úç øzÌ¡éŸÁÿ	ÿðʆ¦†þ8ÿÏB|À bþwÿ'úÿð`¿þÿF¸ÿO*wëÿçBÿ1üß<„ñ#, ‚¡éŸ¡ÿú²€þ²Ù"ÿ¯ÏpëÿùèŸäÿeCÓÿÖþïùù8·Ð?*pˆ`(úWþoÜÿÍmüúâþ'ÐÿS64ý3ôÿÄúø?dCÓ?ƒÿõ_àÿ–
-MÿþO¬ÿY@ü—
-Mÿý?QÿaÝ?dCÌÿíßÿûì׏þŸr¹[ÿ{ÝÿŒý?0ʆ¦ÿ­ýŸËú_‚ý?¿×ýÐ]
-›½ÁD šþúBÿ, ÿ§lVë¿©m®Ÿôÿü_…Xÿ³€ü¿lÖÇÿöRvæ/Oëç„U¸Ÿÿ3HRôÿeÁ{ü;sÒÃ5÷ã\ø½ãŸÿ‰T‚þ, ÿ#oý¯U]6yqérûÁŠg¸ó?óù?"ÔYPÙ4˜„â­ÿ¾ÐãFð9ׯº:MÇíÇS•ù`AàÔ2ך(ôÿ`á]ÿ*zUï¯×‘y8\_0?ü¤õÿܼš®nºÏpÇÿEþ7@ÿZÓ•MwÖua qlÿo3Á‡é §þÓláÿ†ÿƒ‡¢©{Ó½Z¯yh꣧‚ãÃeü¬ouaÚæËøVøÝLåÀOYÿ;ïÿÑÿƒìÿeã­ÿ§ªéóSu®Ö«Á_ÿaáþ ِãÿYÝ5þCÿ,@ÿ²!×ÿ†N×ýtê;·†€º¸çüç¼ÿ_ª°ÿçá ñ‹†¬ÿãˆü?ˆÿ²¡ë¿ª7Ó0ÏÿÃÿÃÅòÿþÐCïçŸî×ÿ7Ñÿ—âøÕÙäc°?99çÿEý7ŽÑÿ“‡›ÿ+§"õéæ>Ýœ`ã»àöîp{óoÿ³ÁFPõßút͹Ÿá^ÿÍÏÿÅ*ÃúHY6ôúϾû?ø?xÀþO6dý»êÕ¬qSüßQœeÐ?“¿³n¾<~ÆEðñÖ¿.KSø wÇÿÅùï0Cý‡œÿ–
-9þÛÆ_­1ÇÏpÇÿEÿß „ÿ‹…_.uiÛ¦§ô_1ˆc¥þCJߟÓuý'úO 2eûÿ£þ³?«ÇhÚæÔ<¿~¼Ç?²4Áøsà?þßîþiuñY?›¼r­Üëÿp6þqŠû?y@ÿ?Ùøë¿hºšÿý‡Q€þo,àú?ÙõßWO6Я¹þc…þÓyüORÔÿYPáca‹¿þ‡—Îè£ÏàÖ4Ó ÿÏCˆöÿ¢¹[ÿ+žáÔ¿ZÄÿ ÷ÿñ`¿þÿA<¦qܹþ_õýGIÿïú/Ëú—Èjýî_òº>êòü1nýŸÿíù¯ñôÏÁ!N#•éÚ—ÉzýO÷ÿ‘ža%îYÿîAýw<ǺÿÑ×â?þ*ŠQÿg6þ}õ÷–÷ÿþ£ÿÓTÿw ˆÿ$*ü¡_.4ýŸÌ«9­~†[ÿóõ¥Èÿ±€ô¿lhú/šÓÙž¹½8w,ÜúfúO¢ ýYHa 
-Mÿß<À“ü[Ý
-S'ØžáÿS•ÁÿËü¿²¡éÿ‹~ëó¦Ìu?þíÊ^T
-÷ô^Äÿýßy
 P)& Éó/º»¶ ÈϺu=éÿ¥ÿ'ŒPÿgÁ~ýðÿÈåný¯8 àÿ'ýÇèÿÌü¿²¡éxk·¬ÿýãþ‡ðZÿCügáϺ*+sÄ$ šþëËùÉt6`Û ¹žáŽÿñLÿqˆü‰Â@2ý»ú¿®þß8„ÿ‹ÚøoíÿšÏÿãúû?Òö/ÉÐôÏàÿÂùPÿ•
-Mÿ»û¿BÜÿÄü_²¡éŸÁÿ…õ?ˆÿ²¡ékÿ×\ÿIŠû_x@öW6Äüߎþ¯kýýx°_?ü_r¹[ÿ›û¿&ýÇ!öÿ,Àÿ%šþ7öý£ÿõþcÿÏÂozИäBÓ?ƒÿúgþ/ÙPôqôÿJáÿâ€6þ[û¿æçÿàÿç"Qê ˜\húßÓÿu½ÿ+Cÿp÷lhúßÓÿ]û¡ÿðɆ¨ûC~¬zýt2¹K§Ný«Åùÿ0Büg!øzÌ¡éOÿgtõ¢ÿ7ðʆ¦ÿ=ûÿE×þð±0H†˜ÿß½ÿ_Œõ?öë·÷ÿ؈änýoâÿ\è?Æý?<¨Ãcˆ€\húß³ÿ_ÿ'#èÿ'›-òÿÊñRþúgùÙÐô¿µÿ{~ÿgŒþ/L¨,À
- ‚¡è_qôÿŒàÿæ€6þý?áÿbý?eCÓ?CÿOäY€ÿC64ý3ôÿÄù/àÿ–
-Mÿý?±þgñ_64ýïÞÿ3àÿbÝ?dCÌÿíßÿûì׏þŸr¹[ÿ{õÿÄþŸôÿ”
-Mÿ[û?—õ¿û~¯û¡»6{ƒ‰@ 4ý3ôÿ„þY@ÿOÙ¬ÖSÛ\?éþù¿ 
-°þgùÙ¬ÿí¥ìÌ_žÖÏ	«p¿þ¿A’ ÿ/Þãß™“®¹çÂï¿üÿHÅèÿÁò?²ñÖÿøZÕe“—.·¬x†;ÿ3Ÿÿã Äù?T6 &¡xë¿/ô¸|Îõ«®NÓñ_ûñÅÔEe>X8õŸÌõŸ&ê¿,¼ëÿAEï¯êýõ:2‡ë懟²þŸ›WÓÕM·âîø/â?ü<´¦+›î¬ëÂ@ãÙ þßf‚ÓNý§Ù<þ£ÿ7ES÷¦{µ^óÐÔG3NÇ‡ËøYßêÂ<´Í—ñ­ÿð»™ˁŸ²þwÝÿGúð€ý¿l¼õÿT5}~ªÎÕz5øë\ ÀÿÁô/rü?믻ÆèŸè_6äúßÐ麟N}çÖP÷œÿœ÷ÿKöÿ< ~ѐõ¿kü…ü?ˆÿ²¡ë¿ª7Ó0ÏÿÃÿÃÅòÿþÐCïçŸîåÿV™Šáÿæ€8þCu6ùìOÎCAÎùQÿãõnþ¯$£ÿeé§›,øts‚ï‚Û»ÃíÍ¿ýÏAÕ3èÓ5ä~†{ý7¿ÿ9V)Ö,@ʲ¡×öÜÿÁÿÁö²!ëÿØU¯fû›âÿŽâçÿY˜üuóåñ3.‚—ˆ·þuYšÂï ¸;þ/·¸ÿƒœÿ–
-9þÛÆ_­1ÇÏpÇÿÅýÿ‹…_.uiÛ¦§ô_1ˆcþãÒ÷çÆ´Ã_]ÿÉþ¨L©õVÿдͩy~#ü"xdîÿdÁü¿ÝýÓêâ³~6yåZ¸×ÿálüã4AþŸ…1_4þú/šn…æ¿Ç_ÿa„õ?Hýˆ¨ÿ¾z²Y€~Íõ+ôŸÎã‚ü?Qúg˜Äâ¯ÿá¥3úè3¸õÍôŸ¨ñ#蟁ùÑÜ­ÿÏpê_-␠ÿ3öæ¿ÿÞÆS8î\ÿ¯z†¿þ£ýy(ËúÌjýî_òº>êòü1nýÏ×ÿ*Âý<¨8NC•éâÉzýO÷ÿ‘ža%îYÿUiˆú/žã?ÝÿèkñÿñÔÿY _ý½åý¿ÿèÿ”]ïÿEþ…D… òË…¦ÿ“y5§ÕÏpëYÿϰÿgéÙÐô_4/¦³=s{)pîX¸õ¿¨ÿáþ_&Ò€dhúÿæžäßên˜:Á~ðÿøŸ†ü,àþoÙÐôÿE¿õySæºÿve/ª†{ú?/â¦àÿgA¥˜ $CÌÿ½èîÚ ?ëÖõ§þ—þŸ0ÆþŸøds·þW ðÿ
 qaÿÏü¿²¡éxk·¬ÿ©yý7côÿcáϺ*+sÄ$ šþëËùÉt6`Û ¹žáŽÿñ<þGÈÿñ(, $CÑÀáÿRðq@ÿ­ý_óù\ÿáþ?Òö/ÉÐôÏàÿ‚ÿ“ÔeCÓ?ƒÿõàÿ’
-Mÿþ/¬ÿY@ü—
-Mÿ[û¿æúO² õý•
-1ÿ·¿ÿûàÿ’ÍÝúßËÿ…ý?ðɆ¦ÿý_?èÿ`ÿÏÂozИäBÓ?ƒÿúgþ/ÙPôqø¿bø¿8 ÿÖþ¯yþ'Äù?&¥p€É…¦ÿê?,àþ?ÙÐô¿¿ÿKaÿÇü_²!êßþ«^?LîÒ©Sÿ‹þÿq!þ³|½
-æ‰ÐôÏàÿ„ÿƒø?eCÓ?Cÿ?œÿg!>`1ÿ¿¿ÿëÊþOÉÜ­ÿMüŸýÇðó‡qÝ‹…¦†þèÿÉúÿÉf‹ü¿r<íÿäÿ¡ÿ—
-Mÿ[û¿çç?â(Àýß,¨,À
- ‚¡è_qø¿qÿ7´ñgèÿ‰ûŸX@ÿOÙÐôÏàÿÆúø?dCÓ?CÿOÔY€ÿ[64ý3ø?±þgñ_64ý3ôÿDý‡tÿ
-1ÿ·¿ÿûÐÿS6wë¯þŸØÿ³€þŸ²¡ékÿç²þ—`ÿÏÂïu?t—Âfo0„¦†þŸÐ?èÿ)›Õúoj›ë'=Ã?ÿD
-ëÿ—Íúøß^ÊÎüåiýœ°
-÷óIŠþ¿,xgNz¸æ~œ¿wüó?‘JÐÿƒädã­ÿñµªË&/.]n?Xñwþg>ÿÇAˆú/*›F “€P¼õßzÜ>çúUW§éø¯ýøbê¢2,œúOæúO…þ,¼ëÿAEï¯êýõ:2‡ë懟²þŸ›WÓÕM·âîø¿ÈÿèÿÃCkº²éκ.4.
-âÿm&ø0àÔš-üßððP4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ëçý?úð€ý¿l¼õÿT5}~ªÎÕz5øë?L#ÜÿÃô/rü?믻ÆèŸè_6äúßÐ麟N}çÖP÷œÿœ÷ÿKöÿ< ~ѐõ¿sü‘ÿgñ_6týWõfúæùø¸8@þ¢ñßÿzèý\à“Âýúÿf!úÿ²@ÿ¡:›|Œ ö'ç¡ çü¿¨ÿÆ1úòpó%Ùø¥«øÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹UŠõ²lèõŸ}÷ðð€ýŸlÈú?vÕ«Yãþ¦ø¿£8K &gÝ|yüŒ‹à%â­]–¦ð; îŽÿ‹óßa†ú8ÿ-rü·¿ZcŽ+žáŽÿ‹þ¿Aÿ¿\êþÒ¶M7Né¿b*ÇJýSÚþ|cÚᯬÿÄÙ¨•Mç?QÿÙŸµã?4msjžßöîÿ4d*Ãøsà=þß®þiuñY?›¼r.Üëÿp6þq‚ý?HýÉÆ[ÿEÓ­Ñü÷øë?Äùo&pýŸlhúï«'›è×Üþáwþãÿú?²<*´ Œ·þ‡—Îè£×àÿ“ Dügñ_6÷êÍ3œúÿ.ÿÿÿœÿæÁ~ýï÷ÿ)ääqßúÝ3üõÅ)îÿaáÿô_–%ô/޵ú/:Ý¿äu3|Ôäùÿƒ[ÿóú
-SäÿYPO*Ó1"¿TVëºþö+qÏú¯
-RÔ9ðÿéúÇÐ÷×ÀüU˜¡þÏiüûêoŸ› ñ‘ÿqþ‰D… øË…¤ÿ“y5§õÏpëQÿBìÿY€ý_6$ýÍ‹élËÇÜÞ	œ»–nýGóú_áü)
-€¢!éÿ›x’«»ajûÑ3üãªPÿçæِôÿE¿õySæºÿre惘Û?Sâ!ÿÏ‚J1H†–ÿ{Ñݵ@~Ö­óNý/ý?*ÃþŸûõÃÿ#—{õ¿æ €ÿú?ŽRøÿYÀö_6$ýoí¦õ¿…ÿÇ6€†þ9ø³®ÊÊ1…¤ÿúr~2Í Ø.@Îg¸ã<ÿ!ò<$
-@Éô°ø¿ø¿8 ÿæþ¯ùüªýŸYHcØ¿$CÒ?ƒÿKÁÿÉ꿲!éŸÃÿ…úðɆ¤ÿÖÿ, þˆ¤ÿÍý_‹þOi„úÈþʆ–ÿÛßÿ…óŸ<دþ/¹Ü«ÿÝü_èÿƶÿ²!ékÿ×ú?àþw~ÓƒÆ ’þ9ü_Ð?ðɆ ÿˆÁÿÙþÏðíiü7÷Íó?!Îÿ1‘(u€L.$ýsôÿBý‡…Ú
-Iÿþ/ìÿX€ÿK64ýÛòcÕ맓ɝ2uê_Íõ+œÿç!øzÌ!éŸÃÿ	ÿðʆ¤Žþ8ÿÏB|À ZþŸ¡ÿÖÿ,دÿÝÿáþ?yÜ«ÿmüŸÿG„ûÿx¨^0$ýsôÿÃý, ÿŸl6Èÿ+×3ÜúÿAþúgùِô¿¹ÿ{~þ##œÿbAen AÿŠ¥ÿ'îÿf4þý?‘ÿaý?eCÒ?‡ÿë?àÿ
-IÿþoÔY€ÿ[6$ýsø?±þgñ_6$ýsôÿDý‡tÿ
--ÿÇàÿÄþŸûõ£ÿ§\îÕÿný?Ñÿ…lÿeCÒÿæþÏeý/ÃþŸ…ßë~è.…Mß`&Iÿý?¡ÐÿS6kõßÔ6×O{†ÿúßÎ Ð?ÈÿËfuüo/egþòµ~NX…ûù?ƒD¡ÿ/¾ãß™“®¹÷Âïÿù?
-°ÿãùÙøê|­ê²É‹K—ÛÖ<Ýÿ™ÏÿQ– þ˂ʦÀ, _ý÷…7‚Ϲ~ÕÕi:þk?¾˜º¨ÌG§þ“¹þÓ8Bÿ?Þõÿ`oܘ^Õûëud×Ì?)Tý?7¯¦«›nÍ3Üñžÿ2ÜÿÊCkº²éκ.4.ûãÿm&ø8àÔÿ(ö¹ÿý¿y(šº7Ý«õ𚇦>šq*8>\ÆÏúVæ¡m¾Œoõø‡ßÍXü4Põ¿÷þý?xÀþ_6¾úªš>?UçÊCþú“÷ÿ° ýˆÿÏúë®ñ÷?ó ýˆZÿ:]÷Ó©ïÜêâ®óŸóþi€ý?ˆ_4TýïÿcäÿY@ü—
-YÿU½þƒyþþ.¿h¼÷ÿƒzOø¤p¿þ¿iŒþ¿,ÐÆ¨Î&#€ýÉ}(È9ÿ/ê¿qŒþŸ<Üü_IFÉÿÔ§›,øts‚ï‚Û»ÃíÍ¿ýÏAÔ3èÓ5´âîõߢÿÇø#ôϤ,rýgçýü<`ÿ'ªþ]õjV¹¿Iþï8Dÿ/&gÝ|yüŒ‹à%â«]–¦ð< î¿þB•Bÿàü·l¨ñß6þj9®y†;þÏûÿFYÿ¿\êþÒ¶M7Îé¿b.Ç:ý«˜Ôøçi‡¿²þ“ê?Êúÿð°zü‡¦mNÍóáÁ{üà KcŒ?þãÿíòŸVŸõ³É+×"Àgýÿ8Eÿ?ÐÿO6þú/šn…æ¿Ç_ÿa þǺÿʆ¨ÿ¾z²i€~£û?ÒyüORÔÿXPáca‹¿þ‡—Îè£ÏàÖ4ÓdÈÿ± P ÍÝú_ñ§þÕ"þ1ú?³`¿þéþ¿8€
-H w®ÿW=Ã_ÿQ¢þÏ»þ˲„þ%²ZÿE§û—¼n†Û<ˆ[ÿóüŸßAÿ¤Qþ/Ó1´/“õúŸ. $=ÃJܳþ«ìùoÔ÷Çsü§ ÃÏÿÞæÿõhãßW{ÜèÎÿ%óú_ˆøÏC¢Â?úåBÓÿɼšÓêg¸õ¿¬ÿ§Øÿ³€ú¿lhú/šÓÙ¦¹½8w,Üú_Ôÿ¢ õRÔÿDCÓÿ7ð$ÿVwÃÔ
-öƒgøÇÿTeðÿ± ÿ¯lhúÿ¢ßú¼)sݏ»²—UÃÇ
- 	ñ?àÿgA¥˜ $CÌÿ½èîÚ ?ëÖõ§þ—þŸ0ÂþŸûõÃÿ#—»õ¿â €ücôÿâþ_ÙÐô?¼µ[ÖÿÔ¼þ†¸ÿ‡?몬Ì“€Phú¯/ç'ÓÙ€íäz†;þÇ‹õ?ò<$
-@ÉPôpø¿Bø¿8 ÿÖþ¯ùü?®ÿÐÿ•…4†ýK24ý3ø¿àÿdõ_ÙÐô¿»ÿ+ÌPÿaþ/ÙÐôÏàÿÂúŸÄÙÐô¿µÿk®ÿ$ÍPÿaÙ_Ùóûû¿°ÿgÁ~ýðÉånýïäÿBÿ'àÿ’
-Mÿû¿~Ðÿ!ÆþŸ…ßô 1È…¦ÿôÏü_²¡è?âð%ðq@ÿ­ý_óüOˆóL$Jà “Mÿþ/ÔXÀÝ?²¡éŸ¡ÿö,Àÿ%¢þíù±êõÓÉä.:õ¯õŸ0Düg!øzÌ¡éŸÁÿ	ÿðʆ¦†þ8ÿÏB|À bþÿ'Öÿ,دßú?#Üÿ'’»õ¿‰ÿs¡ÿþoTø¨2è^,4ýïßÿ/FÿOÐÿO6[äÿ•ã”ü?úÿò€ü¿lhúßÚÿ=?ÿ‡Yýs ² 7€†¢ÅáÿÆýß,ÐÆŸ¡ÿ'îbý?eCÓ?ƒÿë?àÿ
-Mÿý?QÿeþoÙÐôÏàÿÄúŸÄÙÐô¿{ÿÏ,@ý‡tÿ
-1ÿ·¿ÿûì׏þŸr¹[ÿ{õÿÄþŸôÿ”
-Mÿ[û?—õ¿û~¯û¡»6{ƒ‰@ 4ý3ôÿ„þY@ÿOÙ¬ÖSÛ\?éþù¿ 
-°þgùÙ¬ÿí¥ìÌ_žÖÏ	«p?ÿg$èÿË‚÷øw椇kîǹð{Ç?ÿ©ý?X@þG6Þú_«ºlòâÒåöƒÏpçæó<† 蟕M#€I@(Þúï=nŸsýª«Ótü×~|1uQ™Ný'sý§I€þ,¼ëÿAEï¯êýõ:2‡ë懟²þŸ›WÓÕM·âîø¿ÈÿèÿÃCkº²éκ.4.
-âÿm&ø0àÔšÍã?ú3Q4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ë×ý”¡ÿØÿËÆ[ÿOUÓç§ê\­Wƒ¿þÇ îÿaú—
-9þŸõ×]ã?ôÏô/rýoètÝO§¾sk¨‹{ÎÎûÿ¥
-û¿hÈúß5þǶ$ ý3€ø/ºþ«z3ýóü?ü?\ Ñøïÿ=ô~.ðIá~ý3…þ¿,ǨÎ&#€ýÉy(È9ÿ/ê¿qŒþŸ<Üü_IF‡ útóŸnN°ñ]p{w¸½ù·ÿÙ`#¨úo}ºæ€ÜÏp¯ÿæçÿb•býǤ,zýgÏýü\`ÿ'²þ]õjÖ¸¿)þï(NS蟃ÉßY7_?ã"x‰xë_—¥)ü€»ãÿâüw˜¢þÃΈÿmã¯Ö˜ãŠg¸ãÿ¢ÿo àÿbá—KÝ_Ú¶éÆ)ýWLâX¡ÿ¶3½©ïøåwÇÿÿóÅYúŸ@e	òÿ<qÙËeeü(}¿nL>Ÿú¯Ê”íÿ‡úïþ¬ÿ¡i›SóüFøEðÿ0ÈRÔÿYðÿowµºø¬ŸM^¹ö îø¿¨ÿ¥1Öÿ, ÿ§lüõ_4Ý
-͏¿þÃ(@ÿo ÙõßWO6د¹þg…þù¿$Áù/TøF˜Äâ¯ÿá¥3úè3¸õ¿¸ÿ;ÈÐÿ™ñ‹æný¯x†Sÿ?¨ÿŨÿ³`¿þéþÏ0€
-P w®ÿW=Ã_ÿQ¢þÇ»þ˲„þ%²ZÿE§û—¼n†º¼Œ[ÿßçÿ{þ3Аÿc!Ê0ÉtíËd½þ§û?Iϰ÷¬ÿª$Dý—ÏñŸî
-=
-üÇ_E1êÿ,ÐÆ¿¯þÞòþïEÿ·0Œÿc!Qáýr¡éÿd^Íiõ3Üú_Öÿáÿå·ˆ¦ÿ¢y1íùšÛKÁsÇrÀ­ÿEý/ÌPÿg!Åù?ÑÐôÿÍ<É¿ÕÝ0u‚þàþñ?Uò,Àÿ'šþ¿è·>oÊ\÷ãß®ìåaÕpOÿ÷EüÏøÿYP)& Éó/º»¶ ÉϺu=éÿ¥ÿ'Œ°ÿgÁ~ýðÿÈåný¯8 àÿã÷¿ð ÿ¯lhúÞÚ-ëËûÃýÿXø³®ÊÊ1	…¦ÿúr~2Í Ø6`®g¸ãÿ¼ÿçþ‘ÿc!Q¨ J†¢ÿ`Wÿ×Õÿðq@ÿ­ý_ñlüG°ÿc!aÿ’Mÿ{ú¿‚«ÿë?Pÿ•
-Mÿ{ú¿‚«ÿç¿Y€ÿK64ýïéÿ
-&ÿWŠõ?ˆÿ²¡ékÿ×\ÿIŠûßx@öW6Äüߎþ¯àêÿÂþŸûõÃÿ%—»õ¿¹ÿ+¸ú¿°ÿgþ/ÙÐô¿±ÿëý®õ¿û~ÓƒÆ šþ÷ô]×ÿÈÿñ ÿ—l(ú÷½Î*Ü»ÿWÿ´ñßÚÿ5?ÿâü‰R8ÀäBÓ?Cÿ/œÿaéÙÐô¿{ÿ¯hücèŸø¿dCÔ¿ý!?V½~:™Ü¥S§þÕâü"þ³|½
-æ‰ÐôÏÐÿý¿Y€ÿS64ý3ôÿƒÿ‹…ø€	@2Äüÿþýÿ°þgÁ~ýÖÿáþ?‘Ü­ÿMüŸýǸÿ‡>ªºMÿýÿàÿbýÿd³Eþ_9žAÊÿCÿ, ÿ/šþ·öÏïÿŒÑÿ…	•¸D0ý+ÿ7îÿf6þ{öÿ|ßÿáþ'ÐÿS64ý3ø¿±þcþÙÐôÏpÿ3ê¿,Àÿ-šþüŸXÿ³€ø/šþ÷ìÿ©®ý?QÿaÝ?dCÌÿíïÿÄþŸûõ£ÿ§\îÖÿ^÷?cÿÏúʆ¦ÿ­ýŸËûÿbô`á÷ººKa³7˜BÓ?ÃýÏÈÿ±€þŸ²Y­ÿ¦¶¹~Ò3üò6þQ€þ, ÿ/›õñ¿½”ùËÓú9aîçÿ’ýYðÿΜôpÍý8~ïøç"£ÿÈÿÈÆ[ÿãkU—M^\ºÜ~°âîüÏ|þ…ú/*›F “€P¼õßzÜ>çúUW§éø¯ýøbê¢2,œúOæúO“ ý?Xx×ÿƒŠÞ_Õûëud×Ì?)dý?7¯¦«›nÅ3Üñ‘ÿ
-Ðÿ‡‡Öteӝu]h\ ÄÿÛLða:À©ÿ4›Çôÿf¢hêÞt¯ÖÂkšúhÆ©àøp?ë[]˜‡¶ù2¾Õã~7S`9ðÓ@Öÿ®ûÿ(Cÿ°ÿ—·þŸª¦ÏOÕ¹Z¯ý ø¿X€þeCŽÿgýu×øý³ ýˆ\ÿ:]÷Ó©ïÜêâžóŸóþ©ÂþŸ‡Ä/²þwÿ±m	ý3€ø/ºþ«z3ýóü?ü?\ Ñøïÿ=ô~.ðIá~ý3…þ¿,ǨÎ&#€ýÉy(È9ÿ/ê¿qŒþŸ<Üü_IFÙA}ºùÀ‚O7'Øø.¸½;ÜÞüÛÿl°Tý7ƒ>]s@îg¸×óþ_±J°þcR–
-½þ³çþþ.°ÿ“
-YÿÇ®z5kÜßÿw§8ÿÏÂä﬛/Ÿq¼D¼õ¯ËÒ~ÀÝñqþ;LQÿaç¿eCŽÿ¶ñ
 WkÌqÅ3ÜñÑÿ×–„¡~¹Ôý¥m›nœÒÅT Žuú”¾?7¦þêúOúŸÀ–"Ô8X=þCÓ6§æùð‹à=þaÙû0þûã?þßîþiuñY?›¼r­Üëÿp6þãöû°ü—¿þ‹¦[¡ùïñ×)ø¿Y@÷_ÙõßWO6Я¹þc…þÓyüO2äÿXˆÒÇ8à ý/ÑGŸÀ­ÿh¦ÿDðÿ°¡ì'š»õ¿âNý«EüRäÿY‚øzÿŸS8î\ÿ¯z†¿þÇ÷¸ÿ‡…²,¡Á¬ÖÑéþ%¯›á£.ÏãÖÿ|ý?þ€øÏ‚
-£2ü_¦cˆ_$ëõ?ÝÿGz†•¸gýW¥)ê¿xŽÿtÿcèùkà?þã¨ÿ³@ÿ¾ú{ËûÿÑÿ)½Þÿ‹ü‰
-ÿ@ä—Mÿ'ójN«ŸáÖÿ¢þØÿ³€ú¿lhú/šÓÙž¹½8w,Üú_Ôÿ"ôã!1H†¦ÿoàIþ­î†©ìÏðÿiÀÿÇîÿ–
-Mÿ_ô[Ÿ7e®ûñoWöò j¸§ÿó"þg
-þTŠ	@2Äüß‹î®- ò³n]Ïpêéÿ	ìÿY€ÿG6wëÅ ÿøÇ1öÿ,Àÿ+šþ‡·vËúŸš×Ã0	¡þ¬«²2GLB¡é¿¾œŸLg3 ¶
-ëîøÏã„ü‰BP2ýþ¯þ/h㿵ÿk>ÿ‡ãó?iû—dhúßÝÿeð²€ú¯lhúgð¡þÃü_²¡éŸÁÿ…õ?ˆÿ²¡ékÿ×\ÿÉtÿ'ô¿?Èþʆ˜ÿÛÝÿ…óŸ<Àÿ%›»õ¿—ÿûàÿ’
-Mÿû¿~Ðÿ!ÁþŸ…ßô 1È…¦ÿôÏü_²¡è?bðÙþÏðímü·öÍó?!Îÿ1‘(u€L.4ý3ôÿBý‡Üÿ'šþü_Øÿ± ÿ—lˆú·?äǪ×O'“»têÔÿ¢ÿ<þôÏAðõ6˜$BÓ?ƒÿþàÿ”
-MÿýÿpþŸ…þÑóÿû÷ÿÃúŸ… Âý’¹[ÿ›ø?úáÿæ!JcìäBÓ?Cÿ?ôÿdýÿd³Eþ_9žáÖÿòÿÐ?Èÿˆ¦ÿ­ýßóóq¤pÿ7*pˆ`(úWý?qÿ7´ñgèÿ‰ûŸX@ÿOÙÐôÏàÿÆúä~eCÓ?ƒÿõ_àÿ–
-MÿþO¬ÿY@ü—
-Mÿý?QÿaÝ?dCÌÿíïÿÄþŸôÿ”ÍÝúß«ÿ'öÿ, ÿ§lhúßÚÿ¹¬ÿ%Øÿ³ð{ÝÝ¥°ÙL¡éŸ¡ÿ'ôÏúÊfµþ›ÚæúIÏðÏÿQˆõ?ÈÿËf}üo/egþò´~NX…ûù?ƒ$Cÿ_¼Ç¿3'=\s?Î…ß;þùŸH%èÿÁò?²ñÖÿøZÕe“—.·¬x†;ÿ3Ÿÿã Bý—•M#€I@(Þúï=nŸsýª«Ótü×~|1uQ™Ný'sý§‰BÿÞõÿ ¢÷Wõþz™‡ÃõóÃO
-YÿÏÍ«éê¦[ñwü_äôÿá¡5]Ùtg]Èñÿ6|˜pê?Íþoø?x(šº7Ý«µðš‡¦>šq*8>\ÆÏúVæ¡m¾Œoõø‡ßÍXü4õ¿óþý?xÀþ_6Þúªš>?Uçj½üõ¦îÿaú—
-9þŸõ×=ã?îæú—
-¹þ7tºî§Sß¹5ÔÅ=ç?çýÿR…ý?ˆ_4dýïÿCäÿY@ü—
-]ÿU½™þƒyþþ.¿hü÷ÿƒz?ø¤p¿þ¿Yˆþ¿,ǨÎ&#€ýÉy(È9ÿ/ê¿ãê?,Üü_IÆQxøtóŸnN°ñ]p{w¸½ù·ÿÙ`#¨úo}ºæ€ÜÏp¯ÿæçÿb•aýǤ,zýgßýü<`ÿ'²þ]õjÖ¸¿)þï(	ôÏÁä﬛/ŸqT"Þú×ei
-¿àîø¿8ÿf¨ÿ°€óß²!ÇÛø«5æ¸âîø¿èÿ;þúçà—KÝ_Ú¶éÆ)ýWLâX§ÿ8 ôý¹1íðWײÿ*S*Aý‡ƒÕã?4msjžß¿ÞãY¦0þøÿ·»Z]|ÖÏ&¯\k ÷ú?œœâü7b¾hüõ_4Ý
-͏¿þCÜÿήÿ“
-Qÿ}õd³ ýšë?Vè?Çÿ$Eÿo¢ô1Î0ˆÅ_ÿÃKgôÑgpë?šé?Q¨ÿñ£ö/š»õ¿âNý«Eüœÿd!Pîÿ̝ëÿUÏð×”àüeYBÿ‚Y­ÿ¢ÓýK^7ÃG]ž?Æ­ÿ¹ÿGE1Öÿ,¨0*#•iìd²^ÿÓý¤gX‰{ÖUŠûXðÿéþÇÐó×ÀüÇPÿg6þ}õ÷–÷ÿ.ú?…aŒú‰
-ÿ@ä—Mÿ'ójN«ŸáÖÿüüoeÈÿ±€ÛeCÓѼ˜Îö|Ìí¥À¹c9àÖÿ|ÿŸDèÿÊC
-hhúÿæžäßên˜:Á~ðÿøŸ*œÿã÷ˆ¦ÿ/ú­Ï›2×ýø·+{yP5ÜÓÿyÿ³ ÷?³ RL ’!æÿ^twmŸuëz†SÿËó¿¸ÿ	øds·þW ð‹ÿ“ÿ/ŽàÿguÙÐô?¼µ[Öÿ–÷¿…1ü,üYWeeŽ˜„BÓ}9?™Îf l ×3Üñqÿ;ú1‘(T %CÑ¿o3 «pÏû¢÷?°@ÿ­ý_óù?±ÿã!aÿ’Mÿþ/ø?Y@ýW64ý3ø¿Pÿaþ/ÙÐôÏàÿÂúŸÄÙÐô¿µÿk®ÿ$PÿaÙ_Ùóûû¿°ÿgþ/ÙÜ­ÿÍý_éÕÿ…ý?ðɆ¦ÿý_?êÿ€ý?¿éAcMÿþ/èŸø¿dCÑÄÑÿ+„ÿ‹Úøoíÿš÷ÿ…ÿŸ‹D©`r¡éOÿ×õþ¯ýXÀý²¡éOÿWvõ¡ÿðɆ¨ûC~¬zýt2¹K§Ný«Åùÿ0Büg!øzÌ¡éOÿ§Õâþ?àÿ”
-Mÿ{öÿ›Öÿîÿæ!>`1ÿ¿£ÿóºþ±þg!ˆpÿŸdîÖÿ&þÏ…þcÜÿÇC”>ÆØÈ…¦ÿ=ûÿeð2‚þ²Ù"ÿ¯ÏpëÿùèŸäÿeCÓÿÖþïd®ôaBen EÿŠ£ÿgÿ7´ñgèÿ	ÿèÿ)šþú"ÿËr¿²¡éŸ¡ÿ'α ÿ·lhúgèÿ‰õ?ˆÿ²¡éŸ¡ÿ'ü_, û‡lˆù¿ýûbÿÏúÊænýïÕÿûÐÿS64ýoíÿ\ÖÿbìÿYø½î‡îRØì
-&ÐôÏÐÿúgý?e³ZÿMmsý¤gøçÿ‚HaýÏòÿ²YÿÛKÙ™¿<­ŸVá~ýƒ$Eÿ_¼Ç¿3'=\s?Î…ß;~ù;þ‘JÐÿƒädã­ÿñµªË&/.]n?Xñwþg>ÿÇAˆó,¨lLBñÖ_èq#øœëW]¦ã¿öã‹©‹Ê|° pê?™ë?Mê¿,¼ëÿAEï¯êýõ:2‡ë懟²þŸ›WÓÕM·âîø/â?ü<´¦+›î¬ëÂ@ãÙ þßf‚ÓNý§Ù¢ÿ/úóP4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ëçý?úð€ý¿l¼õÿT5}~ªÎÕz5øë\ ÀÿÁô/rü?ë¯ûÅÿ(ƒÿ‹è_6äúßÐ麟N}çÖP÷œÿœ÷
 ÿKöÿ< ~ѐõ¿küƒùÿeC×Uo¦ÿ`žÿ‡ÿ‡‹ä/ÿýÿ ‡ÞÏ>)ÜËÿ­²0€ÿ›âøÕÙäc°?99çÿEý7Ž3ÔX¸ù¿’,Œ£L}ºùÀ‚O7'Øø.¸½;ÜÞüÛÿl°Tý7ƒ>]s@îg¸×óûŸc•býǤ,zýgßýü<`ÿ'²þ]õjÖ¸¿)þï(ÎpþŸ…ÉßY7_?ã"x‰xë_—¥)ü€»ãÿâüwˆû?xÀùoِã¿müÕs\ñwü_Üÿn?‚þøåR÷—¶mºqJÿS8Vè¿)Krë¯	wüWßôgé•%!Öÿ,@ò²Y¡ÿ¾x—ûç"ŸöŠy¯_Çø¿¶÷“Å'ÿ?é?S…ü?XþËfåúß÷Êç0eø}ü*SvýÿÇþ¬ÿ¡i›SóüFøEðÿ0È2ôdÁü¿Ýý×êâ³~6yåÊøÄÿ÷ýŠþ<Dˆÿ¢ñ×Ñt+4ÿ=þú#ôã!þECÔ_=Ù*@¿æú¯ú_äÿ“ù¢ô1Î0ˆÅ_ÿÃKgôÑgpë^ÿOü<ĸ D4wëÅ3œúÿAý?Aý… Äý¿’¹sý¿êþúôá¡,Kè_0«õ_tºÉëføè–‡që¾þWQŒøÏ‚
-£2J2
-°LÖëºÿ—ô+qÏú¯Jê¿xŽÿtÿsèùkà?þã¨ÿ³@ÿ¾úÛÃìŒÿ‹þa#ÿÇB¢Â?ùåBÓÿɼšÓêg¸õ¿¬ÿgØÿ³Bü¢¡é¿h^Lg{>çödPîX¸õ¿¨ÿEêÿ,¤1& ÉÐôÿÍ<É¿ÕÝ0u‚ÿàþñ?
-øÿX@ù_64ýÑo}Þ”¹îÇ¿]ÙË«ážûñ?Sðÿ³ RL ’!æÿ^twm”Ÿuëz†SÿKÿOcÿÏü?²¹[ÿ+ øÇÿ8ްÿgþ_ÙÐô?¼µ[Öÿ–÷¿†1ú°ðg]••9b
-Mÿõåüd:›°m ]ÏpÇÿyÿß8Bþ‡D¡(Šþÿîb6þ[û¿æó¿5€`þç aÿ’Mÿþ/ø?Y@úG64ý3ø¿Pÿaþ/ÙÐô¿»ÿKeXÿ³€ø/šþ·öÍõŸdê?, û+bþoÿöÿ,Àÿ%›»õ¿—ÿûàÿ’
-Mÿû¿~Ôÿû~ÓƒÆ šþw÷…Èÿñ ÿ—l(ú8ü_ü_ÐÆkÿ×<ÿâü‰R8ÀäBÓ?ƒÿõpÿŸlhúgðaÿÇü_²!êßþ«^?LîÒ©Sÿ‹þÿq!þ³|½
-æ‰ÐôÏÐÿþPþ•
-MÿýÿpþŸ…ø€	@2ÄüÿþþO¬ÿY"Üÿ'™»õ¿‰ÿs¡ÿþo¢ôPÁÐôÏÐÿý?Y@ÿ?Ùl‘ÿWŽg¸õÿƒü?ôÏòÿ²¡ékÿ÷üüG¸ÿ›•¸D0ý+ÿ7îÿf6þû÷ÿŒqÿèÿ)šþüßXÿ±€Ü¯lhúgð£þËüß²¡éŸÁÿ‰õ?ˆÿ²¡éŸ¡ÿ'ê?, û‡lˆù¿ýýŸØÿ³€þŸ²¹[ÿ{õÿÄþŸ˜?eCÓÿÖþÏeý/ÁþŸ…ßë~è.…ÍÞ`"Mÿ÷?Cÿ, ÿ§lVë¿©m®Ÿôÿü_)¬ÿYÀò_6ëã{);ó—§õsÂ*ÜÏÿ$)úÿ²à=þ9éášûq.üÞñÏÿŒÓ?ú°€ül¼õ?¾VuÙäÅ¥Ëí+žáÎÿÌçÿ8QÿeAeÓ`Š·þûBÁç\¿êê4ÿµ_L]T惁SÿÉ\ÿi¢Ðÿƒ…wý?¨èýU½¿^Gæáp}Áüð“BÖÿsójººéV<Ãÿùß ýxhMW6ÝY×…Æ²Aü¿Í¦œúO³…ÿþЦîM÷j-¼æ¡©fœ
-Ž—ñ³¾Õ…yh›/ã[=þáw3–?
-dýï¼ÿGÿ°ÿ—·þŸª¦ÏOÕ¹Z¯ý ÜÿÃô/rü?ë¯ûÅÿ(ÃýÏ<@ÿ²!×ÿ†N×ýtê;·†€º¸çüç¼ÿ_ª°ÿçá ñ‹†¬ÿ]ã<n ÿeC×Uo¦ÿ`žÿ‡ÿ‡‹ä/ÿýÿ ‡ÞÏ>)ܯÿo¢ÿ/Äñª³ÉÇ`r
-rÎÿ‹úo£ÿ'7ÿW’…qô¿èÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹UŠõ²lèõŸ}÷ðð€ýŸlÈú?vÕ«Yãþ¦ø¿£8‹¡&gÝ|yüŒ‹à%â­]–¦ð; îŽÿ‹óßa†ú8ÿ-rü·¿ZcŽ+žáŽÿ‹þ¿‚ÿ‹…_.uiÛ¦§ô_1ˆc¥þJߟÓmýGŸ«L[ÔX=þCÓ6§æùð‹à=þaeÆŸÿñÿv÷O«‹ÏúÙä•k
-à^ÿ‡³ñÓù"Ä|Ñøë¿hºšÿý‡Q€õ?пlˆúï«'›è×\ÿ±Bÿé<þ')òÿ,Décœa‹¿þ‡—Îè£ÏàÖ4ÓÿøÿÑÿŸ…8ø%s·þW<鵈ÿú?ó¸ÿO2w®ÿW=Ã_ÿQ¡þÏBY–п`Vë¿ètÿ’×ÍðQ—çqë¾þWQŒøÏ‚Šã4<f:†øE²^ÿÓý¤gX‰{ÖU’¡þˁçøO÷?†ž¿þã?þ€ú?´ñï«¿·¼ÿ÷ûþO×ú_#ÿÇB¢Â?ùåBÓÿɼšÓêg¸õ¿¬ÿÃÿÏnÿ•
-MÿEób:Ûó1·—çŽå€[ÿ‹ú_ þÏBcMÿß<À“ü[Ý
-S'ØžáÿS…þÏ<àøŸlhúÿ¢ßú¼)sݏ»²—UÃ=ýŸñ?àÿgA¥˜ $CÌÿ½èîÚ ?ëÖõ§þ—þŸ÷?ò ÿlîÖÿŠ þñ?Ž#ìÿY€ÿW64ýoí–õ?5¯ÿ†aŒþ,üYWeeŽ˜„BÓ}9?™Îf l ×3Üñ?^¬ÿ‘ÿã!Q¨ J†¢ÿ€ÁÿeûÀÿµ?´ñßÚÿ5ŸÿÃ÷ÿñÆ°I†¦ÿüŸ, þ+šþü_¨ÿ° ÿ—lhúgðaýÏâ¿lhúßÚÿ5×’áþ'ý•
-1ÿ·¿ÿûàÿ’ÍÝúßËÿ…ý?ðɆ¦ÿý_?êÿ€ý?¿éAcMÿþ/èŸø¿dCÑÄÑÿKÁÿÅmü·öÍó?!Îÿ1‘(u€L.4ý3ø¿Pÿa÷Ɇ¦ÿö,Àÿ%¢þíù±êõÓÉä.:õ¿èÿ‡â?Á×Û `Mÿ»û?CÜÿÇüŸ²¡éŸ¡ÿÎÿ³0H†˜ÿßßÿ‰õ?eÿ§dîÖÿ&þÏ…þcø¿yˆÃÇ8ƒîÅBÓ?Cÿ?ôÿdýÿd³Eþ_9žáÖÿòÿÐ?
 Èÿˆ¦ÿ­ýßóóqàþoTàÁPô¯8úâþohãÏÐÿ÷?±€þŸ²¡éŸÁÿõðȆ¦ÿ7ê¿,Àÿ-šþúbýÏâ¿lhúgèÿ‰úèþ!bþoÿ'öÿ, ÿ§lîÖÿ^ý?±ÿgý?eCÓÿÖþÏeý/ÆþŸ…ßë~è.…ÍÞ`"Mÿý?¡ÐÿS6«õßÔ6×Oz†þ/ˆÖÿ, ÿ/›õñ¿½”ùËÓú9aîçÿ’ýYðÿΜôpÍý8~ïøç"£ÿÈÿÈÆ[ÿãkU—M^\ºÜ~°âîüÏ|þÇÿ@ÿ¨lLBñÖ_èq#øœëW]¦ã¿öã‹©‹Ê|° pê?™ë?µ/Ð?ïúPÑû«z½ŽÌÃáú‚ùá'…¬ÿçæÕtuÓ­x†;þ/ò¿úÿðК®lº³®dƒø›	>L8õŸf‹þ¿ððP4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ëçý?úð€ý¿l¼õÿT5}~ªÎÕz5øë\ àþ ِãÿYÝ/þGîæú—
-¹þ7tºî§Sß¹5ÔÅ=ç?çýÿR…ý?ˆ_4dýïÿã DþŸÄÙÐõ_Õ›é?˜çÿáÿáâ ù‹Æÿ?è¡÷sO
-÷ëÿ›)ôÿe8þCu6ùìOÎCAÎùQÿcôÿäáæÿJ²ñK?DŸn>°àÓÍ	6¾nï·7ÿö?lUÿÍ Oאûîõßüü_¬R¬ÿX€”eC¯ÿì»ÿƒÿƒìÿdCÖÿ±«^Í÷7ÅÿÅYýs0ù;ëæËãg\/oýë²4…ßpwü_œÿ3ÔXÀùoِã¿müÕs\ñwü_ôÿ
-ü_,ür©ûKÛ6Ý8¥ÿŠ©@ëôï{ãã?™vø+ë?q–þ'PY¡þÃÂÚñš¶95Ïo{÷šÆ?2Ûÿ
-ã¿?ÞãÿíêŸVŸõ³É+çÀ½þgã'¨ÿñ€ÔŸl¼õ_4Ý͏¿þÃ0Bþôÿ”
-Mÿ}õd“ ýšÛ?üÎÜâ€þß,
-S€`¼õ?¼tF½f ÿøŸŒK 蟈_6÷êÍ3œúÿ.ÿÕ”eðÿ±`¿þÛý¸	D÷­ÿ×=ƒ ÿ8Aý…ÿÓY–п8Öê¿ètÿ’×ÍðQ“çÿnýÏë?*L‘ÿgAé$Ó1ª RY­ÿéú?Ú3¬Ä=ë¿*QÿåÀoü§ëCß_ÿñWa†ú?¤ñï«¿}ntÆÿEþ?T)ú?±¨ð¹ô2¯æ´þný/êÿü¿< ç'’þ‹æÅt¶åcnïÎ]Ë·þ£yý/qÿ#iŒ	@2$ýó Oòou7L`?z†üOêÿ< þ/’þ¿è·>oÊ\÷ã_®ìÝAÕðqûgJüO#äÿYP)& ÉÐò/º»v ÈϺu>éÿEý?V)öÿ,دþ¹Ü«ÿ5 ü×ÿq”ÀÿÏÖÿ²!éxk7­ÿ-ü?¡J¡þ¬«²2GÌB!鿾œŸLg3 ¶óîøÏãˆü‰Âª_2ý,þ/ÿ¤ñßÜÿ5ŸÿÇõú?²Æ°I†¤ÿüŸ, ÿ#’þ9ü_¨ÿ° ÿ—lHúçðaýÏâ¿lHúßÜÿµèÿ”†¨ÿ°€ì¯lhù?ÿöÿ,دþ/¹Ü«ÿÝü_èÿÆÖÿ²!ékÿ×ú?àþ7~ÓƒÆ ’þ9ü_Ð?ðɆ ÿˆÅÿÃÿÅiü7÷Íó?!Îÿ1‘(u€L.$ýsø¿Pÿa!‚öECÒ?ƒÿ+Âþø¿dCÓ¿ý!?V½~:™Ü)S§þÕ\ÿ±Âù‚¯·AÀ< ’þ9üŸð°€ú¯lHúçèÿ‡óÿ,ÄL ’¡åÿüŸXÿ³`¿þwÿg„ûÿäq¯þ·ñ.üîÿã!xL zÁôÏÑÿ÷°€þ²Ù ÿ¯\ÏpëÿùèŸäÿeCÒÿæþïùù8qþ‹•¸D0ý+ÿ7îÿf4þý?‘ÿaý?eCÒ?‡ÿë?àÿ
-Iÿý?QÿeþoِôÏáÿÄúŸÄِôÏÑÿõÐýC6´üƒÿûì׏þŸr¹Wÿ»õÿDÿ°þ—
-Iÿ›û?—õ¿û~¯û¡»6}ƒ™@ $ýsôÿ„þY@ÿOÙ¬ÕSÛ\?íþëÿ ŒPÿcëÙ¬Žÿí¥ìÌ_¾ÖÏ	«p?ÿgèÿË‚ïøw椇kîǽð{ÇþìÿxÀü/_ý¯U]6yqérûÁšg¸ó?óù?ÊbÔYPÙ4˜„â«ÿ¾ÐãFð9ׯº:MÇíÇ
 S•ùhAàÔ2×:¾…þ9x×ÿƒŠÞ_Õûëud×Ì?)Tý?7¯¦«›nÍ3Üñžÿ2ÜÿÊCkº²éκ.4.ûãÿm&ø8àÔš-üßèÿÍCÑÔ½é^­‡×<4õÑŒSÁñá2~Ö·º0móe|«Ç?ün¦Àrুªÿ½÷ÿèÿÁöÿ²ñÕÿSÕôù©:Wbðט$¸ÿ‡è_6ÔøÖ_÷ÿÐ?пl¨õ¿¡Óu?úέ! .î:ÿ9ïÿ—Øÿóp€øECÕÿÞñ?FþŸÄِõ_ÕÛé?˜çÿáÿáâ ù‹Æ{ÿ?è¡÷tO
-÷ëÿ›ÆèÿËmü‡êlò1؟܇‚œóÿ¢þÇèÿÉÃÍÿ•da”„é§›,øts‚ï‚Û»ÃíÍ¿ýÏAÔ3èÓ5´âîõߢÿ‡
-°þcR–
-¹þ³óþþ°ÿ“
-UÿÇ®z5«Üß$ÿw¬Ðÿ‹…ÉßY7_?ã"x‰øê_—¥)<€û¯ÿ£P…Ð?8ÿ-jü·¿ZcŽkžáŽÿóþ¿QÃÿÅÂ/—º¿´mӍsú¯˜ıNÿ	©ïύi‡¿ºþ“ý'PY£ÿkÇhÚæÔ<¿Q~¼Ç?&ÿ/ƼÇÿÛÝ?­.>ëg“WÎ5€ßúߎœdð²€ÔŸl¼õ_4Ý͏¿þÃq ýs@ÿ¢¡é¿¯žl _uý‡çùküWð³<*¤ ã­ÿá¥3úè5øÇÿ$Àý< þËæ^ý¯y†SÿÿÈÿOñüúçÀ~ýï÷ÿ…ÈÈã¾õÿºgøë?ŠSÔÿYø?ý—e	ý‹c­þ‹N÷/yÝvyþ·þçõ¦Èÿ³ ž’LLjüRY­ÿéþ?Ú3¬Ä=ë¿ÓùÔ÷Çoü§ûCß_ÿñ·§1þÆ¿¯þÞôþßEþ?Tü,$*üÁ_.$ýŸÌ«9­†[ÿ‹úbÿÏnÿ•
-IÿEób:Ûó1·—ç®å€[ÿѼþF8ÿËBcIÿß<À“ü[Ý
-S'؏žáÿS…ú?0ÿȆ¤ÿ/ú­Ï›2×ýø—+{wP5ÜÕÿyÿÓùTŠ	@2´üß‹î®- ò³nÏpêéÿQöÿ,دþ¹Ü«ÿ5 ü×ÿq„û_y€ÿW6$ýoí¦õ¿…ÿ'TôÏŸuUVæˆY@($ý×—ó“élÀ¶r>Ãÿãyü‘ÿã!Q¨ J† ÿ€ÁÿÚþðíiü7÷ÍçÿP¥èÿÊBÃþ%’þ9ü_ð²€ú¯lHúçð¡þÃü_²!éŸÃÿ…õ?ˆÿ²!ésÿ×¢ÿS¡þò¿²¡åÿü_Øÿ³`¿~ø¿är¯þwó¡ÿðɆ¤ÿ­ý_?êÿ€ý?¿éAc
-Iÿþ/èŸø¿dCÐÄÒÿKÁÿÅiü7÷Íó?!Îÿ1‘(u€L.$ýsø¿Pÿa!‚öECÒ?‡ÿû?àÿ’
-Mÿö‡üXõúédr§LúWsýÇ
-çÿy¾Þó€DHúgðFð° ÿ§lHúçèÿ‡óÿ,ÄL ’¡åÿüŸXÿ³`¿þwÿg„ûÿäq¯þ·ñ.üîÿã!x„T2$ýsôÿÃý, ÿŸl6Èÿ+×3ÜúÿAþúgùِô¿¹ÿ{~þ##œÿbAen AÿŠ¥ÿ'îÿf4þý?‘ÿaý?eCÒ?‡ÿë?àÿ
-IÿþoÔY€ÿ[6$ýsôÿÄúŸÄِôÏÑÿõÐýC6´üƒÿûì׏þŸr¹Wÿ»õÿDÿàþ”
-Iÿ›û?—õ¿û~¯û¡»6}ƒ™@ $ýsôÿ„þY@ÿOÙ¬ÕSÛ\?íþ뻀þ9@þ_6«ã{);ó—¯õsÂ*ÜÏÿ$
-ýYðÿΜôpÍý¸~ïøÏÿQ€ýÈÿÈÆWÿãkU—M^\ºÜ~°æîüÏ|þ²õ_T6 f¡øê¿/ô¸|Îõ«®NÓñ_ûñÅÔEe>Z8õŸÌõ?þ¯Ñÿ…wý?¨èýU½¿^Gæáp}Áüð“BÕÿsójººéÖ<Ãÿçùß(Ãý¯<´¦+›î¬ëÂ@ã¹?þßf‚ÓNý§ÙÂÿþß<MÝ›îÕzxÍCSÍ8.ãg}«óÐ6_Æ·züÃïf
-,~¨úß{ÿþ<`ÿ/_ý?UMŸŸªså!ý‡I‚ûX€þeCÿgýu×øûŸy€þeC­ÿ
-®ûéÔwn
-uq×ùÏyÿ¿4ÀþŸ‡Ä/ªþ÷Žÿ	òÿ, þˆ¬ÿªÞNÿÁ<ÿÿÈ_4ÞûÿA½§|R¸_ÿß4Fÿ_hã?Tg“Àþä>äœÿõß8FÿOnþ¯$£TEŸn>°àÓÍ	6¾nï·7ÿö?lQÿÍ O×Њg¸×‹þJaýǤ,rýgçýü<`ÿ'ªþ]õjV¹¿Iþï8Dÿ/&gÝ|yüŒ‹à%â«]–¦ð< î¿þB•Aÿàü·l¨ñß6þj9®y†;þÏûÿFYÿ¿\êþÒ¶M7Îé¿b.Ç:ý§¤¾?7¦¾OýGeÕ?ê?û³vü‡¦mNÍóåÁ{üà Ñÿ‰ïñÿv÷O«‹ÏúÙä•s
-à¿þ“ëú“·þ‹¦[£ùïñ×¢ÿпlhúï«'›èW]ÿA8ÿ'¨ÿó<*´ Œ·þ‡—Îè£×àÿ“ Büg!…øEs¯þ×<éÿåývJ€þ°_ÿûý1öò¸oý¿îþúbœÿæáÿô_–%ô/޵ú/:Ý¿äu3|ØåùcÜúŸ¯ÿUˆûyã4T™FìÊjýO÷ÿÑža%îYÿU*@ý—¿ñŸî}
-üÇ_Eêÿ,Æ¿¯þÞôþßEþIˆÿ,$*ü¡_.$ýŸÌ«9­†[ÿ‹úbÿÏnÿ•
-IÿEób:Ûó1·—ç®å€[ÿѼþFðÿ³Æ˜ $CÒÿ7ð$ÿVwÃÔ	ö£gøÇÿT¡þÏÌ?²!éÿ‹~ëó¦Ìu?þåÊÞT
-wõ^Äÿ4‚ÿŸhhù¿Ý][ ägÝ:ŸáÔÿÒÿ£2ìÿY°_?ü?r¹Wÿk ø¯ÿã(…ÿŸ„ِô?¼µ›Öÿ–÷¿©úgáϺ*+sÄ, ’þëËùÉt6`Û 9ŸáŽÿóþqˆü‰BP2ýþ¯0Ãý,Æsÿ×|þUšbþç aÿ’Iÿþ/ø?Y@ýW6$ýsø¿Pÿaþ/ِôÏàÿ
-±þgñ_6$ýoîÿZôJ#ÔX@öW6´üƒÿûì×ÿ—\îÕÿnþ/ôcþ/ِô¿µÿëGý°ÿgá7=hLr!éŸÁÿ…üðɆ ÿˆ¥ÿWÿ¤ñßÜÿ5Ïÿ„8ÿÇD¢Ô0¹ôÏáÿBý‡…Ú
-Iÿþ/ìÿX€ÿK64ýÛòcÕ맓ɝ2uê_Íõ+œÿç!øzÌ!韣ÿü,Àÿ)’þúÿáþoâ& ÉÐòÿþO¬ÿY°_ÿûý¶ ò¸WÿÛø?çþ¯8ÊÿYH¶ ‚!韣ÿîÿ`ýÿd³Aþ_¹žAÊÿCÿ, ÿ/’þ7÷/Öÿa„ó_,¨,À0Áô¯Xü߸ÿ›ÒøsôÿÄýO, ÿ§lHúçðcýÇ’¿²!éŸÃÿú/ðˆ¤ŽþŸXÿ³€ø/’þ9ú¢þúȆ–ÿcðbÿÏ‚ýúÑÿS.÷ê·þŸèÿŠ¿²!ésÿç²þ—aÿÏÂïu?t—¦o0„¤ŽþŸÐ?èÿ)›µúoj›ë§=Ãý?Î ¨ÿ±€ü¿lVÇÿöRvæ/_ëç„U¸Ÿÿ3ÃüŸøŽgNz¸æ~Ü¿wüçÿ(Àþädã«ÿñµªË&/.]n?Xówþg>ÿG6\@ÿ¨lÌBñÕ_èq#øœëW]¦ã¿öã‹©‹Ê|´ pê?™ëü_£ÿïú°'®¦Wõþz™‡ÃõóÃO
-UÿÏÍ«éê¦[ówüŸç£÷¿òК®lº³®äþø›	>N8õŸfÿ7úóP4uoºWëá5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi êïý?úð€ý¿l|õÿT5}~ªÎ•‡üõ&	îÿaú—
-5þŸõ×]ã?îæú—
-µþ7tºî§Sß¹5ÔÅ]ç?çýÿÒ û¿h¨úß;þ'Èÿ³€ø/²þ«z;ýóü?ü?\ Ñxïÿ=ôž.ðIá~ýÓýY ÿPM>F û“ûPsþ_Ôãý?y¸ù¿’,ŒÒ(þtóŸnN°ñ]p{w¸½ù·ÿÙ`#ˆúo}ºæ€V<ýþ[ôÿP
-ë? eِë?;ïÿàÿàû?ÙPõìªW³ÊýMòÇ!ú±0ù;ëæËãg\/_ýë²4…çpÿõ†¸ÿ™œÿ–
-5þÛÆ_­1Ç5ÏpÇÿyÿß(‹áÿbá—KÝ_Ú¶éÆ9ýWÌâX§ÿ(!5þygÚᯬÿ$Áø¿S™Rê?¬ÿ¡i›SóüFøEðÿ0Ȳãρÿø»ü§ÕÅgýlòʵðYÿ_Ç?NáÿâÝ?eã¯ÿ¢éVhþ{üõF
-ùè_4Dý÷Õ“MôÝÿ‘Îã‚û¿yãÇs€\üõ?¼tF}f ·þ£™þ þÇÄ/›»õ¿âNý«Eüœÿdaüöÿ½¦qܹþ_õýG	îÿåaüöËÿ–%ô/”Õú/:Ý¿äu3|ØæùCÜúŸçÿTcýÏ‚‰Ó(É4îþÊzýO ’ža%îYÿU)îÿaÁsü§ ÃÏÿÞæÿõhãßW{ÜèŒÿßõz¯ÿ…ˆÿ<$*ü¡_.4ýŸÌ«9­~†[ÿËú†ý?ðÿȆ¦ÿ¢y1mú˜Û[sÇrÀ­ÿEý/
-Pÿg!1H†¦ÿoàIþ­î†©ìÏðÿiÀÿÇîÿ–
-Mÿ_ô[Ÿ7e®ûñoWöò jø¸4!þg
-þ ‹†˜ÿ{Ñݵ@~Ö­ëNý/ý?aŒý?ü?¢¹[ÿ+ øÇÿ8ްÿgþ_ÙÐô?¼µ[ÖÿÔ¼þ†èÿÁßuUVæˆI@(4ý×—ó“élÀör=Ãÿãyüÿã!Q¨ J†¢ÿ€Ãÿ¥àÿâ€6þ[û¿æóÿ¸þCÿGÒö/ÉÐôÏàÿ‚ÿ“ÔeCÓ?ƒÿõàÿ’
-Mÿþ/¬ÿY@ü—
-Mÿ[û¿æúO² õý•
-1ÿ·¿ÿûø¿Ds·þ÷òaÿÏü_²¡écÿ×ú?$Øÿ³ð›4f ¹ÐôÏàÿ‚þY€ÿK6ýGþ¯þ/h㿵ÿkžÿ	qþ‰D©`r¡éŸÁÿ…ú´/šþ÷÷)ìÿX€ÿK6DýÛòcÕë§“É]:uê_-ê?a„øÏBðõ6˜$BÓ?ƒÿþàÿ”
-MÿýÿpþŸ…ø€	@2ÄüÿþþO¬ÿYìý¶ R¹[ÿ›ø?úáÿæ!
-aMÿýÿÐÿ“ôÿ“Íùåx†[ÿ?ÈÿCÿ, ÿ/šþ·öÏÏÄQCÿ¨,À
- ‚¡è_qø¿qÿ7´ñgèÿ‰ûŸX@ÿOÙÐôÏàÿÆúø?dCÓ?CÿOÔY€ÿ[64ý3ø?±þgñ_64ý3ôÿDý‡tÿ
-1ÿ·¿ÿûôÿÍÝúß«ÿ'öÿ,Àü)šþ·ö.ë	öÿ,ü^÷Cw)lö@húgèÿ	ý³€þŸ²Y­ÿ¦¶¹~Ò3üóA¤°þgùÙ¬ÿí¥ìÌ_žÖÏ	«ðõþÏÔê?Iø?9ðÿΜôpÍý8~ïøç"• ÿÈÿÈÆ[ÿãkU—M^\ºÜ~°âîüÏ|þƒý?YPÙ4˜„â­ÿ¾ÐãFð9ׯº:MÇíÇS•ù`AàÔ2ך(ÔYx×ÿƒŠÞ_Õûëud×Ì?)dý?7¯¦«›nÅ3Üñ‘ÿ
-Ðÿ‡‡Öteӝu]h\ ÄÿÛLða:À©ÿ4›Çôÿ`¢hêÞt¯ÖÂkšúhÆ©àøp?ë[]˜‡¶ù2¾Õã~7S`9ðÓ@ÖÿÎûÿ ÷±€ý¿l¼õÿT5}~ªÎÕz5øë?L#ø?X€þeCŽÿgýuŸøÝÿãþg ِëC§ë~:õ[C@]ÜsþsÞÿ/U8ÿÁÃâ
-Yÿ;ÇÿùÿeC×Uo¦ÿ [êù¿hü÷ÿƒz?ø¤p/ÿ·Êlü‡ÿ{ˆã?Tg“Àþä<äœÿõß8ÎPÿaáæÿJ²0ÓøÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþçú-¡ eÙÐë?ûîÿpÿØÿɆ¬ÿcW½š5îoŠÿ;ÂúŸ‰ÉßY7_?ã"x‰xë_—¥)ü€»ãÿâüw˜¡þÃΈÿmã¯Ö˜ãŠg¸ãºð‡ð²ðË¥î/mÛtã”þ+¦q¬Ô¿ï•ÿ`ÚáûÜÿ¨²ñGÔ8X=þCÓ6§æùð‹à=þa¥ÆŸÿñÿv÷O«‹ÏúÙä•k
-à^ÿÏûÿÅiŒý?èþ)ýM·Bóßã¯ÿ÷ÿ1þŸ²!꿯žl _sýÇ
-ý/îÿIRäÿXãG¤ ã¯ÿá¥3úè3¸õ¿¸ÿ7Èàÿf!Â@4wëÅ3œú_Þÿg[BBÿدÿ¿‡÷qÀT Ž;×ÿ«žá¯ÿ(AÿÆo¿üoYBÿBY­ÿ¢ÓýK^7ÃG]ž?Æ­ÿïó±=ÿ¡ÿ&NÃ$Ó1´/“õúŸîÿ#=ÃJܳþ«’õ_<Ǻÿ1ôü5ðŨÿ³@ÿ¾ú{ËûýŸBôf"Qáýr¡éÿd^Íiõ3ÜúŸ¯ÿGù#ÿÇü?²¡é¿h^Lg{>æöRàܱpë?šé?‰ÜÿÈBcMÿß<À“ü[Ý
-S'ØžáÿS…ó¿< ü/šþ¿è·>oÊ\÷ãß®ìåAÕpOÿçEüÏÐÿƒ•b1ÿ÷¢»k€ü¬[×3œú_úÂõì×ÿ\îÖÿŠ ~ñÒÿøúç þ_ÙÐô?¼µ[ÖÿþqÿÔÿGügâϺ*+sÄ$ šþëËùÉt6`Û ¹žáŽÿ‹ûßÃþ?…
- d(úvõ]ý¿ãtÿ´ñßÚÿ/ÖØÿñÆ°I†¦ÿýý_)Ö, ý#šþü_ð² ÿ—lhúgðaýÏâ¿lhúßÚÿ5×’¨ÿ°€ì¯lˆù¿ý_ñTÿAÿì×ÿ—\îÖÿæþ¯øêÿÂþŸø¿dCÓÿÆþ¯ôx÷aÿÏÂozИäBÓÿžþ¯ëúù?àÿ’
-EÿCÿ/Ûÿþ¯ý¡ÿÖþ¯ùù?øÿ¹H”:À&šþ÷ô]ïÿÊÐÿ‡…Ú
-Mÿ{ú¿’«ÿý?X€ÿK6DýÛòcÕë§“É]:uê_-Îÿ‡â?Á×Û `Mÿ{ú?“«ÿý¿Y@ùW64ýïÙÿ/¹ú?áÿb!>`1ÿ¿ÿ?¬ÿYìý¶ R¹[ÿ›ø?úqÿQð%нXhúß³ÿ_ÿ'#èÿ'›-òÿÊñ·þÿ‡þY@þ_64ýoíÿžßÿ£ÿ*pˆ`(úWý?ø¿9 ?CÿOø¿X@ÿOÙÐôÏÐÿù_àÿ
-Mÿý?qþ‹ø¿eCÓ?CÿO¬ÿY@ü—
-Mÿý?áÿbÝ?dCÌÿíßÿûì׏þŸr¹[ÿ{õÿÄþŸôÿ”
-Mÿ[û?—õ¿û~¯û¡»6{ƒ‰@ 4ý3ôÿ„þY@ÿOÙ¬ÖSÛ\?éþù¿ RXÿ³€å¿lÖÇÿöRvæ/Oëç„U¸_ÿß IÑÿ—ïñïÌI×܏sá÷Ž_þÇŽ¤bôÿ`ùÙxë|­ê²É‹K—ÛV<Ýÿ™Ïÿñ8@ÿ¨lLBñÖ_èq#øœëW]¦ã¿öã‹©‹Ê|° pê?™ë?MÔYx×ÿƒŠÞ_Õûëud®¥áÌ?)dý?7¯¦«›nÅ3Üñ?^Äø?xhMW6ÝY×…Æ²Aü¿Í¦œúO³yüGÿo&ЦîM÷j-¼æ¡©fœ
-Ž—ñ³¾Õ…yh›/ã[=þáw3–?
-dýï¼ÿGÿ°ÿ—·þŸª¦ÏOÕ¹Z¯ý ø?X€þeCŽÿgýu¿øeðñ ýˆ\ÿ:]÷Ó©ïÜêâžóŸóþ©ÂþŸ‡Ä/²þwÿq ÿgñ_6týWõfúæùø¸8@þ¢ñßÿzèý\à“½üß*S)üßǨÎ&#€ýÉy(È9ÿ/ê¿qœ¡þÃÂÍÿ•da¬²øÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›ßÿ«ë? eÙÐë?ûîÿàÿàû?ِõìªW³ÆýMñGq†óÿ,LþκùòøÁKÄ[ÿº,Máw Üÿç¿CÜÿÁΈÿmã¯Ö˜ãŠg¸ãÿâþw»$€þøåR÷—¶mºqJÿS8Öé?ô½òñL;üÕõŸð?Ê”=ÿúÏþ¬ÿ¡i›SóüFøEðÿ0Èlþã¿?þãÿíîŸVŸõ³É+×À½þgã§1öÿ,`ù/ýM·Bóßã¯ÿ0Âý?<Dпhˆúï«'›è×\ÿ±Bÿé<þ'	ò,¨ð1Ä ý/ÑGŸÀ­ÿh¦ÿ$Èàÿa!Ä@4wëÅ3œúW‹øàþì×ÿßq6¦qܹþ_õýGI˜@ÿ¼ë¿,Kè_"«õ_tºÉëfø¨ËóǸõ?Ïÿ©(ÂúŸ…Cœ†ÇLÇоLÖëºÿô+qÏú¯JBÔ9ðÿéþÇÐó×ÀüU£þÏmüûêï-ïÿýGÿ§©þ"þó¨ð„~¹Ðô2¯æ´úný/ëÿ)öÿ,àö_ÙÐô_4/¦³=s{)pîX¸õ¿¨ÿ…êÿ,¤1& ÉÐôÿÍ<É¿ÕÝ0u‚ýàþñ?Uü, ü/šþ¿è·>oÊ\÷ãß®ìåAÕpOÿçEüÏøÿYP)& Éó/º»¶ ÈϺu=éÿ¥ÿ'Œ°ÿgÁ~ýðÿÈåný¯8 àÿã8ÄþŸøeCÓÿðÖnYÿSóú¯- @ÿüYWeeŽ˜„BÓ}9?™Îf l ×3Üñ?^¬ÿ‘ÿã!Q¨ J†¢ÿ€Ãÿ¥àÿâ€6þ[û¿æó¿m ùŸƒ4†ýK24ý3ø¿àÿdéÙÐôÏàÿBý‡ø¿dCÓ?ƒÿëÿeCÓÿÖþ¯¹þ“4Cý‡deCÌÿíïÿÂþŸûõÃÿ%—»õ¿—ÿûàÿ’
-Mÿû¿~Ðÿ!ÆþŸ…ßô 1È…¦ÿ
 ôÏü_²¡è?âðÅðq@ÿ­ý_óüOˆóL$Jà “Mÿþ/ÔXÀÝ?²¡éwÿW`ÿÇü_²!êßþ«^?LîÒ©SÿjQÿ	CÄ‚¯·AÀ< šþüŸð°€ò¯lhúgèÿ‡óÿ,ÄL ’!æÿ÷÷býÏ‚ýúíý¶ "¹[ÿ›ø?úáÿæACÔ äBÓ?Cÿ?ôÿdýÿd³Eþ_9žAÊÿCÿ, ÿ/šþ·öÏÏÄaCÿ¨,À
- ‚¡è_qø¿qÿ7´ñgèÿ‰ûŸX@ÿOÙÐôÏàÿÆúø?dCÓ?CÿOÔY€ÿ[64ý3ø?±þgñ_64ý3ôÿDý‡tÿ
-1ÿ·¿ÿûì׏þŸr¹[ÿ{õÿÄþŸôÿ”
-Mÿ[û?—õ¿û~¯û¡»6{ƒ‰@ 4ý3ôÿ„þY@ÿOÙ¬ÖSÛ\?éþù¿ 
-°þgËÙ¬ÿí¥ìÌ_žÖÏ	«p?ÿg$èÿË‚÷øw椇kîǹð{Ç?ÿ©ý?X@þG6Þú_«ºlòâÒåöƒÏpçæó(ÔYPÙ4˜„â­ÿ¾ÐãFð9ׯº:MÇíÇS•ù`AàÔ2ךèÿÁ»þTôþªÞ_¯#óp¸¾`~øI!ëÿ¹y5]Ýt+žáŽÿ‹üo€þ?<´¦+›î¬ëÂ@ãÙ þßf‚ÓNý§Ù<þ£ÿ7ES÷¦{µ^óÐÔG3NÇ‡ËøYßêÂ<´Í—ñ­ÿð»™ˁŸ²þwÝÿGúð€ý¿l¼õÿT5}~ªÎÕz5øë\ àþ ِãÿYÝ5þCÿ,@ÿ²!×ÿ†N×ýtê;·†€º¸çüç¼ÿ_ª°ÿçá ñ‹†¬ÿ]ãl[Cÿ þˆ®ÿªÞLÿÁ<ÿÿÈ_4þûÿA½Ÿ|R¸_ÿßL¡ÿ/Äñª³ÉÇ`r
-rÎÿ‹úo£ÿ'7ÿW’…Ñÿ’äÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹U‚õ²lèõŸ=÷ðpýŸlÈú?vÕ«Yãþ¦ø¿£8M &gÝ|yüŒ‹à%â­]–¦ð; îŽÿ‹óßaŠú8ÿ-rü·¿ZcŽ+žáŽÿ‹þ¿¶$ý3ðË¥î/mÛtã”þ+¦q¬Ó¿ú¥ïύi‡ïSÿQ™§ÔX=þCÓ6§æùð‹à=þae¨ÿ±à?þßîþiuñY?›¼r­ÜëÿEþ?MÿYÀò_6þú/šn…æ¿Ç_ÿa¤Ðÿ—è_6Dý÷Õ“Íôk®ÿX¡ÿÅþ?Iqþƒ>†æ ±øëxéŒ>úÌ ný/îÿUú¿² þñKæný¯x†Sÿ?Èÿ'¨ÿ±`¿þÿŽÿ|@˜
-ÄqçúÕ3üõ%¸ÿ“‡wý—e	ýKdµþ‹N÷/yÝuyþ·þçù?áþq&™Ž¡}™¬×ÿtÿéVâžõ_•*Ô9ðÿéþÇÐó×ÀüÇPÿg6þ}õ÷–÷ÿ.ú?…!â?‰
-ÿ@è—Mÿ'ójN«ŸáÖÿ²þó<àö_ÙÐô_4/¦³=s{)pîX¸õ¿¨ÿáþ_&Ò€dhúÿæžäßên˜:Á~ðÿøŸ†ü,Àÿ'šþ¿è·>oÊ\÷ãß®ìåAÕpOÿçEüÏpþ•b1ÿ÷¢»k€ü¬[×3œú_úÂûì×ÿ\îÖÿŠ þñ?Ž#ìÿY€ÿW64ýoí–õ¿åýoaŒþ_,üYWeeŽ˜„BÓ}9?™Îf l ×3Üñqÿ{„ü‰BP2ýþ¯ þ/h㿵ÿk>ÿ[æÒö/ÉÐôÏàÿ‚ÿ“ÔeCÓ?ƒÿõàÿ’
-Mÿ»û¿T†õ?ˆÿ²¡ékÿ×\ÿI þò¿²!æÿö÷aÿÏ‚ýúáÿ’ËÝúßËÿ…ý?ðɆ¦ÿý_?êÿ€ý?¿éAcMÿ»û¿Bäÿx€ÿK6ýGþ¯þ/h㿵ÿkžÿ	qþ‰D©`r¡éŸÁÿ…ú¸ûG64ý3ø¿°ÿcþ/ÙõoȏU¯ŸN&wéÔ©µ¨ÿ„â?Á×Û `Mÿýÿàÿ`þOÙÐôÏÐÿçÿYˆ˜ $CÌÿïïÿÄúŸûõÛûÿ
-lDr·þ7ñ.ôÃÿ̓:<†¨È…¦†þèÿÉúÿÉf‹ü¿r<ƒ”ÿ‡þY@þ_64ýoíÿžŸÿˆ£ ‚þ9PY€@CÑ¿âðãþohã¿ÿÏ÷?±€þŸ²¡éŸÁÿõðȆ¦ÿ7ê¿,Àÿ-šþüŸXÿ³€ø/šþú¢þúȆ˜ÿÛßÿ‰ý?öëGÿO¹Ü­ÿ½úbÿÏúʆ¦ÿ­ýŸËú_‚ý?¿×ýÐ]
-›½ÁD šþî†þY@ÿOÙ¬ÖSÛ\?éþù¿ RXÿ³€ü¿lÖÇÿöRvæ/Oëç„U¸Ÿÿ3HRôÿeÁ{ü;sÒÃ5÷ã\ø½ãŸÿ§ôÿ`ùÙxë|­ê²É‹K—ÛV<Ýÿ™Ïÿq¢þ˂ʦÀ$ oý÷…7‚Ϲ~ÕÕi:þk?¾˜º¨Ì§þ“¹þÓD¡ÿïúPÑû«z½ŽÌÃáú‚ùá'…¬ÿçæÕtuÓ­x†;þ/ò¿úÿðК®lº³®dƒø›	>L8õŸfÿ7ü<MÝ›îÕZxÍCSÍ8.ãg}«óÐ6_Æ·züÃïf
-,~Èúßyÿþ<`ÿ/oý?UMŸŸªsµ^
-þú ¸ÿ‡è_6äøÖ_÷‹ÿQ†ûŸy€þeC®ÿ
-®ûéÔwn
-uqÏùÏyÿ¿TaÿÏÃâ
-Yÿ»ÆÿxÜ@ÿ þˆ®ÿªÞLÿÁ<ÿÿÈ_4þûÿA½Ÿ|R¸_ÿß,Dÿ_ˆã?Tg“Àþä<äœÿõß8FÿOnþ¯$£ÿ©ðÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹UŠõ²lèõŸ}÷ðð€ýŸlÈú?vÕ«Yãþ¦ø¿£8‹¡&gÝ|yüŒ‹à%â­]–¦ð; îŽÿ‹óßa†ú8ÿ-rü·¿ZcŽ+žáŽÿ‹þ¿‚ÿ‹…_.uiÛ¦§ô_1ˆcþ£Ò÷çÆ´Ã_]ÿÿw*Sã– õVÿдͩy~#ü"xdY€ñçÀü¿ÝýÓêâ³~6yåZ¸×ÿálüã4FþŸtÿ”¿þ‹¦[¡ùïñ×Xÿ³ ýˆ¨ÿ¾z²Y€~Íõ+ôŸÎã’"ÿÏB?F	æ ±øëxéŒ>úÌ nýG3ý'
-ýÿyˆ° ÍÝú_ñ§þÕ"þèÿ̃ýöÿ{Lâ¸sý¿êþú’õÆo¿üoYBÿBY­ÿ¢ÓýK^7ÃG]ž?Æ­ÿyþOE1Öÿ,˜8
-ÿ—éÚ—ÉzýO÷ÿ‘ža%îYÿUI†ú/žã?ÝÿèkñÿñÔÿY _ý½åý¿ÿèÿ4ÕÿBÄþÐ/šþOæÕœV?íÿeýþþ—
-MÿEób:Ûó1·—çŽå€[ÿ‹ú_ þÏBcMÿß<À“ü[Ý
-S'ØžáÿS…þÏ<àþoÙÐôÿE¿õySæºÿve/ª†{ú?/âÀÿÏ‚J1H†˜ÿ{Ñݵ@~Ö­ëNý/ý?!îä!€ÿG4wëÅ ÿøÇöÿ,Àÿ+šþ‡·vËúŸš×Ã0Fÿ?þ¬«²2GLB¡é¿¾œŸLg3 ¶
-ëîø/ÖÿÈÿñ(, $CÑÀàÿ²ý?àÿÚÚøoíÿšÏÿaˆûÿxHcØ¿$CÓ?ƒÿþOPÿ•
-Mÿþ/ÔX€ÿK64ý3ø¿°þgñ_64ýoíÿšë?ÉpÿÈþʆ˜ÿÛßÿ…ý?ü_¢¹[ÿ{ù¿°ÿgþ/ÙÐô¿±ÿëGý°ÿgá7=hÌ r¡éŸÁÿý³ ÿ—l(ú8ú)ø¿8 ÿÖþ¯yþ'Äù?&¥p€É…¦ÿê?,DоhhúgðaÿÇü_²!êßþ«^?LîÒ©SÿjQÿ	#Ä‚¯·AÀ< šþw÷†¸ÿø?eCÓ?Cÿ?œÿg!>`1ÿ¿¿ÿë{ÿ_-€TîÖÿ&þÏ…þcø¿yˆ‚Ç(îÅBÓ?Cÿ?ôÿdýÿd³Eþ_9žáÖÿòÿÐ?Èÿˆ¦ÿ­ýßóóq(蟕¸D0ý+ŽþŸ¸ÿ›Úø3ôÿÄýO, ÿ§lhúgðcýÇü²¡éŸÁÿú/ðˆ¦†þŸXÿ³€ø/šþú¢þúȆ˜ÿÛßÿ‰ý?úŠænýïÕÿûÐÿS64ýoíÿ\ÖÿbìÿYø½î‡îRØì
-&ÐôÏÐÿúgý?e³ZÿMmsý¤gøçÿ‚HaýÏòÿ²YÿÛKÙ™¿<­ŸVá~þÏ IÑÿ—ïñïÌI×܏sá÷Žþ'R1ú°€ül¼õ?¾VuÙäÅ¥Ëí+žáÎÿÌçÿxüôρʦÀ$ oý÷…7‚Ϲ~ÕÕi:þk?¾˜º¨Ì§þ“¹þÓD¡ÿï
 úPÑû«z½ŽÌÃáú‚ùá'…¬ÿçæÕtuÓ­x†;þ/ò¿úÿðК®lº³®dƒø›	>L8õŸf‹þ¿ððP4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ëçý?úð€ý¿l¼õÿT5}~ªÎÕz5øë\ àþ ِãÿYÝ/þGîæú—
-¹þ7tºî§Sß¹5ÔÅ=ç?çýÿR…ý?ˆ_4dýïÿã DþŸÄÙÐõ_Õ›é?˜çÿáÿáâ ù‹Æÿ?è¡÷sO
-÷ëÿ›)ôÿe8þCu6ùìOÎCAÎùQÿcôÿäáæÿJ²0VÿK?Ý|`Á§›l|ÜÞnoþí6تþ›AŸ®9 ÷3Üë¿ùù¿X¥Xÿ± )ˆ^ÿÙwÿÿØÿɆ¬ÿcW½š5îoŠÿ;гúç`òwÖÍ—Çϸ^"Þú×ei
-¿àîø¿8ÿf¨ÿ°€óß²!ÇÛø«5æ¸âîø¿èÿ(ø¿XøåR÷—¶mºqJÿS8Vê?£ôý¹1íðW×Òÿ*Saˆú«ÇhÚæÔ<¿~¼Ç?2Ûÿã¿?þãÿíîŸVŸõ³É+×À½þgã§	òÿ,Dˆù¢ñ×Ñt+4ÿ=þú#¬ÿy@ÿOÙõßWO6Я¹þc…þÓyüOÿç!Jãs€Xüõ?¼tF}f ·þ£™þ ÿ?Ä/š»õ¿âNý«EüôfaÜ{¸ÿO.w®ÿW=Ã_ÿã{ÔÿY(ËúÌjýî_òº>êòü1nýÏ×ÿ*Âý<¨0*Ã$Ó1Ä/’õúŸîÿ#=ÃJܳþ«Òõ_<Ǻÿ1ôü5ðÿñÔÿY _ý½åý¿ÿèÿ”âþ_FþÈ/šþOæÕœV?íÿEý?°ÿgöÙÐô_4/¦³=s{)pîX¸õ¿¨ÿE
-õÒ€dhúÿæžäßên˜:Á~ðÿøŸ†ü,Àÿ'šþ¿è·>oÊ\÷ãß®ìåAÕpOÿçEüÏüÿ,¨€dˆù¿Ý][ ägݺžáÔÿÒÿ&Øÿ³ ÿlîÖÿŠ þñ?ŽcìÿY€ÿW64ýoí–õ?5¯ÿ†a‚þ,üYWeeŽ˜„BÓ}9?™Îf l ×3Üñ?žÇÿù?…
- d(ú8ü_1ü_ÐÆkÿ×|þÇ€ùŸƒ4†ýK24ýïîÿŠ2ø?Y@ýW64ý3ø¿Pÿaþ/ÙÐôÏàÿÂúŸÄÙÐô¿µÿk®ÿ$S¨ÿ°€ì¯lˆù¿Ýý_8ÿÉü_²¹[ÿ{ù¿°ÿgþ/ÙÐô¿±ÿëýìÿYøM3€\húgðAÿ,Àÿ%Šþ#ÿWÿ´ñßÚÿ5Ïÿ„8ÿÇD¢Ô0¹ÐôÏÐÿõpÿŸlhúgðaÿÇü_²!êßþ«^?LîÒ©Sÿ‹þÿq#þ³|½
-æ‰ÐôÏàÿ„ÿƒø?eCÓ?Cÿ?œÿg!>`1ÿ¿ÿ?¬ÿY"Üÿ'™»õ¿‰ÿs¡ÿþo¢ô1Æ@.4ý3ôÿCÿOÐÿO6[äÿ•ãnýÿ ÿý³€ü¿lhúßÚÿ=?ÿGîÿfAen EÿŠÃÿû¿Y ?CÿOÜÿÄúʆ¦†þŸXÿ±€Ü¯lhúgð£þËüß²¡éŸÁÿ‰õ?ˆÿ²¡éŸ¡ÿ'ê?, û‡lˆù¿ýûbÿÏúÊænýïÕÿûÐÿS64ýoíÿ\ÖÿìÿYø½î‡îRØì
-&ÐôÏÐÿúgý?e³ZÿMmsý¤gøçÿ‚(ÄúŸäÿe³>þ·—²3yZ?'¬ÂýüŸA’¢ÿ/Þãß™“®¹çÂïÿüO¤ôÿ`ùÙxë|­ê²É‹K—ÛV<Ýÿ™Ïÿñ¸ „þ9PÙ4˜„â­ÿ¾ÐãFð9ׯº:MÇíÇS•ù`AàÔ2ך(ôÿ`á]ÿ*zUï¯×‘y8\_0?ü¤õÿܼš®nºÏpÇÿEþ7@ÿZÓ•MwÖua qlÿo3Á‡é §þÓláÿ†ÿƒ‡¢©{Ó½Z¯yh꣧‚ãÃeü¬ouaÚæËøVøÝLåÀOYÿ;ïÿÑÿƒìÿeã­ÿ§ªéóSu®Ö«Á_ÿaáþ ِãÿYÝ5þCÿ,@ÿ²!×ÿ†N×ýtê;·†€º¸çüç¼ÿ_ª°ÿçá ñ‹†¬ÿãˆü?ˆÿ²¡ë¿ª7Ó0ÏÿÃÿÃÅòÿþÐCïçŸî×ÿ7Ñÿ—âøÕÙäc°?99çÿEý7ŽÑÿ“‡›ÿ+Éì¡ËôÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹Ç  ýs )ˆ^ÿÙwÿÿØÿɆ¬ÿcW½š5îoŠÿ;JÆ?†þ˜üuóåñ3.‚—ˆ·þuYšÂï 
 ¸;þ/·ê?,àü·lÈñß6þj9®x†;þ/úÿŽS ôÏÁ/—º¿´mӍSú¯˜
-ıNÿJÛŸoL;üÕõŸñs•Mõ_ÔögíøMÛœšç·ýû?¶ÿS6†Œ?ÞãÿíêŸVŸõ³É+çÀ½þgã')ú²€ÔŸl¼õ_4Ý͏¿þmpèŸtÿ•
-Mÿ}õd“ ýšÛ?|Ï\ã€ó,
--€ã­ÿá¥3úè5øÇÿQþˆÿ, ê'›{õ¿æNýÿ#ÿoõe)ü?,دÿzÿŸ‚
-H ÷­ÿ×=ƒ ÿñúçàÿô_–%ô/޵ú/:Ý¿äu3|Ôäùÿƒ[ÿÿ·þ·‚P…êÿ,„qþ/Ó1b¿LVëºþö+ñµõß«þ¥PÿgÁoü§ëCß_ÿñW‘íÿ…ñßÒø÷Õß>7:ãÿwùÿëø‡
-ñŸ‡D… ôË…¤ÿ“y5§õÏpë¾þ#Ôÿy@ý_6$ýÍ‹élËÇÜÞ	œ»–nýG3ý'a„ü?iŒ	@2$ýó Oòou7L`?z†üOú¿ñ ólHúÿ¢ßú¼)sݏ¹²wUÃÇíŸ)ñ?EÿgTŠ	@2´üß‹î® ò³nÏpêÿ»úÿUÿ±Ê°ÿgÁ~ýðÿÈå^ý¯9 à¿þ£ý?X€ÿW6$ýoí¦õ?5¯ÿ†
-ýxø³®ÊÊ1…¤ÿúr~2Í Ø.@Îg¸ã<ÿ!ò<$
-@Éô°ø¿ü_Æsÿ×|þ×8ÿÁBÃþ%’þ9ü_ð²€ú¯lHúçð¡þÃü_²!éŸÃÿ…õ?ˆÿ²!ésÿ×\ÿI¡þò¿²¡åÿü_Øÿ³`¿~ø¿är¯þwó¡ÿ;ðɆ¤ÿ­ý_Ëþ!îäá7=hLr!éŸÃÿý³ ÿ—lúöô]û¿ªÐö†ÿkH㿹ÿkÞÿ7T)æ¥p€É…¤ÿê?,DоhHúßÑÿõ~ÿOÿ'ðɆ¦ûC~¬zýt2¹S¦Ný«¹þc• ÿÁ×Û `Iÿ;ú?¯úO•ÂúŸø?eCÒÿŽýÿÞ×ÿ)úóà "Zþ?ÿçmýŸbýÏ‚ýúßïÿ+°Ç½ú߯ÿ™Ìõ%ˆÿ,¤
-[ ÁôÏÑÿ÷°€þ²Ù ÿ¯\Ï åÿÑÿäÿeCÒÿæþïÅú\ @ÿ¨,À
- ‚!è_±ôÿÄýß,ÆŸ£ÿ'ò¿, ÿ§lHúçðãü?Hþʆ¤ŽþŸð± ÿ·lHúçèÿ‰õ?ˆÿ²!韣ÿ'ò¿, û‡lhù?†þŸØÿ³`¿~ôÿ”˽úß­ÿ'üŸ,àø‡lHúßÜÿ¹¨ÿ…öÿ,ü^÷Cw)lú3@Húçèÿ	ý³€þŸ²Y«ÿ¦¶¹~Ú3ü×ÿã€úÈÿËfuüo/egþòµ~NX…ûõÿ
-ì4 ÿ'¾ãß™“®¹÷ÂïŸùÿ:þQ€û_x@þG6¾ú_«ºlòâÒåöƒ5Ïpçæó”Å8ÿǂʦÀ, _ý÷…7‚Ϲ~ÕÕi:þk?¾˜º¨ÌG§þ“¹þÓý¿yx×ÿƒŠÞ_Õûëud×Ì?)Tý?7¯¦«›nÍ3Üñ?^Äÿúg¡5]Ùtg]Èýñÿ6|œpê?ÍýÑÿ›‡¢©{Ó½Z¯yh꣧‚ãÃeü¬ouaÚæËøVøÝLåÀOUÿ{ïÿÑÿƒìÿeã«ÿ§ªéóSu®<Äà¯ÿp|ýs ýˆÿÏúë¾ñúgú—
-µþ7tºî§Sß¹5ÔÅ]ç?çýÿÒ û¿h¨úß;þ£ÿˆÿ²!뿪·Ó0ÏÿÃÿÃÅò÷þÐCïéŸîåÿVi”ÀÿÍmü‡êlò1؟܇‚œóÿ¢þÇê?,Üü_IFi–}ºùÀ‚O7'Øø.¸½;ÜÞüÛÿl°Dý7ƒ>]s at +žá^ÿÍÏÄ*ÀúHY6äúÏÎû?ø?xÀþO6Tý»êÕ¬r“üßã úç`òwÖÍ—ÇÏ8	*_ýë²4…çpÿõèÿÇT/jü·¿ZcŽkžáŽÿé²þÿ¿\êþÒ¶M7Îé¿b.Ç:ý«„Ôøçi‡¿ºþ£þ¨L)…ú«ÇhÚæÔ<¿~¼Ç?²õ?üÇÿÛå?­.>ëg“W®E€ßúߎœâüèÿ'ýM·Bóßã¯ÿ0
-Ðÿ…ú
-Qÿ}õdÓ ýF÷¤óøŸ¤8ÿÁ‚
-CÌrñ×ÿðÒ}ô™ÜúfúOÆý"ôρJ ~ÉÜ­ÿÏpê_-â€þÿ<دºÿAErçúÕ3üõ%!ü,¼ë¿,Kè_"«õ_tºÉëfø°Íó‡¸õ?Ïÿ©(ÂúŸ…4*Ãc¦ch_&ëõ?] Hz†•¸gýW%1ê¿xŽÿtd¸ëùßëü£þÏmüûêo» Ýù¿d^ÿÿyHTøB¿\hú?™WsZý·þ—õÿûpû¯lhú/šÓÙ¦¹½8w,Üú_Ôÿ¢ õÒ€dhúÿæžäßên˜ZÁ~ðÿøŸªþ?àÿ•
-Mÿ_ô[Ÿ7e®ûñoWöò jø¸4!þgüÿ,¨€dˆù¿Ý]{ ägݺžáÔÿÒÿFØÿ³`¿~øär·þW ðÿqaÿÏü¿²¡éxk·¬ÿ©yý7côÿbáϺ*+sÄ$ šþëËùÉt6`û ¹žáŽÿñbýü‰BP2ýþ¯þ/h㿵ÿk>ÿ‡a„þï,¤1ì_’¡éŸÁÿÿ'¨ÿʆ¦ÿÝý_a†úðɆ¦ÿÖÿ, þˆ¦ÿ­ý_sý'Y€úÈþʆ˜ÿÛßÿ…ý?öë‡ÿK.wë'ÿú?ñ ÿ—lhúߨÿõƒþ1öÿ,ü¦@.4ý3ø¿ àÿ’
-Eÿ‡ÿ+…ÿ‹ÚøoíÿšçBœÿc"Qê ˜\húßßÿ•¡þÃîþ‘
-Mÿý¿°ÿcþ/ÙõoȏU¯ŸN&wéÔ©µ¨ÿ„â?Á×Û `MÿþOø?X€ÿS64ý3ôÿÃùâ& Éóÿ»û?Ñÿ‡ûõ[ÿg„ûÿDr·þ7ñ.ôÃÿ̓
-UÝ‹…¦†þèÿÉúÿÉf‹ü¿r<ƒ”ÿ‡þY@þ_64ýoíÿžŸÿˆÃ,…þ9PY€@CÑ¿âðãþohãÏÐÿ÷?±€þŸ²¡éŸ¡ÿ'Ö,Àÿ!šþüߨÿ² ÿ·lhúgðbýÏâ¿lhúgèÿ‰úèþ!bþoÿþŸØÿ³`¿~ôÿ”ËÝúßëþgìÿY@ÿOÙÐô¿µÿsYÿ‹±ÿgá÷ººKa³7˜BÓ?CÿOèŸôÿ”Íjý7µÍõ“žáŸÿ"…õ?ÈÿËf}üo/egþò´~NX…ûù?ƒ$Aÿ_¼Ç¿3'=\s?Î…ß;þùŸHÅèÿÁò?²ñÖÿøZÕe“—.·¬x†;ÿ3Ÿÿã Dý—•M#€I@(Þúï=nŸsýª«Ótü×~|1uQ™Ný'sý§I€þ,¼ëÿAEï¯êýõ:2‡ë懟²þŸ›WÓÕM·âîø¿ÈÿèÿÃCkº²éκ.4.
-âÿm&ø0àÔšÍã?ú3Q4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ë×ý”¡ÿØÿËÆ[ÿOUÓç§ê\­Wƒ¿þÇ îÿaú—
-9þŸõ×]ã?ôÏô/rýoètÝO§¾sk¨‹{ÎÎûÿ¥
-ûpìK6dýïÿã@!ÿÏâ¿lèú¯êÍôÌóÿðÿpq€üEã¿ÿôÐû¹À'…ûõÿÍúÿ²@ÿ¡:›|Œ ö'ç¡ çü¿¨ÿÆ1úòpó%YÂäÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹UŠõ²lèõŸ=÷ðpýŸlÈú?vÕ«Yãþ¦ø¿£xÜ@ÿLþκùòøÁKÄ[ÿº,Máw Üÿç¿Ãõpþ[6äøoµÆW<Ãÿýÿ¿\êþÒ¶M7Né¿b*Ç:ýG)¥ïύi‡¿ºþ“þ'P™²õ_ÔögõøMÛœšç7Â/‚÷ø‡A–%üÇÿÛÝ?­.>ëg“W®5€{ýÎÆ?Nôÿd!B̍¿þ‹¦[¡ùïñ׿m ýs€Ô¿lˆúï«'›è×\ÿ±Bÿé<þ'êÿ,Décœa‹¿þ‡—Îè£ÏàÖ4Ó¢Ðÿ‡(…ø%s·þW<鵈ÿAÿöðÝo〩@w®ÿW=Ã_ÿQÁÿÃBY–п`Vë¿ètÿ’×ÍðQ—çqë¾þWQŒøÏ‚
-£2T™Ž!~‘¬×ÿtÿéVâžõ_•âü'žã?Ýÿzþøÿøêÿ,ÐÆ¿¯þÞòþßôJ¯÷ÿ"ÿÇB¢Â?ùåBÓÿɼšÓêg¸õ¿¬ÿgØÿ³€ÛeCÓѼ˜Îö|Ìí¥À¹c9àÖÿ¢þ)ÔÿYHcL ’¡éÿ›x’«»aêûÁ3üãðÿ±€û¿eCÓÿýÖçM™ë~üÛ•½<¨îéÿ¼ˆÿ™‚ÿŸÿhˆù¿Ý][ ägݺžáÔÿÒÿÆØÿ³ ÿlîÖÿŠ þñ?ŽcìÿY€ÿW64ýoí–õ?5¯ÿ†a‚û_Xø³®ÊÊ1	…¦ÿúr~2Í Ø6@®g¸ã<ÿò<$
-@ÉPôpø¿"ø¿8 ÿÖþ¯ùü†1ú¿±Æ°I†¦ÿüŸ, þ+šþ÷÷¨ÿ° ÿ—lhúgðaýÏâ¿lhúßÚÿ5×’)ÔX@öW6Äüßþþ/ìÿY€ÿK6wë'ÿú?ñ ÿ—lhúߨÿõƒþ	öÿ,ü¦@.4ý3ø¿ àÿ’
-Eÿ‡ÿ+…ÿ‹ÚøoíÿšçBœÿc"Qê ˜\húßÝÿ¨ÿ°€ûÿdCÓ?Cÿ/ìÿX€ÿK6DýÛòcÕë§“É]:uêÑÿ? Ð?Á×Û `MÿþOø?X€ÿS64ý3ôÿÃùâ& Éóÿ»û?Ñÿ‡‡ Âý’¹[ÿ›ø?úáÿæ!JcìäBÓ?Cÿ?ôÿdýÿd³Eþ_9žáÖÿòÿÐ?Èÿˆ¦ÿ­ýßóóqàþoTà˜`(úWþoÜÿÍmüúâþ'ÐÿS64ý3ôÿÄúä~eCÓ?ƒÿõ_àÿ–
-MÿþO¬ÿY@ü—
-Mÿý?QÿaÝ?dCÌÿíßÿûÐÿS6wë¯ûŸ±ÿgý?eCÓÿÖþÏeý/ÁþŸ…ßë~è.…ÍÞ`"Mÿý?¡ÐÿS6«õßÔ6×Oz†þ/ˆB¬ÿY@þ_6ëã{);ó—§õsÂ*ÜÏÿ$)úÿ²à=þ9éášûq.üÞñÏÿD*Aÿÿ‘·þÇת.›¼¸t¹ý`Å3ÜùŸùüê¿,¨lLBñÖ_èq#øœëW]¦ã¿öã‹©‹Ê|° pê?™ë?Mú°ð®ÿ½¿ª÷×ëÈ<®/˜~RÈún^MW7ÝŠg¸ãÿ"ÿ ÿ­éʦ;ëº0и@6ˆÿ·™àÃt€Sÿi¶ðÃÿÁCÑÔ½é^­…×<4õÑŒSÁñá2~Ö·º0móe|«Ç?ün¦Àrু¬ÿ÷ÿèÿÁöÿ²ñÖÿSÕôù©:WëÕà¯ÿ0pÿпlÈñÿ¬¿îÿ¡ ِëC§ë~:õ[C@]ÜsþsÞÿ/UØÿóp€øECÖÿÎñ?DþŸÄÙÐõ_Õ›é?˜çÿáÿáâ ù‹Æÿ?è¡÷sO
-÷ëÿ›…èÿËqü‡êlò1ØŸœ‡‚œóÿ¢þÇèÿÉÃÍÿ•ŒŠñ§›,øts‚ï‚Û»ÃíÍ¿ýÏAÕ3èÓ5ä~†{ý7?ÿ«ë? eÙÐë?ûîÿàÿàû?ِõìªW³ÆýMñGq–AÿLþκùòøÁKÄ[ÿº,Máw Üÿç¿Ãõpþ[6äøoµÆW<Ãÿýƒþ/~¹Ôý¥m›nœÒÅT Žú·rójjߺύi‡¿¶þ£Ûÿ'ÎPÿaÁsü;cO‹™|ülü£•ÏðÊÿNã¡ÿ3HýÈÆSÿö¨oÑœ}NÿPô&ú¿²€þ²Y¹ÿh+¿+^ë¿`œ'T¦ìýOXÿíÏêñš¶95Ïo„_ïñƒ,M0þøÿ·»[]|ÖÏ&¯\9 ¯ø?œâþwÐý]6þú/šn…æ¿Ç_ÿa ÿ/Øÿˆ¨ÿ¾z²U ~Íõo+ôŸÎã’ÂÿÉB?F	æ ±øëxéŒ>úÌ nýG3ý'ü<DX ˆæný¯x†SÿjÿÜÿ̃ýúÿ¿¦qܹþ_õýGIÿ7ã·_þ·,¡¡¬ÖÑéþ%¯›á£[>>Æ­ÿyþOEÖÿ,˜8
-U¦ch_&ëõ?ÝÿLz†•¸gýwºÿõßýñÿéþïÐó×ÀüU£þÏmüûêo« ñÿý?§ú_ˆøÏC¢Â?úåBÓÿɼšÓêg¸õ¿¬ÿ§Øÿ³ ÿlhú/šÓÙžßù©ªm6ðÿ»pëQÿ‹ÔÿYHcL ’¡éÿ›x’«»aº	àƒgøÇÿTeðÿ±€ó?²¡éÿ‹~ëó¦Ìu?þíÊ^Y
-÷Üÿ±ˆÿY ÿ?
-ý_DCÌÿ½èîÚ*?ëÖõ§þ—þŸ0ÂþŸûõÃÿ#—»õ¿â €ücÜÿÁü¿²¡éxk·¬ÿ©yý7Ñÿ‡‡?몬Ì“€Phú¯/ç'ÓÙ€méz†;þÇ‹õ?ò<$
-@ÉPôïÛÈ*ÜÛÿÁÿÅmü·öÍçÿ0ŒÐÿ—…4†ýK24ý3ø¿àÿdõ_ÙÐô¿»ÿ+Äý?<Àÿ%šþü_Xÿ³€ø/šþ·öÍõŸdê?, û+bþoÿöÿ,دþ/¹Ü­ÿü_èÿÄü_²¡écÿ×ú?ÄØÿ³ð›4f ¹ÐôÏàÿ‚þY€ÿK6ýGþ¯þ/h㿵ÿkžÿ	qþ‰D©`r¡éÿW†ú´/šþúaÿÇü_²!êßþ«^?LîÒ©SÿjQÿ	#Ä‚¯·AÀ< šþüŸð° ÿ§lhúgèÿ‡óÿ,ÄL ’!æÿw÷¢ÿ½ÿ¯À@*wëÿçBÿ1üß<DÁc”@÷b¡éŸ¡ÿú²€þ²Ù"ÿ¯ÏpëÿùèŸäÿeCÓÿÖþïùù8ÌR蟕¸D0ý+ÿ7îÿf6þý?qÿèÿ)šþúbýÇü²¡éŸÁÿú/ðˆ¦ÿ'Öÿ, þˆ¦†þŸ¨ÿ°€î²!æÿöïÿ‰ý?öëGÿO¹Ü­ÿ½îÆþŸôÿ”
-Mÿ[û?—õ¿û~¯û¡»6{ƒ‰@ 4ý3ôÿ„þY@ÿOÙ¬ÖSÛ\?éþù¿ RXÿ³€ü¿lÖÇÿöRvæ/Oëç„U¸Ÿÿ3HôÿeÁ{ü;sÒÃ5÷ã\ø½ãŸÿ‰TŒþ, ÿ#oý¯U]6yqérûÁŠg¸ó?óù?BÔYPÙ4˜„â­ÿ¾ÐãFð9ׯº:MÇíÇS•ù`AàÔ2ךèÿÁ»þTôþªÞ_¯#óp¸¾`~øI!ëÿ¹y5]Ýt+žáŽÿ‹üo€þ?<´¦+›î¬ëÂ@ãÙ þßf‚ÓNý§Ù<þ£ÿ7ES÷¦{µ^óÐÔG3NÇ‡ËøYßêÂ<´Í—ñ­ÿð»™ˁŸ²þwÝÿGúð€ý¿l¼õÿT5}~ªÎÕz5øë\ àþ ِãÿYÝ5þCÿ,@ÿ²!×ÿ†N×ýtê;·†€º¸çüç¼ÿ_ª°ÿçá ñ‹†¬ÿ]ã(äÿY@ü—
-]ÿU½™þƒyþþ.¿hü÷ÿƒz?ø¤p¿þ¿™Bÿ_ˆã?Tg“Àþä<äœÿõß8FÿOnþ¯$c•DŸn>°àÓÍ	6¾nï·7ÿö?lUÿÍ Oאûîõßüü_¬R¬ÿX€”eC¯ÿì¹ÿƒÿƒìÿdCÖÿ±«^Í÷7ÅÿÅã– úg`òwÖÍ
 —Çϸ^"Þú×ei
-¿àîø¿8ÿ¦¨ÿ°€óß²!ÇÛø«5æ¸âîø¿èÿ(ø¿XøåR÷—¶mºqJÿS8Öé_¥”¾?7¦þêúúO 2eõúÏþ¬ÿ¡i›SóüFøEðÿ0ÈRôbÁü¿ÝýÓêâ³~6yåZ¸×ÿálüãýŸx@ÿ?Ùøë¿hºšÿý‡ú¿ð€ëÿdCÔ_=Ù,@¿æúúOçñ?I±ÿgA…a„9@,þú^:£>3€[ÿÑLÿI€ú?*…ø%s·þW<鵈ÿAŒú?öëÿ¯ûS8î\ÿ¯z†¿þ£ç¿yx×Y–пDVë¿ètÿ’×ÍðQ—çqëžÿSîÿå!ÊHe:†öe²^ÿÓý¤gX‰{ÖÕø?Gý—ÏñŸî=
-üÇ_E1êÿ,ÐÆ¿¯þÞòþßôšê!â?‰
-ÿ@è—Mÿ'ójN«ŸáÖÿ²þŸaÿÏnÿ•
-MÿEób:Ûó1·—çŽå€[ÿ‹ú_ þÏB
-hhúÿæžäßên˜:Á~ðÿøŸªþ?àÿ•
-Mÿ_ô[Ÿ7e®ûñoWöò j¸§ÿó"þgüÿ,Àÿ#bþïEw× ùY·®g8õ¿ôÿ„1öÿ,دþ¹Ü­ÿ üãGØÿ³€ø/šþ‡·vËúŸš×Ã0FÿOþ¬«²2GLB¡é¿¾œŸLg3 ¶
-ëîø/ÖÿÈÿñ(T %CÑÀáÿÂý,ÐÆkÿ×|þÃ(ÂüÏAÃþ%šþ÷÷áþPÿ•
-Mÿþ/ÔX€ÿK64ý3ø¿°þgñ_64ýoíÿšë?ÉÔX@öW6Äüßîþ/œÿäÁ~ýðÉånýïåÿÂþŸø¿dCÓÿÆþ¯ôˆ±ÿgá7=hÌ r¡éŸÁÿý³ ÿ—l(ú8ü_ü_ÐÆkÿ×<ÿâü‰R8ÀäBÓ?Cÿ/ÔXÀÝ?²¡éŸÁÿ…ýðɆ¨ûC~¬zýt2¹K§Ný«Eý'ŒÿY¾Þó€DhúgðÂÿÁüŸ²¡éŸ¡ÿÎÿ³0H†˜ÿß¿ÿÖÿ,دßú?#Üÿ'’»õ¿‰ÿs¡ÿþoTø¨2è^,4ý3ôÿCÿOÐÿO6[äÿ•ã¤ü?ôÏòÿ²¡ékÿ÷üüGfôρÊœ EÿŠÃÿû¿Y ?CÿOÜÿÄúʆ¦†þŸXÿ± ÿ‡lhúgð£þËüß²¡éŸÁÿ‰õ?ˆÿ²¡éŸ¡ÿ'ê?, û‡lˆù¿ýûbÿÏ‚ýúÑÿS.wë¯þŸØÿ³€þŸ²¡ékÿç²þcÿÏÂïu?t—Âfo0„¦†þŸÐ?èÿ)›Õúoj›ë'=Ã?ÿD
-ëÿ—Íúøß^ÊÎüåiýœ°
-÷óI‚þ¿,xgNz¸æ~œ¿wüó?‘ŠÑÿƒädã­ÿñµªË&/.]n?Xñwþg>ÿÇAˆú/*›F “€P¼õßzÜ>çúUW§éø¯ýøbê¢2,œúOæúO“ ý?Xx×ÿƒŠÞ_Õûëud×Ì?)dý?7¯¦«›nÅ3Üñ‘ÿ
-Ðÿ‡‡Öteӝu]h\ ÄÿÛLða:À©ÿ4›Çôÿf¢hêÞt¯ÖÂkšúhÆ©àøp?ë[]˜‡¶ù2¾Õã~7S`9ðÓ@Öÿ®ûÿ(Cÿ°ÿ—·þŸª¦ÏOÕ¹Z¯ýÛ ôÏô/rü?믻ÆèŸè_6äúßÐ麟N}çÖP÷œÿœ÷ÿKöÿ< ~ѐõ¿küí‘PèŸÄÙÐõ_Õ›é?˜çÿáÿáâ ù‹Æÿ?è¡÷sO
-÷ëÿ›)ôÿe8þCu6ùìOÎCAÎùQÿcôÿäáæÿJ²0:ÄÙ§›,øts‚ï‚Û»ÃíÍ¿ýÏAÕ3èÓ5ä~†{ý7?ÿ«ë? eÙÐë?{îÿàÿàû?ِõìªW³ÆýMñGq@ÿLþκùòøÁKÄ[ÿº,Máw Üÿç¿Ãõpþ[6äøoµÆW<Ãÿýí•°Ð?¿\êþÒ¶M7Né¿b*Ç:ýÇ¥ïύi‡¿ºþ“ý'P™
-Ô8X=þCÓ6§æùð‹à=þaÙþÿýñÿowÿ´ºø¬ŸM^¹Ö îõ8ÿ8Mÿg!B̍¿þ‹¦[¡ùïñ×aýÏúʆ¨ÿ¾z²Y€~Íõ+ôŸÎã‚ü?Qúg˜Äâ¯ÿá¥3úè3¸õÍôŸ¨ ýÿYˆ±ÍÝú_ñ§þÕ"þ	ú?³®÷ÿM`*ǝëÿUÏð×” ÿ#eYBÿ‚Y­ÿ¢ÓýK^7ÃG]ž?Æ­ÿùú_E¸ÿÇi˜d:†øE²^ÿÓý¤gX‰{ÖU¡þˁçøO÷?†ž¿þãoÀøs@ÿ¾ú{ËûÿÑÿ)Ãý¿Œ$*ü‘_.4ýŸÌ«9­~†[ÿËú†ý?¸ýW64ýÍ‹élÏÇÜ^
-œ;–ný/ê‘BýŸ…4Æ šþ¿y€'ù·º¦N°<Ã?þ§a ÿðÿɆ¦ÿ/ú­Ï›2×ýø·+{yP5ÜÓÿyÿ3ÿ?8ÿ+bþïEw× ùY·®g8õ¿ôÿ„1öÿ,Àÿ#›»õ¿â €üãûàÿ•
-MÿÃ[»eýOÍë¿a£ÿÖUY™#&¡Ðô__ÎO¦³ ÛÈõwüçñ?Bþ‡D¡(ŠþÿWÿ´ñßÚÿ5ŸÿÇõîÿc!aÿ’Mÿþ/ø?Y@ýW64ýïïÿ
-Pÿaþ/ÙÐôÏàÿÂúŸÄÙÐô¿µÿk®ÿ$PÿaÙ_Ùóûû¿°ÿgþ/ÙÜ­ÿü_èÿÄü_²¡écÿ×ú?$Øÿ³ð›4f ¹ÐôÏàÿ‚þY€ÿK6ýû^gîíÿJàÿâ€6þ[û¿æùŸçÿ˜H”:À&šþü_¨ÿ°€ôlhúgèÿ…ýðɆ¨ûC~¬zýt2¹K§Ný/úÿÇã úç øzÌ¡éŸÁÿ	ÿðʆ¦†þ8ÿÏB|À bþÿ'Öÿ,”üŸ’¹[ÿ›ø?úáÿæ!ãºMÿû÷ÿKÐÿ“ôÿ“Íùåx†[ÿËü?úÿò€ü¿lhúßÚÿ=?ÿGîÿfAen EÿŠÃÿû¿Y ?CÿOÜÿÄúʆ¦ÿ7Ö,Àÿ!šþú¢þËüß²¡éŸÁÿ‰õ?ˆÿ²¡éÿþŸ
-õÐýC6ÄüßþþOìÿY@ÿOÙÜ­ÿ½úbÿÏúʆ¦ÿ­ýŸËú_‚ý?¿×ýÐ]
-›½ÁD šþúBÿ, ÿ§lVë¿©m®Ÿôÿü_)¬ÿY@þ_6ëã{);ó—§õsÂ*ÜÏÿ$)úÿ²à=þ9éášûq.üÞñÏÿD*Aÿÿ‘·þÇת.›¼¸t¹ý`Å3ÜùŸùüê¿,¨lLBñÖ_èq#øœëW]¦ã¿öã‹©‹Ê|° pê?™ë?Mú°ð®ÿ½¿ª÷×ëÈ<®/˜~RÈún^MW7ÝŠg¸ãÿ"ÿ ÿ­éʦ;ëº0и@6ˆÿ·™àÃt€Sÿi¶ðÃÿÁCÑÔ½é^­…×<4õÑŒSÁñá2~Ö·º0móe|«Ç?ün¦Àrু¬ÿ÷ÿèÿÁöÿ²ñÖÿSÕôù©:WëÕà¯ÿ0pÿпlÈñÿ¬¿îÿ¡ ِëC§ë~:õ[C@]ÜsþsÞÿ/UØÿóp€øECÖÿÎñ?DþŸÄÙÐõ_Õ›é?˜çÿáÿáâ ù‹Æÿ?è¡÷sO
-÷ëÿ›…èÿËqü‡êlò1ØŸœ‡‚œóÿ¢þÇèÿÉÃÍÿ•d¶éBúéæ>Ýœ`ã»àöîp{óoÿ³ÁFPõßút͹Ÿá^ÿÍÏÿÅã¯%ôϤ,zýgßýü<`ÿ'²þ]õjÖ¸¿)þï(ÎR蟃ÉßY7_?ã"x‰xë_—¥)ü€»ãÿâüw˜¡þÃΈÿmã¯Ö˜ãŠg¸ãÿ¢ÿoÂÿÅÂ/—º¿´mӍSú¯˜
-ıNÿaFéûscÚᯮÿŒó„Ê”íÿ…úÏþ¬ÿ¡i›SóüFøEðÿ0È2ÔÿXðÿowÿ´ºø¬ŸM^¹Ö îõ8ÿ8MÿY@÷OÙøë¿hºšÿý‡‘Bÿ_°ý—
-Qÿ}õd³ ýšë?Vè?Çÿ$ÅùÂø1J0ˆÅ_ÿÃKgôÑgpë?šé?Qú¿²f¿dîÖÿŠg8õ¯ñ?HPÿcÁ~ýÿ
-®. Ø€äqçúÕ3üõ%ü,Œß~ùß²„þ…²ZÿE§û—¼n†º<Œ[ÿóüŸŠb¬ÿY(¢2<f:†öe²^ÿÓý¤gX‰{ÖU¢þˁçøO÷?†ž¿þã?þ€ú?´ñï«¿·¼ÿ÷ýŸ¦ú_ˆøÏC¢Â?úåBÓÿɼšÓêg¸õ¿¬ÿãü?ðÿȆ¦ÿ¢y1íù˜ÛKsÇrÀ­ÿEý/
-Pÿg!1H†¦ÿoàIþ­î†©ìÏðÿiÀÿÇîÿ–
-Mÿ_ô[Ÿ7e®ûñoWöò j¸§ÿó"þg
-þTŠ	@2Äüß‹î®- ò³n]Ïpêéÿ	cìÿY°_?ü?r¹[ÿ+ øÇÿ8Æý<Àÿ+šþ‡·vËúŸš×Ã0Fÿ/þ¬«²2GLB¡é¿¾œŸLg3 ¶
-ëîøÏã„ü‰BP2ýþ/ÿ´ñßÚÿ5ŸÿÇõú¿³Æ°I†¦ÿüŸ, þ+šþü_¨ÿ° ÿ—lhúgðaýÏâ¿lhúßÚÿ5×’¨ÿ°€ì¯lˆù¿ýý_Øÿ³`¿~ø¿är·þ÷òaÿÏü_²¡écÿ×ú?$Øÿ³ð›4f ¹ÐôÏàÿ‚þY€ÿK6ýGþ¯þ/h㿵ÿkžÿ	qþ‰D©`r¡éŸÁÿ…ú¸ÿK64ýïïÿRØÿ± ÿ—lˆú·?äǪ×O'“»têÔ¿ZÔÂñŸ…àëm0H„¦ÿ'ü,Àÿ)šþúÿáü?ñ€dˆùÿýýŸXÿ³`¿þÿF¸ÿO*wëÿçBÿ1üß<„ñcø?è^,4ý3ôÿCÿOÐÿO6[äÿ•ãnýÿ ÿý³€ü¿lhúßÚÿ=?ÿGãôÏ€ÊÜ "Šþ‡ÿ÷³@†þŸ¸ÿ‰ôÿ”
-Mÿþo¬ÿX€ÿC64ý3ôÿDý—ø¿eCÓ?ƒÿëÿeCÓ?CÿOÔX@÷Ùóûû?±ÿgÁ~ýèÿ)—»õ¿WÿOìÿY@ÿOÙÐô¿µÿsYÿK°ÿgá÷ººKa³7˜BÓ?CÿOèŸôÿ”Íjý7µÍõ“žáŸÿ"…õ?ÈÿËf}üo/egþò´~NX…ûù?ƒ$Eÿ_¼Ç¿3'=\s?Î…ß;þùŸH%èÿÁò?²ñÖÿøZÕe“—.·¬x†;ÿ3Ÿÿã Dý—•M#€I@(Þúï=nŸsýª«Ótü×~|1uQ™Ný'sý§‰BÿÞõÿ ¢÷Wõþz™‡keøóÃO
-YÿÏÍ«éê¦[ñwü_äôÿá¡5]Ùtg]Èñÿ6|˜pê?Íþoø?x(šº7Ý«µðš‡¦>šq*8>\ÆÏúVæ¡m¾Œoõø‡ßÍXü4õ¿óþý?xÀþ_6Þúªš>?Uçj½üõ¦îÿaú—
-9þŸõ×]ã?ôÏô/rýoètÝO§¾sk¨‹{ÎÎûÿ¥
-û¿hÈúß9þ‡Èÿ³€ø/ºþ«z3ýóü?ü?\ Ñøïÿ=ô~.ðIá~ý³ýY ŽÿPM>F û“óPsþ_Ôãý?y¸ù¿’lº‡ìÓÍ|º9ÁÆwÁíÝáöæßþgƒ ê¿ôéšr?ýþ›Ÿÿ‹UŠõ²lèõŸ}÷ðð€ýŸlÈú?vÕ«Yãþ¦ø¿£8K &gÝ|yüŒ‹à%â­]–¦ð; îŽÿ‹óßa†ú8ÿ-rü·¿ZcŽ+žáŽÿ‹þ¿Aÿ¿\êþÒ¶M7Né¿b*Ç:ý+ß+ÿÁ´Ã_]ÿ?W™
-Ðÿ‡…Õã?4msjžß¿ÞãY`ü9ðÿowÿ´ºø¬ŸM^¹Ö îõ8ÿ8…ÿ“¤þdã¯ÿ¢éVhþ{üõ†ê,$пhˆúï«'›è×\ÿáyþcŠÿI‚üÁ£B`ÁøëxéŒ>úÌ nýG3ý'A†üP¿lîÖÿŠg8õÿüpíÿ†û?X°_ÿ§A8À$;×ÿ«žá¯ÿ(	Ñÿ…ÿÓY–п8Vë¿ètÿ’×ÍðQ—çqëžÿSú?ñ`K-I¦cÄ~™¬×ÿtÿéVâžõ_g¨ÿrà9þÓý¡ç¯ÿø«(FýŸÚø÷Õß[Þÿ»Èÿ‡!â?‰
-ÿ@è—Mÿ'ójN«ŸáÖÿ¢þ¥Øÿ³€ÛeCÓѼ˜Îö|Ìí¥À¹c9àÖÿ¢þ¢ÿiŒ	@24ýó Oòou7L`?x†üOÑÿƒ	”ÿeCÓÿýÖçM™ë~üÛ•½<¨îéÿ¼ˆÿiÿ?*Å bþïEw× ùY·®g8õ¿ôÿ„öÿ,دþ¹Ü­ÿ üã‡Øÿ³ ÿ¯lhúÞÚ-ëj^ÿ
-ÃçXø³®ÊÊ1	…¦ÿúr~2Í Ø6@®g¸ã¼Xÿ#ÿÇC¢P”EÿƒÿËöÿ€ÿkh㿵ÿk>ÿ ÿ+iû—dhúgðÁÿÉÒ?²¡éŸÁÿ…úðɆ¦ÿÖÿ, þˆ¦ÿ­ý_sý')îàÙ_Ùóûû¿°ÿgÁ~ýðÉånýïåÿÂþŸø¿dCÓÿÆþ¯õÀþŸ…ßô 1È…¦ÿôÏü_²¡è?âèÿ¥àÿâ€6þ[û¿æùŸçÿ˜H”:À&šþü_¨ÿ°Aû¢¡éŸÁÿ…ýðɆ¨ûC~¬zýt2¹K§Ný«Eýg\@ÿ_oƒ€y@"4ýïïÿÄý< ü+šþúÿáü?ñ€dˆùÿýýŸXÿ³`¿þ÷ûÿ
-läq·þ7ñÎý_q"þ³>Â*šþúÿ¡ÿ'èÿ'›-òÿÊñRþúgùÙÐô¿µÿ{±þ3ýs ² 7€†¢ÅÑÿ÷³@†þŸ¸ÿ‰ôÿ”
-Mÿþo¬ÿX@òW64ý3ø¿QÿeþoÙÐôÏÐÿëÿeCÓ?CÿOÔX@÷Ùóûû?±ÿgÁ~ýèÿ)—»õ¿WÿOìÿY€ûS64ýoíÿ\Öÿ"ìÿYø½î‡îRØì
-&ÐôÏÐÿúgý?e³ZÿMmsý¤gøçÿ‚(ÀúŸ,ÿe³>þ·—²3yZ?'¬ÂýüŸA’ ÿ/Þãß™“®¹çÂïÿüO¤"œÿeùÙxë|­ê²É‹K—ÛV<Ýÿ™Ïÿ±M	Aÿ¨lLBñÖ_èq#øœëW]¦ã¿öã‹©‹Ê|° pê?™ë?µ/Ð?ïúPÑû«z½ŽÌÃáú‚ùá'…¬ÿçæÕtuÓ­x†;þ/ò¿îå¡5]Ùtg]Èñÿ6|˜pê?Íæñý¿™(šº7Ý«µðš‡¦>šq*8>\ÆÏúVæ¡m¾Œoõø‡ßÍXü4õ¿ëþ?ÊÐÿƒìÿeã­ÿ§ªéóSu®Ö«Á_ÿaªpÿпlÈñÿ¬¿îÿqÿ3пlÈõ¿¡Óu?úέ! .î9ÿ9ïÿ—*ìÿy8@ü¢!ë×øۏ ÿeC×Uo¦ÿ`žÿ‡ÿ‡‹ä/ÿýÿ ‡ÞÏ>)ܯÿo ÿ/Äñª³ÉÇ`r
-rÎÿ‹úo£ÿ'7ÿW’…Q«O7Xðéæß·w‡Û›ûŸ
-6‚ªÿfЧkÈý÷úo~þ/V	Ö,@ʲ¡×öÜÿÁÿÁö²!ëÿØU¯fû›âÿŽâ4„þ9˜üuóåñ3.‚—ˆ·þuYšÂï ¸;þ/·)ê?,àü·lÈñß6þj9®x†;þ/úÿZKôÏÀ/—º¿´mӍSú¯˜
-ıNÿaBéûscÚᯮÿDÿ	T¦lýõŸýY=þCÓ6§æùð‹à=þaeÆŸÿñÿv÷O«‹ÏúÙä•k
-à^ÿ‡³ñÓý?Y@÷OÙøë¿hºšÿý‡Q€þo,`û/¢þûêÉfú5׬Ð:ÿIŠú?aü%˜Äâ¯ÿá¥3úè3¸õÍôŸ(ôã!„øEs·þW<鵈ÿAÿöëÿo^ÇS8î\ÿ¯z†¿þ£$‚ÿ‡…ñÛ/ÿ[–пPVë¿ètÿ’×ÍðQ—çqëžÿSQŒõ?ET†I¦ch_&ëõ?ÝÿGz†•¸gýW%8ÿÉ‚çøO÷?†ž¿þã?þ€ú?´ñï«¿·¼ÿ÷ýŸ¦ú_ˆøÏC¢Â?úåBÓÿɼšÓêg¸õ¿¬ÿgØÿ³ ÿlhú/šÓÙž¹½8w,Üú_Ôÿ¢ õÒ€dhúÿæžäßên˜:Á~ðÿøŸªþ?àÿ“
-Mÿ_ô[Ÿ7e®ûñoWöò j¸§ÿó"þgüÿ,¨€dˆù¿Ý][ ägݺžáÔÿÒÿ3þôρýúáÿ‘ËÝú_q À?þÇq„ý?ðÿʆ¦ÿá­Ý²þ§æõß0ŒqÿÖUY™#&¡Ðô__ÎO¦³ ÛÈõwüëäÿxH*€’¡è?`ðÙþðímü·öÍçÿ0ŒÐÿ…4†ýK24ý3ø¿àÿdõ_ÙÐôÏàÿBý‡ø¿dCÓ?ƒÿëÿeCÓÿÖþ¯¹þ“,@ý‡deCÌÿíïÿÂþŸûõÃÿ%—»õ¿—ÿûàÿ’
-Mÿû¿~Ôÿû~ÓƒÆ šþü_Ð?ðɆ¢ÿˆ£ÿ—‚ÿ‹ÚøoíÿšçBœÿc"Qê ˜\húgð¡þÃB틆¦ÿö,Àÿ%¢þíù±êõÓÉä.:õ¯õŸ0Büg!øzÌ¡éwÿgˆûÿx€ÿS64ý3ôÿÃùâ& Éóÿûû?±þgÁ~ýÿpÿŸTîÖÿ&þÏ…þcø¿yãÇðнXhúgèÿ‡þŸ, ÿŸl¶Èÿ+Ç3ÜúÿAþúgùÙÐô¿µÿ{~þ#Žýs ² 7€†¢ÅÑÿ÷³@†þŸ¸ÿ‰ôÿ”
-Mÿþo¬ÿX€ÿC64ý3ø¿QÿeþoÙÐôÏÐÿëÿeCÓ?CÿOÔX@÷Ùóûû?±ÿgÁ~ýèÿ)—»õ¿WÿOìÿY@ÿOÙÐô¿µÿsYÿ‹±ÿgá÷ººKa³7˜
 BÓ?CÿOèŸôÿ”Íjý7µÍõ“žáŸÿ"…õ?ÈÿËf}üo/egþò´~NX…ûù?ƒ$Eÿ_¼Ç¿3'=\s?Î…ß;þùŸHÅèÿÁò?²ñÖÿøZÕe“—.·¬x†;ÿ3Ÿÿãñ?Ð?*›F “€P¼õßzÜ>çúUW§éø¯ýøbê¢2,œúOæúO…þ,¼ëÿAEï¯êýõ:2‡ë懟²þŸ›WÓÕM·âîø¿ÈÿèÿÃCkº²éκ.4.
-âÿm&ø0àÔš-úÿÂÿÁCÑÔ½é^­…×<4õÑŒSÁñá2~Ö·º0móe|«Ç?ün¦Àrু¬ÿ÷ÿèÿÁöÿ²ñÖÿSÕôù©:WëÕà¯ÿq€ûX€þeCŽÿgýu¿øe¸ÿ™è_6äúßÐ麟N}çÖP÷œÿœ÷ÿKöÿ< ~ѐõ¿küƒùÿeC×Uo¦ÿ`žÿ‡ÿ‡‹ä/ÿýÿ ‡ÞÏ>)ܯÿo¦Ðÿ—âøÕÙäc°?99çÿEý7ŽÑÿ“‡›ÿ+ɬé&útóŸnN°ñ]p{w¸½ù·ÿÙ`#¨úo}ºæ€ÜÏp¯ÿæçÿb•býǤ,zýgßýü<`ÿ'²þ]õjÖ¸¿)þï(ÎB蟃ÉßY7_?ã"x‰xë_—¥)ü€»ãÿâüw˜¡þÃΈÿmã¯Ö˜ãŠg¸ãÿ¢ÿo àÿbá—KÝ_Ú¶éÆ)ýWLâX§ÿˆÒöçÓeý'ÎÒÿ*bôÿaaíøMÛœšç·½û?M㙝ÿ1þûã=þß®þiuñY?›¼r.Üëÿp6þq’ÁÿÉR²ñÖÑtk4ÿ=þúÃõ?"è_44ý÷Õ“Môknÿð;ÿq‹ÿèÿÄCð¨ÐX0Þú^:£^3€üOàÿfñ_6÷êÍ3œúÿ.ÿÕ”áþì×ÿß÷a€@÷­ÿ×=ƒ ÿ8AÿwþOÿeYBÿâX«ÿ¢ÓýK^7ÃGMžÿ?¸õ?¯ÿ¨0EþŸ¥™ŽQÊjýO×ÿÑža%îYÿUAŒú/~ã?]ÿúþø¿
-3ÔÿY _ýís 3þ/òÿ¡Jáÿc!Qáþr!éÿd^Íiý3Üú_Ôÿ#…ý?¸ýW6$ýÍ‹élËÇÜÞ	œ»–nýGóúß8@ÿ¤1& ɐôÿÍ<É¿ÕÝ05‚ýèþñ?U¨ÿó ólHúÿ¢ßú¼)sݏ¹²wUÃÇíŸ)ñ?EÿgTŠ	@2´üß‹î® ò³nÏpêQÿUŠý?öë‡ÿG.÷êÍ ÿõ¥ðÿ³ ÿ¯lHúÞÚMëÿO¨Ðÿ‡‡?몬̳€PHú¯/ç'ÓÙ€íä|†;þÇóø"ÿÇC¢P”Aÿ‹ÿ+‚ÿ‹ÒøoîÿšÏÿ¡JÑÿ•…4†ýK2$ýsø¿àÿdõ_ِôÏàÿ
-Qÿaþ/ِôÏáÿÂúŸÄِô¿¹ÿkÑÿ)PÿaÙ_ÙÐòþ/ìÿY°_?ü_r¹Wÿ{ù¿ôcþ/ِô¿µÿëýpÿ#¿éAc
-Iÿþ/èŸø¿dCп÷epVáÞþ¯þ/H㿹ÿkžÿ	qþ‰D©`r!éŸÁÿ¢þÃò?²!韣ÿö,Àÿ%šþíù±êõÓÉäN™:õ¯æúÎÿó|½
-扐ôÏáÿ„ÿƒø?eCÒ?Gÿ?œÿg!†éK4´üÿþþOôÿáÁ~ýïþÏ÷ÿÉã^ýoãÿ\ø?"ÜÿÇCð˜@õ‚!韣ÿîÿ`ýÿd³Aþ_¹žáÖÿòÿÐ?Èÿˆ¤ÿÍýßóóqâü*pˆ`úW,þoÜÿÍiü9ú"ÿÃúʆ¤ŽþŸXÿ± ÿ‡lHúçð£þËüß²!éŸÃÿ‰õ?ˆÿ²!韣ÿ'ê?, û‡lhù?†þŸØÿ³`¿~ôÿ”˽úß­ÿ'ú¿°€þ²!ésÿç²þ—aÿÏÂïu?t—¦o0„¤ŽþŸÐ?èÿ)›µúoj›ë§=Ãý?Î ¨ÿ±€ü¿lVÇÿöRvæ/_ëç„UøzÿgfõŸüŸøŽgNz¸æ~Ü¿wüçÿ(Àþädã«ÿñµªË&/.]n?Xówþg>ÿGY‚þŸ,¨lÌBñÕ_èq#øœëW]¦ã¿öã‹©‹Ê|´ pê?™ë?#ÔYx×ÿƒŠÞ_Õûëud×Ì?)Tý?7¯¦«›nÍ3Üñžÿ2ÜÿÊCkº²éκ.4.ûãÿm&ø8àÔšÍã?ú0Q4uoºWëá5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi êïýÿØÿËÆWÿOUÓç§ê\yˆÁ_ÿa’ ÿÏô/jü?ë¯;Åÿëþ÷?ó ýˆZÿ:]÷Ó©ïÜêâ®óŸóþi€û¿x8@ü¢¡êïø#ÿÏâ¿lÈú¯êíôdý'Èÿ³p€üEã½ÿôÐ{ºÀ'…{ù¿Ujã?üßûCÿ¡:›|Œ ö'÷¡ çü¿¨ÿƱBý‡…›ÿ+ÉÂ(É‚O7ØøN}{ÜÞnoþí6Ø¢þ›AŸ®9 Ïp¯ÿ¹þ•Bþ—HY6äúÏÎû?ÜÿÂö²¡êÿØU¯f•ûÛ×ÿ=ù¿âõ&gÝ|yüŒîñÕ¿.KSx ÷[ÿOñ?§èŸœÿ–
-5þÛÆ_­1Ç5ÏpÇÿtáÿŽáÿdá—KÝ_Ú¶éÆ9ýWÌâX§ÿ8%5þygÚᯬÿ$jü\eJ¡þÃÂêñš¶95Ïo„_ïñƒ,SüÇÿÛå?­.>ëg“W®E€Ï
 úÿ:þq£þÇÖÿ²ñ×Ñt+4ÿ=þú#…ü¸þO6Dý÷Õ“MôÝÿ‘Îã‚þ/<Décœa‹¿þ‡—Îè£ÏàÖ4Óÿøÿáÿf!N!~ÉÜ­ÿÏpê_-â€þ¯<ÄÁÿÝÿ<î\ÿ¯z†¿þ£$Bý…²,¡Á¬ÖÑéþ%¯›áÃ6ÏâÖÿ|ý¯¢ñŸÇi¤2Cü"Y¯ÿé@Ò3¬Ä=ë¿ÊöAýw<Ǻ 2ÜñüïmþOPÿg6þ}õ·Ç]€Îøÿ]ÿ§÷ú_#ÿÇB¢Â?ùåBÓÿɼšÓêg¸õ¿¬ÿãþ7pû¯lhú/šÓÙ¦¹½8w,Üú_Ôÿ¢ õR€DCÓÿ7ð$ÿVwÃÔ
-öƒgøÇÿ4àÿc÷ˆ¦ÿ/ú­Ï›2×ýø·+{yP5|Ü šÿ³ þü?¢!æÿ^tw퐟uëz†SÿKÿOˆó¿<Àÿ#›»õ¿â €üãûàÿ•
-MÿÃ[»eýOÍë¿á8@ÿüYWeeŽ˜„BÓ}9?™Îf l ×3Üñ?žÇÿù?…
- d(úü_¶ÿü_ûCÿ­ý_óù?#ôf!aÿ’Mÿþ/ø?Y@ýW64ý3ø¿Pÿaþ/ÙÐô¿»ÿKeXÿ³€ø/šþ·öÍõŸdê?, û+bþoÿöÿ,Àÿ%›»õ¿—ÿûàÿ’
-Mÿû¿~Ôÿû~ÓƒÆ šþw÷…Èÿñ ÿ—l(ú8ú…ðq@ÿ­ý_óüOˆóL$Jà “Mÿþ/ÔXÀý²¡éŸÁÿ…ýðɆ¨ûC~¬zýt2¹K§Ný/úÿÇa„øÏBðõ6˜$BÓ?Cÿ?ø?X€ÿS64ýïßÿ÷ó0H†˜ÿßßÿ‰õ?eÿ§dîÖÿ&þÏ…þcø¿yˆÃÇ8ƒîÅBÓ?Cÿ?ôÿdýÿd³Eþ_9žáÖÿòÿÐ?Èÿˆ¦ÿ­ýßóóqàþoTà˜`(úWþoÜÿÍmüúâþ'ÐÿS64ý3ø¿±þcþÙÐôÏàÿFý—ø¿eCÓ?CÿO¬ÿY@ü—
-Mÿý?QÿaÝ?dCÌÿíïÿÄþŸôÿ”ÍÝúß«ÿ'öÿ, ÿ§lhúßÚÿ¹¬ÿÅØÿ³ð{ÝÝ¥°ÙL¡éŸ¡ÿ'ôÏúÊfµþ›ÚæúIÏðÏÿ‘ÂúŸäÿe³>þ·—²3yZ?'¬ÂýüŸA’¢ÿ/Þãß™“®¹çÂïÿüO¤ôÿ`ùÙxë|­ê²É‹K—ÛV<Ýÿ™Ïÿq¢þ˂ʦÀ$ oý÷…7‚Ϲ~ÕÕi:þk?¾˜º¨Ì§þ“¹þÓD¡ÿïúPÑû«z½ŽÌÃáú‚ùá'…¬ÿçæÕtuÓ­x†;þ/ò¿úÿðК®lº³®dƒø›	>L8õŸf‹þ¿ððP4uoºWká5M}4ãTp|¸ŒŸõ­.ÌCÛ|ßêñ¿›)°øi ëçý?úð€ý¿l¼õÿT5}~ªÎÕz5øë\ àþ ِãÿYÝ/þGîæú—
-¹þ7tºî§Sß¹5ÔÅ=ç?çýÿR…ý?ˆ_4dýïÿã DþŸÄÙÐõ_Õ›é?˜çÿáÿáâ ù‹Æÿ?è¡÷sO
-÷ëÿ›…èÿËqü‡êlò1ØŸœ‡‚œóÿ¢þÇèÿÉÃÍÿ•daœɧ›,øts‚ï‚Û»ÃíÍ¿ýÏAÕ3èÓ5ä~†{ý7?ÿ«ë? eÙÐë?ûîÿàÿàû?ِõìªW³ÆýMñGqAÿLþκùòøÁKÄ[ÿº,Máw Üÿç¿Ãõpþ[6äøoµÆW<ÃÿýíGÐ?¿\êþÒ¶M7Né¿b*Ç:ýGÿ£ôý¹1íð×Ö‚ô?ÊT£þÃÁêñš¶95Ïo„_ïñmÅãρÿø»û§ÕÅgýlòʵp¯ÿÃÙøÇi‚øÏB„˜/ýM·Bóßã¯ÿ0RèÿËô/¢þûêÉfú5׬Ð:ÿI†ó,Décœa‹¿þ‡—Îè£ÏàÖ4Ó¢ú¿²ýâ—ÌÝú_ñ§þÕ"þ)ê,Á÷ÿ	æÎõÿªgøë|ÿeYBÿ‚Y­ÿ¢ÓýK^7ÃG]ž?Æ­ÿùúüñŸFexÌtñ‹d½þ§ûÿHϰ÷«ÿŽ+‚õ_<Ǻÿ1ôü5ð¥¨ÿ³@ÿ¾ú{Ëû¿ïÿt­ÿ…¸ÿ‰‡D… òË…¦ÿ“y5§ÕÏpëQÿqþÜþ+šþ‹æÅt¶çcn/ÎË·þõ?ÜÿËDcMÿß<À“ü[Ý
-S'ØžáÿÓ0€ÿÜÿ-šþ¿è·>oÊ\÷ãß®ìåAÕpOÿçEüÏpþ…ó¿¢!æÿ^twmŸuëz†SÿKÿO˜`ÿÏü?²¹[ÿ+ øÇÿxúç þ_ÙÐô?¼µ[ÖÿÔ¼þ†	ú±ðg]••9b
-Mÿõåüd:›°m€\ÏpÇÿxÿ#äÿxH*€’¡è?`ðÙþðímü·öÍçÿ0ŒÑÿ…4†ýK24ý3ø¿àÿdõ_ÙÐôÏàÿBý‡ø¿dCÓ?ƒÿëÿeCÓÿÖþ¯¹þ“L¡þò¿²!æÿö÷aÿÏü_²¹[ÿ{ù¿°ÿgþ/ÙÐô¿±ÿëGý°ÿgá7=hÌ r¡éŸÁÿý³ ÿ—l(ú8ú)ø¿8 ÿÖþ¯yþ'Äù?&¥p€É…¦ÿê?,àþ/ÙÐôÏàÿÂþø¿dCÔ¿ý!?V½~:™Ü¥S§þýÿã0Füg!øzÌ¡éÿ'îÿãþOÙÐôÏÐÿçÿYˆ˜ $CÌÿïïÿÄúŸ… Âý’¹[ÿ›ø?úáÿæ!JcìäBÓ?Cÿ?ôÿdýÿd³Eþ_9žáÖÿòÿÐ?Èÿˆ¦ÿ­ýßóóq¤pÿ7*pˆ`(úWý?qÿ7´ñgèÿ‰ûŸX@ÿOÙÐôÏàÿÆúä~eCÓ?ƒÿõ_àÿ–
-Mÿý?±þgñ_64ý3ôÿDý‡tÿ
-1ÿ·¿ÿûÐÿS6wë¯þŸØÿ³€þŸ²¡ékÿç²þ—`ÿÏÂïu?t—Âfo0„¦†þŸÐ?èÿ)›Õúoj›ë'=Ã?ÿD!Öÿ, ÿ/›õñ¿½”ùËÓú9aîçÿ’ýYðÿΜôpÍý8~ïøç"• ÿÈÿÈÆ[ÿãkU—M^\ºÜ~°âîüÏ|þƒõ_T6 &¡xë¿/ô¸|Îõ«®NÓñ_ûñÅÔEe>X8õŸÌõŸ&!ú°ð®ÿ½¿ª÷×ëÈ<®/˜~RÈún^MW7ÝŠg¸ãÿ"ÿ ÿ­éʦ;ëº0и@6ˆÿ·™àÃt€Sÿi¶ðÃÿÁCÑÔ½é^­…×<4õÑŒSÁñá2~Ö·º0móe|«Ç?ün¦Àrু¬ÿ÷ÿèÿÁöÿ²ñÖÿSÕôù©:WëÕà¯ÿ0pÿпlÈñÿ¬¿îÿqÿ3ÿ¯½÷ÝmY¶=Ïçz
-?@y.“Õ=
-ì;5Óè{0w¦ùF¤©”M”D²IÊ.÷Ó“²j×&˝Ì
-T¬ÎÙ’U]`Aé•‘±2ú—
-¹þ×·ºêÆSß¹5TÅ-ç?§ýÿR…ý?;ˆ_4dýoÿ#äÿY@ü—
-]ÿeµšþƒiþþ.v¿hü÷ÿ½î;?ø¨p¿þ¿Yˆþ¿,Ç¿/O&"€ýÉy(È9ÿÏê¿Ãê?,\ý_IÆQ|¸úÀ†wêë»àúnw}ówÿ³ÁJPõ_÷úxɹŸá^ÿMÏÿÅ*ÃúHY6ôú϶û?ø?xÀþO6dýïÛòÙ,qSüßÃJ4„þ9ýUýrÿÁKÄ[ÿúp0…ßpwüŸÿv¡Ð?8ÿ-rü·¿cöžáŽÿ³þ¿Aÿ?Ÿ«îÜ4u;Lé¿`*Ç2ýg”¶?_wøë?q–ýG ²ÀÞÿ‡úÏö,ÿ¾nêcýøºuÿ§qüà CŒ?ÞãÿõêŸFŸõ£ÉKçÀ½þ'ã§Xÿó€ÔŸl¼õ_ÔíÍ‹¿þÃ0FþŸôÿ”
-Mÿ]ù`“ Ý’Û?üμÅÿDaÿÏBp¯0Æ[ÿýSkôÞkðÿI!þ³Aü¢¹UÿKžáÔÿ7ùÿ·øoK‚Ð?öë»ÿo‡\€<n[ÿ/{†¿þ£8…ÿ—…éÿp8@ÿâXªÿ¢ÕÝS^Õý{Mžÿ·þ§ëfðÿ±Æi˜d:Fì—Ébý×ÿÑža%îYÿU
-÷ÿ°à7þãõ¡ï¯ÿø«(@ýŸÒøwåŸ>7:ãÿ,ÿo€#þs¨ð7„~¹ô4Ïæ¸ünýÏêÿQˆý?¸ýW6$ýõ“imËÇÜÞ	œ»–nýGÓú_áþoÒ€dHúÿêåßè¶Á¾÷ÿøŸ*Ôÿy€ùG6$ý¿è×.¯¹î†¿\Ú»ƒÊþýöÏ”øŸÆðÿ³ RL ’¡åÿžt{é Ÿtã|†Sÿsÿú1a¿~øär«þ— ð_ÿÇQ
-ÿ?ðÿʆ¤ÿþµYµþ§¦õßPeÐ?¿Wå¡4{ÌB!é¿:ŸLk3 ¶óîøOãˆü‰BP2ý,þ¯ þ/H㿺ÿk:ÿ‡*Í0ÿsÆ°I†¤ÿüŸ, þ+’þ9ü_¨ÿ° ÿ—lHúgð…Xÿ³€ø/’þW÷Íú?¥ê?, û+ZþÁÿ…ý?öë‡ÿK.·ê3ÿú¿± ÿ—lHú_Ûÿõ½þØÿ³ðI÷S€\Húgð!ÿÇü_²!è?bñEðq@ÿÕý_ÓüOˆóL$Jíà “Iÿþ/ÔXˆ }ѐôÏáÿÂþø¿dCÓ¿ý!ß—~8šÜ)S§þÕTÿ±Âù‚/×AÀ< ’þ9úÿÁÿÁüŸ²!韣ÿÎÿ³ï0H†–ÿgðbýÏ‚ýúßîÿ+°Ç­ú_Çÿ9õÅQ†øÏBz¯°Iÿýÿpÿèÿ'›òÿÊõRþúgùِô¿ºÿ{¶þ#œÿbAen AÿŠÅÿû¿Y ?CÿÏ÷?±€þŸ²!éŸÃÿõHþʆ¤ÿ7ê¿,Àÿ-’þ9üŸXÿ³€ø/’þ9ú¢þúȆ–ÿcðbÿÏ‚ýúÑÿS.·ê³þŸèÿÂúʆ¤ÿÕýŸ³ú_`ÿϯU×·ç¦o0„¤ŽûŸ¡ÐÿS6Kõ_W6×O{†ÿú˜PÿcùÙ,ŽÿÍùК?|­Ÿ#Vá~þÏ QèÿË‚ïø·æ¨ûKîǽð{Ãþö< ÿ#_ý¯eu¨óâÜæöƒ%Ïpç¦ó”%¨ÿ² ²q0ÅWÿ]¡‡àc®ŸuyÿڏϦ*JóÞ‚À©ÿdªÿá¿Fÿ?Þô§¢·Wõöz™»ÝåóÃ
-Uÿõ³i«º]òwüŸæ£÷¿òИöP·']Èíñÿ:¼Ÿpê?Ífþoôÿ桨«Î´ÏÖÃkîêjo†©`w>ë]˜»¦~Þêá¿™)°øa êëý?úð€ý¿l|õÿPÖ]~,O¥‡üõ&	îÿaú—
-5þŸô—Mã?îæú—
-µþ×·ºêÆSß¹5TÅMç?§ýÿÒ ûv¿h¨úß:þ'Èÿ³€ø/²þËj=ýÓü?ü?\ì Ñxïÿ{Ýwž.ðQá~ýÓýY _žL>D û“ûPsþŸÕãý?y¸ú¿’,ŒÒ$ýpõ®N°á]p}·»¾ù»ÿÙ`%ˆú¯{}¼ä€<ýþ›õÿP
-ë? eِë?ïÿàÿàû?ÙPõ¿oËg³ÈýMòÇ!ú±0ú;«úåþ3.‚—ˆ¯þõá`
-Ïàþëÿ(qÿ38ÿ-jü·¿cöKžáŽÿÓþ¿QÃÿÅÂÏçª;7MÝsú/˜ıLÿQDjüóƸÃ_XÿI‚á¿S™R	ê?,ÿ¾nêcýøJøEðÿ0È2ÔÿXðÿ¯—ÿ4ºø¬M^º>ëÿËøÇ)â?èþ)ýu»@óßâ¯Û úç ‚þECÔW>Ø4@·Òýé4þ'8ÿÁCßG	æ ±øë¿jÞûÌ nýGý'*@þŸ… ÑܬÿÏpê_Íâ€ó_<ØÍ×Çë8`*ǍëÿEÏð×”ÀÿÇÃðí>пPë¿hu÷”Wuÿn›çwqëšÿSQŒõ?&NÃ}¦ch_&Ëõ?^ Hz†•¸gýW¥ê¿xŽÿxd¸áùßëüó¿<ÐÆ¿+ÿô¸Ðÿ¿éÿôVÿÿyHTøB¿\hú?šgs\ü·þçõÿûàÿ‘
-MÿEýdZÛô1··çŽå€[ÿ³ú_ þÏBcMÿ_=À£üÝöc+ØwžáÿÓ÷¿ò€û¿eCÓÿ‹~íòúënøÛ¥½<¨ìßo MˆÿY ÿ?*Å bþïI·— ùI7®g8õ?÷ÿ„1öÿ,ðÿˆæfý/8 àÿã8ÂþŸøeCÓÿÚ¬YÿSÓúo8Ì Ð?¿Wå¡4{LB¡é¿:ŸLk3 ¶ëîøOã„ü‰BP2ýþ/Ûÿþ¯í¡ÿÚþ¯éü†ú¿³Æ°I†¦ÿüŸ, þ+šþü_¨ÿ° ÿ—lhúßÜÿ¥2¬ÿY@ü—
-Mÿkû¿¦úO² õý•
-1ÿ·½ÿûø¿Ds³þ·òaÿÏü_²¡éeÿ×÷ú?`ÿÏÂ'ÝkÌ r¡ésÿWˆüðɆ¢ßËà¬Â½û…ðq@ÿµý_ÓüOˆóL$Jíà “Mÿþ/ÔX@úG64ý3ø¿°ÿcþ/ÙõoÈ÷e§Ž&wéÔ©5«ÿ„â?Á—ë `Mÿýÿàÿ`þOÙÐô¿}ÿ?ÜÿÍC¼Ã bþ{ÿ'Öÿ,öþ¿[ ©Ü¬ÿUüŸ3ýÇðó÷QÝ‹…¦†þèÿÉúÿÉfü¿r<íÿïäÿ¡ÿ—
-Mÿkû¿§ç?â(¡TàÁPô¯8ü߸ÿ›Úø3ôÿÄýO, ÿ§lhúgðcýÇü²¡éŸÁÿú/ðˆ¦†þŸXÿ³€ø/šþú¢þúȆ˜ÿ
 ÛÞÿ‰ý?úŠæfýoÕÿûÐÿS64ý¯íÿœ×ÿbìÿYøµêúö\Øì
-&ÐôÏÐÿúgý?e³Xÿuesý¤gøçÿ‚HaýÏòÿ²Yÿ›ó¡5xZ?G¬ÂýüŸA’¢ÿ/Þãßš£î/¹çÂï
-ÿüO¤ôÿ`ùÙxëx-«Cç6·,x†;ÿ3ÿã Dý—•#€I@(Þúï
-=lsý¬Ëãxü×~|6UQšwNý'Sý§‰BÿÞô§¢·Wõöz™»ÝåóÃ
-Yÿõ³i«º]ðwüŸåôÿá¡1í¡nOº*4.âÿu&x7àÔšÍúÿÂÿÁCQWiŸ­…×ÜÕÕÞSÁþî<|Ö5º0wMý2¼ÕÃ~3S`9ðÃ@ÖÿÆûôÿàûÙxëÿ¡¬»üXžÊåjð×ÿ° Àý?,@ÿ²!Çÿ“þ²]ü2ÜÿÌô/rý¯ouՍ§¾sk¨Š[ÎNûÿ¥
-ûv¿hÈúß4þÇAˆü?ˆÿ²¡ë¿¬VÓ0ÍÿÃÿÃÅòÿþ¿×}ççî×ÿ7Ñÿ—âø÷åÉäC°?99çÿYý7ŽÑÿ“‡«ÿ+ÉÂ8ƒWØðN}}\ßí®oþî6X	ªþë^/9 ÷3Üë¿éù¿X¥Xÿ± )ˆ^ÿÙvÿÿØÿɆ¬ÿ}[>›%îoŠÿ;гúç`ôwVõËýg\/oýëÃÁ~ÀÝñvþ;ÌPÿaç¿eCŽÿ¶ñWcÌ~Á3ÜñÖÿ×~ý3ðó¹êÎMS·Ã”þ¦q,Ó@iûó•q‡¿°þgé*¢õ–Ž_7õ±~|ݺÿÓ8þa)ôbÁ{ü¿^ýÓèâ³~4yé\¸×ÿádüã$Cÿ'ú“·þ‹º]¢ùoñ×FØÿ³ ýˆ¦ÿ®|°I€nÉí~ç?®ñ÷ñÜ+´ Œ·þû§Öè½×àÿœÿ`ñ_6·êÉ3œúÿ&ÿÑ”¡þσýú¯÷ÿa! ÛÖÿËžAМàü7ÿÒÿáp€þűTÿE«»§¼ªû÷š<ÿnýOë?*L‘ÿgAi•é» ©,ÖÿxýíVâžõ_(Ô9ðÿñúÇÐ÷×ÀüU˜¡þÏiü»òOŸ› ñ–ÿUŠó?,$*ü
-Á_.$ýͳ9.†[ÿ³ú?îÿd·ÿʆ¤ÿ¢~2­mù˜Û;s×rÀ­ÿhZÿÑÿ™‡4Æ ’þ¿z€Gù7ºíÇF°ï=Ã?þ§
-õPó“
-Iÿ/úµËëC®»á/—öî ²¿ý3%þ§òÿ,¨€dhù¿'Ý^: ä'Ý8ŸáÔÿ¬þ«ûì×ÿ\nÕÿ’ þëÿ8Jàÿg•ِôß¿6«ÖÿfþŸý?™ø½*¥Ùc
-IÿÕùô`Z›°]€œÏpÇÿxÿCäÿxH*€’!èß»U¸·ÿ÷?°@ÿÕý_Óù?TI†ùŸƒ4†ýK2$ýsø¿àÿd9_ِôÏáÿBý‡ø¿dCÒ?ƒÿKaýÏâ¿lHú_Ýÿ5ëÿ”âþ_ý•
--ÿÇàÿÂþŸûõÃÿ%—[õ¿™ÿýßX€ÿK6$ý¯íÿú^ÿìÿYø¤{)@.$ý3ø¿ÿãþ/Ùô±ø¿"ø¿8 ÿêþ¯iþ'Äù?&¥vp€É…¤ÿê?,àúoِôÏáÿÂþø¿dCÓ¿ý!ß—~8šÜ)S§þÕTÿ±Âù‚/×AÀ< ’þ9úÿÁÿÁ<²!韣ÿÎÿ³ï0H†–ÿgðbýÏ‚ýúßüŸîÿ“Ç­ú_Çÿ9óD¸ÿ‡à>êCÒ?Gÿ?ÜÿÁúÿÉf…ü¿r=íÿïäÿ¡ÿ—
-Iÿ«û¿§ç?â0Äù/TàÁô¯Xü߸ÿ›Òø3ôÿDþ‡ôÿ”
-Iÿþo¬ÿX€ÿC6$ýsø¿QÿeþoِôÏáÿÄúŸÄِôÏÑÿõÐýC6´üƒÿûì׏þŸr¹Uÿ›õÿDÿ`û
-Iÿ«û?çõ¿û~­º¾=6}ƒ™@ $ýsÜÿý³€þŸ²Y¬ÿæ|h;֯«p?ÿWèÿÉ‚ïø·æ¨ûËÞÏ=ñ¿á¿ÿ‹¬ÿxÀþO6¾ú^ËêPçŹÍíKžáÞÿMçÿ(‹QÿaaØh[0ÅWÿ]¡eõ˜ëg]Çãö㳩ŠÒ¼· pê?™ê?#ôÿbáMÿw*z{Uo¯—‘¹Û]^0?ü PõÿX?›¶ªÛ%ÏpÇÿiþ'Êpÿ#iu{ÒUa qÜÿ¯3Áûé §þÓlæÿDÿ_ŠºêLûl=|æ®®öf˜
-öwçᳮх¹kê—á­þð›™ˁªþ·Þÿãü?ØÿËÆWÿeÝåÇòTzˆÁ_ÿaãþ ÙPãÿIÙ4þãþW ÙPë}««n<õ™[C at UÜtþkÚÿ+
-°ÿçañ‹†ªÿ­ãŒü?ˆÿ²!뿬ÖÓ0ÍÿÃÿÃÅò÷þ¿×}çéî×ÿ3Ñÿ“Úø÷åÉäC°?¹O:çÿYý7ŽÑÿ‡«ÿ+ÉÂ(	’WXðáêÞ×w»ë›¿ûŸ
-V‚¨ÿº×ÇKhÁ3Üë¿Ùù`ýǤ,rýgãýü<`ÿ'ªþ÷mùl¹¿IþïX¡ÿ£¿³ª_î?ã"h‰øê_¦ð< î¿þB…ûßY@è—
-5þÛÆ?1û%ÏpÇÿiÿÏ(‹àÿbáçs՝›¦n‡9ýÌâX ÿº²mþox†;þOü_j?â?Á}œAörYÿUFjüõƘá[XÿMeõ¯ú±°xüûº©õã+áÁ{üà K3Œ?þãÿõòŸFŸõ£ÉK×&Àgÿÿ8áÿf=ÿeã¯ÿ¢nhþ[üõF¨ÿó@ÿ¢!ê¿+l°[éþtÿÜÿÃ
-ïÃs€Xüõß?µFï}f ·þ£‰þ“ CþŸ…ìŸhnÖÿ‚g8õ¯fñß¶„…þ°_¿½ÿ/´o0ˆãÆõÿ¢gøë?J"ÔÿXxÓÿáp€þ%²XÿE«»§¼ªûwÛ¼¿‹[ÿÓüŸŠàÿá!Q’éÚ—Érý ’ža%îYÿUIŠú/žã?^ nxþÿ:ÿǨÿ³@ÿ®üÓÃèÎÿ%Óú_ˆøÏC¢ÂßúåBÓÿÑ<›ãâg¸õ?¯ÿÃÿËnÿ•
-MÿEýdZÛô5·GrÇrÀ­ÿYý/
-Pÿg!1H†¦ÿ¯àQþnû±ô;Ïðÿ©Êàÿcþ_ÙÐôÿ¢_»¼>äºþvi/+û÷ÀâÀÿÏ‚J1H†˜ÿ{Òí¥H~ҍëNýÏý?aŒý?öë‡ÿG.7ëÁ ÿøo¡àÿ•
-Mÿýk³fýOMë¿aˆû_xø½*¥Ùc
-MÿÕùô`Z›°}À\ÏpÇÿx¶þGþ‡D¡(ŠþÿWÿ´ñ_Ûÿ5ÿÃ0BÿgÒö/ÉÐô¿½ÿ+…ÿ“ÔeCÓ?ƒÿõàÿ’
-Mÿþ/¬ÿY@ü—
-Mÿkû¿¦úO² õý•
-1ÿ·¹ÿç?y°_?ü_r¹Yÿ[ù¿°ÿgþ/ÙÐô¿²ÿë;ýbìÿYø¤{@.4ý3ø¿ àÿ’
-EÿƒÿËö†ÿk{hã¿¶ÿkšÿ	qþ‰D©`r¡éŸ¡ÿê?,àîÙÐôÏàÿÂþø¿dCÔ¿ý!ß—~8šÜ¥S§þÕ¬þFˆÿ,_®ƒ€y@"4ý3ø?áÿ`þOÙÐôÏÐÿçÿYˆw˜ $CÌÿoßÿëì×oýŸîÿÉÍú_Åÿ9Óÿ7*¼‡T04ý3ôÿCÿOÐÿO6käÿ•ã¤ü?ôÏòÿ²¡émÿ÷ôüG
-ý3 ² 7€†¢ÅÑÿ÷³@†þŸ¸ÿ‰ôÿ”
-Mÿþo¬ÿX€ÿC64ý3ø¿QÿeþoÙÐôÏàÿÄúŸÄÙÐôÏÐÿõÐýC6ÄüßöþOìÿY°_?úÊåfýoÕÿû`þ”
-Mÿkû?çõ¿û~­º¾=6{ƒ‰@ 4ý3ôÿ„þY@ÿOÙ,Ö]Ù\?éþù¿ RXÿ³€ü¿l–Çÿæ|hÍžÖÏ«ðåþÏÐê?IüŸxkŽº¿ä~œ¿7üò?vü#ãü/ÈÿÈÆ[ÿÃkYê¼8·¹ý`Á3ÜùŸéüÿýs ²q0	Å[ÿ]¡‡àc®ŸuyÿڏϦ*Jó΂À©ÿdªÿ4Q¨ÿ²ð¦ÿ;½½ª·×ËÈÜí./˜~PÈú¬ŸM[Õí‚g¸ã<‹ÿððИöP·']È
-ñÿ:¼›pê?ͦñý?˜(êª3í³µðš»ºÚ›a*Øß‡ÏºF殩_†·zøÃof
-,~Èúßxÿàþ/°ÿ—·þʺˏå©\®ý ø?X€þeCŽÿ'ýe›øoýQ†ûŸy€þeC®ÿõ­®ºñÔwn
-UqËùÏiÿ¿Táü;ˆ_4dýoÿã@ÁÿÃâ¿lèú/«Õôd3ý‡Èÿ³°ƒüEã¿ÿïußù¹ÀG…{ù¿Ufã?üßÛCÿ¾<™|ˆ ö'ç¡ çü?«ÿÆq†úWÿW’…Ñ.Ý}¸úÀ‚W'Øð.¸¾Û]ßüÝÿl°Tý×½>^r@îg¸×áTÿ*Eþ—HY6ôú϶û?ÜÿÂö²!ëß–Ïf‰û›âÿŽâõFgU¿ÜÆEðñÖ¿>Láw Üÿgç¿CÜÿÁΈÿmã¯Æ˜ý‚g¸ã:ó+ø?Yøù\u禩ÛaJÿS8–é?ÜQúþ\wø‹ë?Ã<¡2¨ÿp°xüûº©õã+áÁ{üÃ`ôÿbü·Çü¿ÞýÓèâ³~4yéZ¸×ÿádüã4ÁþŸtÿ”¿þ‹º] ùoñ×)ø¿XÀõ²!ê¿+l [rýÇý§ÓøŸ ÿÇCßG	æ ±øë¿jÞûÌ nýGý'*€ÿ‡…e?ÑܬÿÏpê_Í␠ÿÏ‚ýú?¾|a’ǍëÿEÏð×”D)ôÏÁðí>пPë¿hu÷”Wuÿ^—ç÷qëšÿSQŒõ?EtˆT¦ch_&Ëõ?ÞÿGz†•¸gýW¥ê¿xŽÿxÿcèùkà?þöŒ?´ñïÊ?×¼ÿ÷ßú?Å—ûÿYHTøB¿\hú?šgs\ü·þçõÿûàÿ‘
-MÿEýdZÛó1·—çŽå€[ÿ³ú_„ûŸxHa 
-Mÿ_=À£üÝöc'ØwžáÿÓ0€ÿÜÿ-šþ_ôk—ׇ\wÃß.íåAeKÿçYüÏüÿ,¨€dˆù¿'Ý^Z ä'ݸžáÔÿÜÿÆØÿ³`¿~øär³þ ðÿqŒû_y€ÿW64ý÷¯Íšõ?5­ÿ†aŒûXø½*¥Ùc
-MÿÕùô`Z›°m€\ÏpÇÿxÿ#äÿxH*€’¡è?àð…ðq@ÿµý_ÓùXÿáþÒö/ÉÐôÏàÿ‚ÿ“ÔeCÓÿöþ¯ õàÿ’
-Mÿþ/¬ÿY@ü—
-Mÿkû¿¦úO² õý•
-1ÿ·½ÿûì×ÿ—\nÖÿFþ/ôâþ/ÙÐô¿²ÿë;ýìÿYø¤{@.4ý3ø¿ àÿ’
-Eÿ‡ÿ+ÿ‹Úø¯íÿšæBœÿc"Qj˜\húgð¡þÃB틆¦†þ_Øÿ± ÿ—lˆú·?äû²ÓG“»têÔ¿šÕ† ôÏAðå:˜$BÓ?ƒÿþàÿ”
-MÿýÿpþŸ…þÑóÿÛû?±þgÁ~ý#Üÿ'•›õ¿Šÿs¦ÿþoÂø>ü	ºMÿÛ÷ÿKÐÿ“ôÿ“Íùåx†[ÿóü?úÿò€ü¿lhú_Ûÿ==ÿGÃGÐ?*pˆ`(úWþoÜÿÍmüúâþ'ÐÿS64ý3ø¿±þcþÙÐôÏÐÿõ_àÿ–
-MÿþO¬ÿY@ü—
-MÿÛ÷ÿT¨ÿ°€î²!æÿ¶÷bÿÏ‚ýúÑÿS.7ë«þŸØÿ³€þŸ²¡émÿç¼þ—`ÿϯU×·çÂfo0„¦†þŸÐ?èÿ)›Åú¯+›ë'=Ã?ÿD
-ëÿ—Íòøßœ­ùÃÓú9bîçÿ’ýYðÿÖuÉý8~oøç"• ÿÈÿÈÆ[ÿÃkYê¼8·¹ý`Á3ÜùŸéüê¿,¨lLBñÖWèa#ø˜ëg]Çã¿ö㳩ŠÒ¼³ pê?™ê?Mú°ð¦ÿ;½½ª·×ËÈÜí./˜~PÈú¬ŸM[Õí‚g¸ãÿ,ÿ ÿiu{ÒUa q¬ÿ¯3Á»é §þÓlæÿ†ÿƒ‡¢®:Ó>[¯¹««½¦‚ýÝyø¬ktaîšúex«‡?üf¦Àrà‡¬ÿ÷ÿèÿÁöÿ²ñÖÿCYwù±<•ËÕà¯ÿ0pÿпlÈñÿ¤¿lÿ¡ ِë}««n<õ[C at UÜrþsÚÿ/UØÿó°ƒøECÖÿÆñ?DþŸÄÙÐõ_V«é?˜æÿáÿábù‹Æÿßë¾ós
-÷ëÿ›…èÿËqüûòdò!ØŸœ‡‚œóÿ¬þÇèÿÉÃÕÿ•da¬TðáêÞ©¯ï‚ë»ÝõÍßýÏ+AÕÝëã%ä~†{ý7=ÿ¿–Ð?²lèõŸm÷ðð€ýŸlÈúß·å³Yâþ¦ø¿£8K¡FgU¿ÜÆAP‰xë_¦ð; îŽÿ³óßa†ú8ÿ-rü·¿cöžáŽÿ³þ¿Aÿ?Ÿ«îÜ4u;Lé¿`*Ç2ýÇ¥ïÏ•q‡¿´þ£†ÏU¦†)õ_7õ±~|%ü"xdYˆñçÀü¿ÞýÓèâ³~4yéZ¸×ÿádüã4AþŸ…1_4þú/êvæ¿Å_ÿa¤°þg!þECÔW>Ø,@·äúúO§ñ?I‘ÿg!Jïãs€Xüõß?µFï}f ·þ£‰þ‡ÿEÿ ~ÙܬÿÏpê_Íâ€þÏ<XÿÏÇë8`*ǍëÿEÏð×”D¨ÿ³p8 Á,ÖÑêî)¯êþ½.ÏïãÖÿtý¯¢ñŸÇi”d:†øE²\ÿãý¤gX‰{ÖUªPÿåÀsüÇûCÏ_ÿñ~@ýŸÚøwåŸkÞÿûmÿ§Ký/Œ‘ÿc!Qáoˆür¡éÿhžÍqñ3ÜúŸ×ÿáÿç·ÿʆ¦ÿ¢~2­íù˜ÛKsÇrÀ­ÿYý/
-Pÿg!1H†¦ÿ¯àQþnû±ì;ÏðÿiˆþÏ<àþoÙÐôÿ¢_»¼>äºþvi/*û[ú?Ïâ¦àÿgA¥˜ $CÌÿ=éöÒ ?éÆõ§þçþŸ÷?ò ÿlnÖÿ‚ þñ?Ž#ìÿY€ÿW64ý÷¯Íšõ?5­ÿ†aŒþ,ü^•‡Òì1	…¦ÿê|z0­Í Ø6@®g¸ã<ÿò<$
-@ÉPôpø¿ø¿8 ÿÚþ¯éüo
- ˜ÿ9HcØ¿$CÓ?ƒÿþOPÿ•
-Mÿþ/ÔX€ÿK64ýoîÿRÖÿ, þˆ¦ÿµý_Sý'îâÙ_ÙóÛû¿°ÿgþ/Ùܬÿ­ü_Øÿ³ ÿ—lhú_Ùÿõ½þØÿ³ðI÷3€\húßÜÿ"ÿÇü_²¡è?âðEðq@ÿµý_ÓüOˆóL$Jíà “Mÿþ/ÔXÀý²¡éŸÁÿ…ýðɆ¨ûC¾/;ýp4¹K§NýÏúÿÇa„øÏBðå:˜$BÓ?Cÿ?ø?X€ÿS64ý3ôÿÃùâ& ÉóÿÛû?±þgáPÀÿ)™›õ¿Šÿs¦ÿþoâðPÁÐôÏÐÿý?Y@ÿ?Ù¬‘ÿWŽg¸õÿü?ôÏòÿ²¡émÿ÷ôüG¸ÿ›•¸D0ý+ÿ7îÿf6þÛ÷ÿŒqÿèÿ)šþüßXÿ± ÿ‡lhúgð£þËüß²¡éŸÁÿ‰õ?ˆÿ²¡éŸ¡ÿ'ê?, û‡lˆù¿íýŸØÿ³€þŸ²¹Yÿ[õÿÄþŸ˜?eCÓÿÚþÏyý/ÁþŸ…_«®oÏ…ÍÞ`"Mÿ÷?Cÿ, ÿ§lë¿®l®Ÿôÿü_)¬ÿY@þ_6Ëãs>´æOëçˆU¸Ÿÿ3HRôÿeÁ{ü[sÔý%÷ã\ø½áŸÿ¦ôÿ`ùÙxëx-«Cç6·,x†;ÿ3ÿã Dý—•#€I@(Þúï
-=lsý¬Ëãxü×~|6UQšwNý'Sý§‰BÿÞô§¢·Wõöz™»ÝåóÃ
-Yÿõ³i«º]ðwüŸåôÿá¡1í¡nOº*4.âÿu&x7àÔšÍüßððPÔUgÚgká5wuµ7ÃT°¿;Ÿu.Ì]S¿oõð‡ßÌXü0õ¿ñþý?xÀþ_6Þú(ë.?–§r¹üõ?, pÿпlÈñÿ¤¿lÿ£÷?ó ýˆ\ÿë[]uã©ïܪâ–óŸÓþ©ÂþŸ‡Ä/²þ7ÿñ°€þ9@ü—
-]ÿeµšþƒiþþ.v¿hü÷ÿ½î;?ø¨p¿þ¿Yˆþ¿,Ç¿/O&"€ýÉy(È9ÿÏê¿qŒþŸ<\ý_IÆI˜}¸úÀ‚W'Øð.¸¾Û]ßüÝÿl°Tý×½>^r@îg¸×Óó±J±þcR–
-½þ³íþþ°ÿ“
-Yÿû¶|6KÜßÿwg1ôÏÁèï¬ê—ûϸ^"Þúׇƒ)ü€»ãÿìüw˜¡þÃΈÿmã¯Æ˜ý‚g¸ãÿ¬ÿo àÿbáçs՝›¦n‡)ýLâX¦ÿ0¦ôý¹2îð—Ö†µÀ þáGÔ8X<þ}ÝÔÇúñ•ð‹à=þa¥ÆŸÿñÿz÷O£‹ÏúÑä¥k
-à^ÿ‡“ñÓþOÐýS6þú/êvæ¿Å_ÿa„ûx@ê_6DýwåƒÍtK®ÿX ÿtÿÇþŸÐÿö„ñ}”`‹¿þû§Öè½ÏàÖ4Ñàü'!îÿÍÍú_ð§þÕ,þ¸ÿ‡ûõÞ¾˜
-ÄqãúÑ3üõ%ú¿³0|û‡‡ô/”Åú/ZÝ=åUÝ¿×åù}ÜúŸæÿTaýÏBB•éÚ—Érý÷ÿ‘ža%îYÿUIŠú/žã?Þÿzþø¿ŠbÔÿY Wþ¹æý¿ßöºÔÿBÄþ†Ð/šþæÙ?íÿyý?ÃþŸødCÓQ?™Öö|Ìí¥À¹c9àÖÿ¬þáü/)ꢡéÿ«x”£Û~ìûÎ3üãª2øÿXÀýß²¡éÿE¿vy}Èu7üíÒ^Tö·ôžÅÿ,€ÿŸ•b1ÿ÷¤ÛK€ü¤×3œúŸûÂûì×ÿ\nÖÿ‚ þñ?ÞBÿÀÿ+šþû×fÍúŸšÖÃ÷?óð{UJ³Ç$ šþ«óéÁ´6`Û ¹žáŽÿñlýü‰BP2ýþ¯þ/hã¿¶ÿk:ÿ‡a„þ¯,¤1ì_’¡é{ÿW
-ÿ'¨ÿʆ¦ÿê?,Àÿ%šþü_Xÿ³€ø/šþ×öMõŸdê?, û+bþosÿÎò`¿~ø¿är³þ·òaÿÏü_²¡éeÿ×wú?ÄØÿ³ðI÷3€\húgðAÿ,Àÿ%Šþ#ÿ—íÿÿ×öÐÆmÿ×4ÿâü‰R;8ÀäBÓ?Cÿ/ÔXˆ }ÑÐôÏàÿÂþø¿dCÔ¿ý!ß—~8šÜ¥S§þÕ¬þFˆÿ,_®ƒ€y@"4ý3ø?áÿ`þOÙÐôÏÐÿçÿYˆw˜ $CÌÿoßÿëì×ÿ1ÂýR¹Yÿ«ø?gúáÿæ!Œïß {±ÐôÏÐÿý?Y@ÿ?Ù¬‘ÿWŽg¸õÿü?ôÏòÿ²¡émÿ÷ôüG
-ý3 ² 7€†¢ÅÑÿ÷³@†þŸ¸ÿ‰ôÿ”
-Mÿþo¬ÿX€ÿC64ý3ø¿QÿeþoÙÐôÏàÿÄúŸÄÙÐôÏÐÿõÐýC6ÄüßöþOìÿY°_?úÊåfýoÕÿûÐÿS64ý¯íÿœ×ÿbìÿYøµêúö\Øì
-&ÐôÏÐÿúgý?e³Xÿuesý¤gøçÿ‚HaýÏòÿ²Yÿ›ó¡5xZ?G¬ÂýüŸA’¢ÿ/Þãßš£î/¹çÂï
-ÿüO¤bôÿ`ùÙxëx-«Cç6·,x†;ÿ3ÿãa
-€þ9PÙ8˜„â­ÿ®ÐÃFð1×Ϻ<ŽÇíÇgS¥ygAàÔ2ÕšèÿÁ›þïTôöªÞ^/#s·»¼`~øA!ëÿ±~6mU·žáŽÿ³üo€þ?<4¦=ÔíIW…Æ²Bü¿Î列úO³iüGÿo&ŠºêLûl-¼æ®®öf˜
-öwçᳮх¹kê—á­þð›™ˁ²þ7Þÿ£ÿØÿËÆ[ÿeÝåÇòT.Wƒ¿þ‡ îÿaú—
-9þŸô—íâ”áþg ِë}««n<õ[C at UÜrþsÚÿ/UØÿó°ƒøECÖÿ¦ñ?òÿ, þˆ®ÿ²ZMÿÁ4ÿÿ;È_4þûÿ^÷Ÿ|T¸_ÿßL¡ÿ/Äñï˓ɇ`r
-rÎÿ³úo£ÿ'WÿW’Ù «>\}`Á‡«lx\ßí®oþî6X	ªþë^/9 ÷3Üë¿éù¿X¥Xÿ± )ˆ^ÿÙvÿÿØÿɆ¬ÿ}[>›%îoŠÿ;Š3ýs0ú;«úåþ3.‚—ˆ·þõá`
-¿àîø?;ÿ¦¨ÿ°€óß²!ÇÛø«1f¿àîø?ëÿk—Ð??Ÿ«îÜ4u;Lé¿`*Çý7uוGZï/‹;þÿËÿgé*ËBôÿc!¸3È^.Ëâ¿
-(}¿®Œ¾ÅõßÀê_Ùû?PÿÝžÅãß×M}¬_	¿Þãÿy†ñçÀü¿ÞýÕèâ³~4yéÚ¸ã8ÿ8Åý¿< õ/ýu»@óßâ¯ÿ0ÌÐÿ‘¤ÿdCÔ¿M”Õc·äúÏó_cüOœÿb!¸Wh.ý÷O­Ñ{ŸÀ­ÿh¢ÿ$@ý…
-€hnÖÿ‚g8õÿoõ¿1þ¸ÿ“ûõ!†
-P 7®ÿ=Ã_ÿQÂÿÇ¿ô8 q,ÖÑêî)¯êþ½.ïïãÖÿ4ÿ§¢ël©Ee:Fì—Érý÷’ža%îYÿïBýw{<Ǽÿ5ôü5ðE¨ÿ³@ÿ®üsÍû¿gù[ Düç Qáoýr¡éÿhžÍqñ3ÜúŸÕÿ£ûpû·lhú/ê'ÓÚž¯¹½<w,ÜúŸÕÿÂý?XHa 
-Mÿ_=À£üÝöc'èwžáÿS•ÂÿÇÌ?²¡éÿE¿vy}Èu7üíÒ^Vö·ôŸÅÿ4ƒÿŸ•b1ÿ÷¤ÛKü¤×3œúŸûÂûì×ÿ\nÖÿ‚ þñ?ŽÑÿøeCÓÿÚ¬YÿSÓúoˆûŸ™ø½*¥Ùc
-MÿÕùô`Z›°mÀ\ÏpÇÿx¶þGþ‡D¡(Šþ}›Y…{û¿ø¿8 ÿÚþ¯éü?€þ,¤1ì_’¡é{ÿWÿ'¨ÿʆ¦ÿê?,Àÿ%šþü_Xÿ³€ø/šþ×öMõŸ¤ê?, û+bþosÿÎò`¿~ø¿är³þ·òaÿÏü_²¡éeÿ×wú?DØÿ³ðI÷3€\húgðAÿ,Àÿ%Šþ#ÿ—íÿÿ×öÐÆmÿ×4ÿâü‰R;8ÀäBÓ?Cÿ/ÔXˆ }ÑÐôÏàÿÂþø¿dCÔ¿ý!ß—~8šÜ¥S§þÕ¬þ3ì  ‚/×AÀ< šþüŸð° ÿ§lhúgèÿ‡óÿ,Ä;L ’!æÿ·ïÿ‡õ?öë»ÿ¯À@7ëÿçÔÿÇ!â?é½Â@04ý3ôÿCÿOÐÿO6käÿ•ã¤ü?ôÏòÿ²¡émÿ÷lýfôρÊÜ "ŠþGÿOÜÿÍmüúâþ'ÐÿS64ý3ø¿±þcÉ_ÙÐôÏàÿFý—ø¿eCÓ?ƒÿëÿeCÓ?CÿOÔX@÷ÙóÛû?±ÿgÁ~ýèÿ)—›õ¿UÿOìÿY@ÿOÙÐô¿¶ÿs^ÿ‹°ÿgáתëÛsa³7˜BÓ?CÿOèŸôÿ”ÍbýוÍõ“žáŸÿ¢ ëÿ—Íòøßœ­ùÃÓú9bîçÿ’ýYðÿÖuÉý8~oøç"áü/ÈÿÈÆ[ÿÃkYê¼8·¹ý`Á3ÜùŸéüÛ#Ð?*G “€P¼õßzØ>æúY—Çñø¯ýølª¢4ï,œúO¦úOãýÿXxÓÿŠÞ^ÕÛëedîv—Ì?(dý?ÖϦ­êvÁ3Üñ–ÿ
-pÿ+iu{ÒUa q¬ÿ¯3Á»é §þÓlÿÑÿ›‰¢®:Ó>[¯¹««½¦‚ýÝyø¬ktaîšúex«‡?üf¦Àrà‡¬ÿM÷ÿQ†þ<`ÿ/oý?”u—ËS¹\
-þúS…ûX€þeCŽÿ'ýeËøûŸy€þeC®ÿõ­®ºñÔwn
-UqËùÏiÿ¿TaÿÏÃâ
-Yÿ›Æÿ8ÿgñ_6tý—Õjú¦ùø¸ØAþ¢ñßÿ÷ºïü\à£Âýúÿfúÿ²@ÿ¾<™|ˆ ö'ç¡ çü?«ÿÆ1úòpõ%YeaðáêÞ©¯ï‚ë»ÝõÍßýÏ+AÕÝëã%ä~†{ý7=ÿ«ë? eÙÐë?[îÿàÿà
 û?ِõ¿oËg³ÄýMñGqª FgU¿ÜÆEðñÖ¿>Láw Üÿgç¿Ãõpþ[6äøo5Æì<ÃÿgýmK0蟁ŸÏUwnšº¦ô_0ˆc™þCJÛŸ¯Œ;ü…õŸ8Kÿ#PY£ÿKÇ¿¯›úX?¾nÝÿiÿ0Ȭÿã¿=ÞãÿõêŸFŸõ£ÉKçÀ½þ'ã'¸ÿ‹,ÿeã­ÿ¢n—hþ[üõ†ê, û¯lhúïÊ›è–Üþáwþãÿáÿæ!¸Wh,oý÷O­Ñ{¯À?þ'AˆøÏâ¿lnÕÿ’g8õÿMþÿ¢ÿ(Ëpÿöëÿø6¸
-\·­ÿ—=ƒ ÿ8Aÿwþ¥ÿÃá ý‹c©þ‹VwOyU÷ï5yþÜúŸÖT˜"ÿÏ‚Ò?e:F@*‹õ?^ÿG{†•¸gýWê¿øÿxý£·ÄüU˜¡þÏiü»òOŸ› ñ–ÿú¿ñ¨ð7¹ô4Ïæ¸ünýÏêÿ‘ÂþŸäÿeCÒQ?™Ö¶|ÌíÀ¹k9àÖ4­ÿ…Îÿ²"é/’þ¿z€Gù7ºíÇF°ï=Ã?þ§
-õ`þ‘
-Iÿ/úµËëC®»á/—öî ²¿ý3%þ§òÿ,¨€dhù¿'Ý^: ä'Ý8ŸáÔÿ¬þ«ûì×ÿ\nÕÿ’ þëÿ8Bÿÿ“
-Iÿýk³jýoæÿ	U
-ý³ð{UJ³Ç, ’þ«óéÁ´6`» 9ŸáŽÿñ4þ‡Èÿñ(¬ $CÐÀâÿ
-áÿâ€4þ«û¿¦óÿ°þCÿWÒö/ɐôÏáÿ‚ÿ“ÔeCÒ?ƒÿ+Dý‡ø¿dCÒ?‡ÿëÿeCÒÿêþ¯Yÿ§4Dý‡deCËÿ1ø¿°ÿgÁ~ýðÉåVýoæÿBÿ7ÿeCÒÿÚþ¯ïôȰÿgá“î5¦ ¹ôÏáÿ‚þY€ÿK6ýG,þ¯þ/H㿺ÿkšÿ	qþ‰D©`r!éŸÃÿ…ú´/’þ9úaÿÇü_²¡éßþïËN?MSÿjªÿXáü?Á—ë `IÿþOø?X€ÿS6$ýsôÿÃùâ& ÉÐòÿþO¬ÿY°_ÿ›ÿ3Âýò¸Uÿëø?gþ÷ÿñÜ'P½`Húgèÿ—áþÐÿO6+äÿ•ënýÏóÿ)ôÏòÿ²!éuÿ÷ôüG†8ÿŰÐÂ
- ‚!è_±ø¿qÿ7¤ñçèÿ‰üèÿ)’þ9üßXÿ± ÿ‡lHúçèÿ‰ú/ðˆ¤ÿ'Öÿ, þˆ¤†þŸê?, û‡lhù?ÿ'öÿ,دý?år«þ7ëÿ‰þ/, þˆ¤ÿÕýŸóú_†ý?¿V]ßž›¾ÁL ’þ9úBÿ, ÿ§l–ê¿®l®ŸöÿõF¨ÿ±€ü¿lÇÿæ|h;ÖÏ«p?ÿgèÿË‚ïø·æ¨ûKîǽð{ÃþìÿxÀêO6¾ú^ËêPçŹÍíKžáÎÿLçÿ(KPÿeAeã`Нþ»BÁÇ\?ëò8ÿµŸMU”潁SÿÉTÿi¡ÿoú¿SÑÛ«z{½ŒÌÝîò‚ùá…ªÿÇúÙ´UÝ.y†;þOó¿Q†û_yhL{¨Û“®
-äöø	ÞO8õŸf3ÿ7úóPÔUgÚgëá5wuµ7ÃT°¿;Ÿu.Ì]S¿oõð‡ßÌXü0Põ¿õþý?xÀþ_6¾ú(ë.?–§ÒCþú“÷ÿ° ýˆÿOú˶ñúgú—
-µþ×·ºêÆSß¹5TÅMç?§ýÿÒ ûv¿h¨úß:þÇÈÿ³€ø/²þËj=ýÓü?ü?\ì Ñxïÿ{Ýwž.ðQá~ýÓýY _žL>D û“ûPsþŸÕãý?y¸ú¿’,`÷áê>\`ûàúnw}ówÿ³ÁJõ_÷úxÉ-x†{ý7ëÿ1üòAÿ@ʲ!×6ÞÿÁÿÁö²¡êß–Ïf‘û›äÿŽú±0ú;«úåþ3.‚—ˆ¯þõá`
-Ïàþëÿ(TôÏΈÿmã¯Æ˜ý’g¸ãÿ´ÿo”Åð±ðó¹êÎMS·Ãœþæq,Ó¹?R럑q‡ïSÿQY:l	PÿaÀcü‹sÛšªÿzà/oëeÏp¯ÿ¦þ¿(ÿaádª3¦}¹ôï“úq¯ÿf÷?&¸ÿ]4en‡“€HèÿóíÍÑ:~‰ÏpÇÿéý¶ ôÏAœAø’Y˜ÿ‰è»?¿ý_2ÌÃþO
-KìÿX<þ}ÝÔÇúñ•ð‹à=þa¥)ÆŸÿñÿzùk£‹ÏúÑ«GÇ3Üñ?œŒœâüèÿ.ýu»@óßâ¯ÿaùý?	ô/¢þ»òÁ–»•îL§ñ?IÑÿŸÞ‡æ ±øë¿jÞûÌ >ù¿‹þ“aýs ñËæfý/x†SÿjÿƒýX°_ÿÇ À1¡Ü¸þ_ôýG	ê<¼éÿp8@ÿY¬ÿ¢ÕÝS^Õý»×ü¼‹[ÿÓüŸŠ"¬ÿYØÅi”d:†öe²\ÿãð¤gX‰{ÖU‚û_Yðÿ²Ú›/á†ýŸ®óŒú?´ñïÊ?=î‚wçÿ’iý/Düç!Qáoýr¡éÿhžÍqñ3ÜúŸ×ÿ3ìÿYÀùoÙÐô_ÔO¦µMÿócYÙlà_.ÜúŸÕÿ¢ õÒ€dhúÿêåß趯yçþñ?Uü,Àÿ+šþ_ôk—ׇ\wÃß.íå±eÿþ@„øŸðÿ³ RL ’!æÿžt{é—Ÿtãz†SÿsÿOcÿÏ‚ýúáÿ‘ËÍú_p À?þÇq„ý?ðÿʆ¦ÿþµY³þ§¦õß0DÿG~¯ÊCiö˜„BÓu>=˜Öf lX×3Üñ?ž­ÿ‘ÿã!Q¨ J†¢ÿ€Ãÿ…þ¯,ÐÆmÿ×tþÃýÿYHcØ¿$CÓÿöþ¯þOPÿ•
-Mÿþ/ÔX€ÿK64ý3ø¿°þgñ_64ý¯íÿšê?ÉÔX@öW6Äüßæþ/œÿäÁ~ýðÉåfýoåÿÂþŸø¿dCÓÿÊþ¯ïôˆ±ÿgá“î5f ¹ÐôÏàÿ‚þY€ÿK6ýû^gîíÿÊàÿâ€6þkû¿¦ùŸçÿ˜H”ÚÁ&šþú¡þÃÒ?²¡éŸÁÿ…ýðɆ¨ûC¾/;ýp4¹K§Ný«Yý'ŒÿY¾\ó€DhúgðÂÿÁüŸ²¡éŸ¡ÿÎÿ³ï0H†˜ÿß¾ÿÖÿ,دßÞÿW` ’›õ¿Šÿs¦ÿþoÔîPÁÐôÏÐÿý?Y@ÿ?Ù¬‘ÿWŽg
 òÿÐ?Èÿˆ¦ÿµýßÓóq˜eÐ?*pˆ`(úWþoÜÿÍmüúâþ'ÐÿS64ý3ôÿÄúø?dCÓ?ƒÿõ_àÿ–
-MÿþO¬ÿY@ü—
-Mÿý?QÿaÝ?dCÌÿmßÿûì׏þŸr¹Yÿ[õÿÄþŸ˜?eCÓÿÚþÏyý/ÆþŸ…_«®oÏ…ÍÞ`"Mÿý?¡ÐÿS6‹õ_W6×Oz†þ/ˆÖÿ, ÿ/›åñ¿9Zó‡§õsÄ*ÜÏÿ$	úÿ²à=þ­9êþ’ûq.üÞðÏÿD*Fÿÿ‘·þ‡×²:ÔyqnsûÁ‚g¸ó?Óù?BÔYPÙ8˜„â­ÿ®ÐÃFð1×Ϻ<ŽÇíÇgS¥ygAàÔ2ÕšèÿÁ›þïTôöªÞ^/#sw)ßa~øA!ëÿ±~6mU·žáŽÿ³üo€þ?<4¦=ÔíIW…Æ²Bü¿Î列úO³iüGÿo&ŠºêLûl-¼æ®®öf˜
-öwçᳮх¹kê—á­þð›™ˁ²þ7ÝÿGúð€ý¿l¼õÿPÖ]~,Oår5øëß.   ِãÿIÙ4þCÿ,@ÿ²!×ÿúVWÝxê;·†€ª¸åüç´ÿ_ª°ÿçañ‹†¬ÿMãl„Bÿ þˆ®ÿ²ZMÿÁ4ÿÿ8ø-ÿý¯ûÎÏ>*ܯÿo¦Ðÿ—âø÷åÉäC°?99çÿYý7ŽÑÿ“‡«ÿ+Ɇ „®>°àÃÕ	6¼®ïv×7÷?¬Uÿu¯—ûîõßôü_¬R¬ÿX€”eC¯ÿl¹ÿƒÿƒìÿdCÖÿ¾-ŸÍ÷7ÅÿÅY ýs0ú;«úåþ3.‚—ˆ·þõá`
-¿àîø?;ÿ¦¨ÿ°€óß²!ÇÛø«1f¿àîø?ëÿk¯„…þøù\u禩ÛaJÿS8ê?¥ôý¹2îð}ê?*S¨ÿð°xüûº©õã+áÁ{üà ËÆŸÿñÿz÷O£‹ÏúÑä¥k
-à^ÿÏòÿiŒüèþ)ýu»@óßâ¯ÿ0RÈÿ± ýˆ¨ÿ®|°Y€nÉõô?Ûÿ')ú?²Æ÷Q‚9@,þúïŸZ£÷>3€[ÿ³ûîÿå!L!~ÉܬÿÏpêÿ;ùÿþ?ì×ÿ1ˆ/〩@7®ÿ=Ã_ÿQ¡þÇÂðí>пPë¿hu÷”Wuÿ^—ç÷qëšÿSQŒõ?EtÊtíËd¹þÇûÿHϰ÷¬ÿª4@ý—Ïñï=
-üÇøõhãß•®yÿï¬ÿS"þó¨ð7„~¹Ðô4Ïæ¸ønýÏëÿèÿÈêÿ²¡é¿¨ŸLk{>æöRàܱpëVÿ‹ÔÿYHcL ’¡éÿ«x”£Û~ìûÎ3üãðÿ±€û¿eCÓÿ‹~íòúënøÛ¥½<¨ìoéÿ<‹ÿY ÿ?
-þÑóOº½´ ÈOºq=éÿ¹ÿ'Œ±ÿgÁ~ýðÿÈåfý/8 àÿã8ÂþŸøeCÓÿÚ¬Yÿ›ßÿ6Ì Ð?¿Wå¡4{LB¡é¿:ŸLk3 ¶
-ëîø?»ÿ=Bþ‡D¡(Šþÿ—íÿÿ×öÐÆmÿ×tþÃýYHcØ¿$CÓ?ƒÿþOPÿ•
-Mÿþ/ÔX€ÿK64ýoîÿRÖÿ, þˆ¦ÿµý_Sý'Y€úÈþʆ˜ÿÛÞÿ…ý?öë‡ÿK.7ë+ÿöÿ,Àÿ%šþWö}¯ÿöÿ,|Ò½Æ šþ7÷…Èÿñ ÿ—l(ú8ú…ðq@ÿµý_ÓüOˆóL$Jíà “Mÿþ/ÔXÀõß²¡éŸÁÿ…ýðɆ¨ûC¾/;ýp4¹K§Ný«Yý'ŒÿY¾\ó€Dhúgèÿÿðʆ¦ÿíûÿáþoâ& ÉóÿÛû?±þgÁ~ý#Üÿ'•›õ¿Šÿs¦ÿþoÂø>ü	ºMÿýÿÐÿ“ôÿ“Íùåx†[ÿßÉÿCÿ, ÿ/šþ×öOÏÄQBÿ¨,À	0ÁPô¯8ü߸ÿ›Úø3ôÿÄýO, ÿ§lhúgðcýÇü²¡éŸÁÿú/ðˆ¦†þŸXÿ³€ø/šþú¢þúȆ˜ÿÛÞÿ‰ý?öëGÿO¹Ü¬ÿ­úbÿÏúʆ¦ÿµýŸóú_Œý?¿V]ßž›½ÁD šþúBÿ, ÿ§lë¿®l®Ÿôÿü_)¬ÿY@þ_6Ëãs>´æOëçˆUørÿglõŸ¤üŸxkŽº¿ä~œ¿7üó?‘JÐÿƒädã­ÿᵬu^œÛÜ~°àîüÏtþƒý?YPÙ8˜„â­ÿ®ÐÃFð1×Ϻ<ŽÇíÇgS¥ygAàÔ2Õš(ÔYxÓÿŠÞ^ÕÛëedîv—Ì?(dý?ÖϦ­êvÁ3Üñ–ÿ
-Ðÿ‡‡Æ´‡º=éª0и@Vˆÿ×™àÝt€Sÿi6ÿèÿÁDQWiŸ­…×ÜÕÕÞSÁþî<|Ö5º0wMý2¼ÕÃ~3S`9ðÃ@ÖÿÆûÿ ÷±€ý¿l¼õÿPÖ]~,Oår5øëX ÀÿÁô/rü?é/ÛÄÿ±þ—áþg ِë}««n<õ[C at UÜrþsÚÿ/U8ÿÁÃâ
-Yÿ›Æÿ8‘ÿgñ_6tý—Õjú²¹þ‘ÿgaù‹Æÿßë¾ós
-÷ò«ÌÆø¿·‡8þ}y2ùìOÎCAÎùVÿãõ®þ¯$‚nš|¸úÀ‚W'Øð.¸¾Û]ßüÝÿl°Tý×½>^r@îg¸×áTÿ*Eþ—HY6ôú϶û?ÜÿÂö²!ëß–Ïf‰ûÛ×ÿmãg¨ÿ°0ú;«úåþ3.‚—ˆ·þõá`
-¿àîø?;ÿf¨ÿ°€óß²!ÇÛø«1f¿àîøŸÎüß
-þO~>Wݹiêv˜ÒÁT ŽeúW;Jߟ+ãqý'üAüJ%¨ÿp°xüûº©õã+áÁ{üà ËPÿcÁü¿ÞýÓèâ³~4yéZ¸×ÿádüãýy@ÿ?Ùøë¿¨Ûšÿý‡‘Bÿ7ú—
-Qÿ]ù`³ Ý’ë?è?Æÿ$…ÿ“Þ‡æ ±øë¿jÞûÌ nýGý'*@þŸ…²ŸhnÖÿ‚g8õ¯fñ?HàÿaÁ~ý‡ÿo ÄT Ž×ÿ‹žá¯ÿ(‰àÿgáMÿ‡Ãú—Èbý­îžòªîßëòü>nýOó*BÿWvqªLÇоL–ë¼ÿô+qÏú¯JÔ9ðÿñþÇÐó×Àü‡Pÿg6þ]ùçš÷ÿþ[ÿ§ðrÿ/â?‰
-Cè—MÿGólŽ‹ŸáÖÿ¼þóÿ<àö_ÙÐô_ÔO¦µ=s{)pîX¸õ?«ÿEêÿ,¤1& ÉÐôÿÕ<Ê¿Ñm?v‚}çþñ?
-øÿX€ÿW64ý¿è×.¯¹î†¿]Ú˃Êþ–þϳøŸðÿ³ pþW4Äüß“n/- ò“n\Ïpêîÿ	cìÿY°_?ü?r¹Yÿ øÇÿ8Æý<Àÿ+šþû×fÍúŸšÖÃa€þ9ø½*¥Ùc
-MÿÕùô`Z›°m€\ÏpÇÿxÿ#äÿxH*€’¡è?`ðÙþðmmü×öMçÿ0ŒÐÿ…4†ýK24ý3ø¿àÿdõ_ÙÐôÏàÿBý‡ø¿dCÓÿæþ/•aýÏâ¿lhú_Ûÿ5Õ’¨ÿ°€ì¯lˆù¿íý_Øÿ³`¿~ø¿är³þ·òaÿÏü_²¡éeÿ×÷ú?`ÿÏÂ'ÝkÌ r¡ésÿWˆüðɆ¢ÿˆ£ÿWÿ´ñ_Ûÿ5Íÿ„8ÿÇD¢Ô0¹ÐôÏàÿBý‡Üý#šþü_Øÿ± ÿ—lˆú·?äû²ÓG“»têÔ¿šÕÂñŸ…àËu0H„¦†þð° ÿ§lhúß¾ÿîÿæ!†ÿC4ÄüÿöþO¬ÿY°_¿½ÿ¯À@$7ëÿçLÿ1üß<¨Ý}ˆ€\húgèÿ‡þŸ, ÿŸlÖÈÿ+Ç3HùèŸäÿeCÓÿÚþïéù8^ TàÁPô¯8ü߸ÿ›Úø3ôÿÄýO, ÿ§lhúgðcýÇü²¡éŸÁÿú/ðˆ¦†þŸXÿ³€ø/šþú¢þúȆ˜ÿÛÞÿ‰ý?öëGÿO¹Ü¬ÿ­úbÿÏúʆ¦ÿµýŸóú_Œý?¿V]ßž›½ÁD šþúBÿ, ÿ§lë¿®l®Ÿôÿü_)¬ÿY@þ_6Ëãs>´æOëçˆU¸Ÿÿ3HRôÿeÁ{ü[sÔý%÷ã\ø½áŸÿ‰T‚þ, ÿ#oý¯eu¨óâÜæöƒÏpç¦ó„¨ÿ² ²q0	Å[ÿ]¡‡àc®ŸuyÿڏϦ*Jó΂À©ÿdªÿ4QèÿÁ›þïTôöªÞ^/#s·»¼`~øA!ëÿ±~6mU·žáŽÿ³üo€þ?<4¦=ÔíIW…Æ²Bü¿Î列úO³Yÿ_ø?x(êª3í³µðš»ºÚ›a*Øß‡ÏºF殩_†·zøÃof
-,~Èúßxÿþ<`ÿ/oý?”u—ËS¹\
-þú ¸ÿ‡è_6äøÒ_¶‹ÿQ†ûŸy€þeC®ÿõ­®ºñÔwn
-UqËùÏiÿ¿TaÿÏÃâ
-Yÿ›Æÿ8‘ÿgñ_6tý—Õjú¦ùø¸ØAþ¢ñßÿ÷ºïü\à£Âýúÿf!úÿ²@ÿ¾<™|ˆ ö'ç¡ çü?«ÿÆ1úòpõ%Yí~
->\}`Ã;õõ]p}·»¾ù»ÿÙ`%¨ú¯{}¼ä€ÜÏp¯ÿ¦çÿb•býǤ,zýgÛýü<`ÿ'²þ÷mùl–¸¿)þï(Î"蟃ÑßYÕ/÷ŸqT"Þúׇƒ)ü€»ãÿìüw˜¡þÃΈÿmã¯Æ˜ý‚g¸ãÿ¬ÿ¯ýúgàçs՝›¦n‡)ýLâX¦ÿ0 ôý¹2îð}ê?*SAŠú‹Ç¿¯›úX?¾~¼Ç?2ôâÁü¿ÞýÓèâ³~4yéZ¸×ÿ³ü£ÿèÿ'ýu»@óßâ¯ÿ0
-°ÿgÝeCÔW>Ø,@·äúúŸíÿ“ûTxF˜Äâ¯ÿþ©5zï3¸õ?»ÿ7€ÿ‡µÑܬÿÏpêÿ;ùÿõì×ÿÑžÀ³`*ǍëÿEÏð×”„8ÿÍ›þ‡ô/‘Åú/ZÝ=åUÝ¿×åù}ÜúŸæÿTaýÏÂ.Nß2Cû2Y®ÿñþ?Ò3¬Ä=ë¿*Q¨ÿrà9þãý¡ç¯ÿø«(FýŸÚøwåŸkÞÿ;ëÿ†ˆÿ<$*ü
-¡_.4ýͳ9.~†[ÿóúŠý?¨ÿˆ¦ÿ¢~2­íù˜ÛKsÇrÀ­ÿYý/DÿWÒ€dhúÿêåßè¶;Á¾óÿøŸ*œÿãþ_ÙÐôÿ¢_»¼>äºþvi/*û[ú?ÏâÀÿÏ‚J1H†˜ÿ{Òí¥@~ҍëNýÏý?¸ÿ	ûõÃÿ#—›õ¿à €ücÜÿÄü¿²¡é¿mÖ¬ÿÍï#ôÿdá÷ª<”fI@(4ýWçÓƒimÀ¶r=Ãÿg÷¿£ÿ‰BP2ýû6²
-÷öáþhã¿¶ÿk:ÿd˜ÿ9HcØ¿$CÓ?ƒÿþOPÿ•
-Mÿþ/ÔX€ÿK64ýoïÿJ±þgñ_64ý¯íÿšê?I3ÔX@öW6Äüßöþ/ìÿY°_?ü_r¹Yÿ[ù¿°ÿgþ/ÙÐô¿²ÿë{ý°ÿgá“î5f ¹Ðô¿½ÿù?àÿ’
-Eÿ‡ÿ+‚ÿ‹Úø¯íÿšæBœÿc"Qj˜\húgð¡þÃîþ‘
-Mÿþ/ìÿX€ÿK6DýÛò}Ù釣É]:uê_Íê?aˆøÏBðå:˜$BÓ?Cÿ?ø?X€ÿS64ý3ôÿÃùâ& ÉóÿÛû?±þgÁ~ýöþ¿[ ‘ܬÿUüŸ3ýÇðó v÷!j r¡éŸ¡ÿú²€þ²Y#ÿ¯Ï åÿ¡ÿ—
-Mÿkû¿§ç?â0‹ TàÁPô¯8ü߸ÿ›Úøoßÿ3ÂýO, ÿ§lhúgðcýÇü²¡éŸÁÿú/ðˆ¦ÿ'Öÿ, þˆ¦†þŸ¨ÿ°€î²!æÿ¶÷bÿÏ‚ýúÑÿS.7ë«þŸØÿ³€þŸ²¡émÿç¼þcÿϯU×·çÂfo0„¦†ûŸ¡ÐÿS6‹õ_W6×Oz†þ/ˆ¬ÿY@þ_6Ëãs>´æOëçˆU¸Ÿÿ3HôÿeÁ{ü[sÔý%÷ã\ø½áŸÿ‰TŒþ, ÿ#oý¯eu¨óâÜæöƒÏpç¦ólKBÐ?*G “€P¼õßzØ>æúY—Çñø¯ýølª¢4ï,œúO¦úOíôÏÀ›þïTôöªÞ^/#s·»¼`~øA!ëÿ±~6mU·žáŽÿ³üo€þ?<4¦=ÔíIW…Æ²Bü¿Î列úO³iüGÿo&ŠºêLûl-¼æ®®öf˜
-öwçᳮх¹kê—á­þð›™ˁ²þ7ÝÿGúð€ý¿l¼õÿPÖ]~,Oår5øëß ƒþ9€þeCŽÿ'ýeËøûŸy€þeC®ÿõ­®ºñÔwn
-UqËùÏiÿ¿TaÿÏÃâ
-Yÿ›Æÿ8PÈÿ³€ø/ºþËj5ýÓü?ü?\ì Ñøïÿ{Ýw~.ðQá~ý3…þ¿,Ç¿/O&"€ýÉy(È9ÿÏê¿qŒþŸ<\ý_IF?Eч«,øpu‚
-ï‚ë»ÝõÍßýÏ+AÕÝëã%ä~†{ý7=ÿ«ë? eÙÐë?[îÿàÿàû?ِõ¿oËg³ÄýMñGqCÿŒþΪ~¹ÿŒ‹à%â­}8˜Âï ¸;þÏ·)ê?,àü·lÈñß6þjŒÙ/x†;þÏúÿÚ-ôÏÀÏçª;7MÝSú/˜
-ıLÿ?QÚþ|eÜá/®ÿŸ«,ˆÐÿ‡…¥ãß×M}¬_·ïÿØþO™ÿ1þÛã=þ_¯þitñY?š¼t.Üëÿp2þq’ÂÿÉ–ÿ²ñÖQ·K4ÿ-þú@ý…ú
-Mÿ]ù`“ Ý’Û?|Ï\â?ú?ñÜ+´ Œ·þû§Öè½×àÿø¿™ø	âÍ­ú_ò§þÿ-ÿ\ü?¸ÿƒûõ¼ÌÁ°	ä¶õÿ²gô'èÿοô8 q,ÕÑêî)¯êþ½&ρ[ÿÓõ¿
-ÔÿYã4Üg:Fì—Ébý×ÿÑža%îYÿ
-²õ_üƼþ1ôý5ð¦¨ÿ³@ÿ®üÓç&@güŸåÿC…øÏC¢ÂßúåBÒÿÑ<›ãòg¸õ?«ÿG
-ûpû¯lHú/ê'ÓÚ–¹½8w-Üú¦õ¿a€þ9HcL ’!éÿ«x”£Û~lûÞ3üãªPÿçæِôÿ¢_»¼>äºþriï*û÷Û?SâŠþÏ<¨€dhù¿'Ý^: ä'Ý8ŸáÔÿ¬þ«ûì×ÿ\nÕÿ’ þëÿ8Jàÿgþ_ِôß¿6«ÖÿÔ´þ*ôÿáá÷ª<”fY@($ýWçÓƒimÀvr>Ãÿãiü‘ÿã!Q¨ J† ÿ€Åÿ•ÀÿÅiüW÷MçÿP%èÿÊBÃþ%’þü_èÿÈ꿲!éŸÃÿ…úðɆ¤ÿÖÿ, þˆ¤ÿÕý_³þOiˆúÈþʆ–ÿÛÞÿ…óŸ<دþ/¹ÜªÿÍü_èÿÆü_²!émÿ×wú?àþG>é^c
-Iÿþ/èŸø¿dCÐÄáÿ²ýŸáÿÚÒø¯îÿšæBœÿc"Qj˜\Húçèÿ…ú¸ÿK6$ýsø¿°ÿcþ/ÙÐôoÈ÷e§Ž&wÊÔ©5Õ¬pþŸ‡àËu0H„¤ÿ'ü,Àÿ)’þ9úÿáü?ñ€dhù†þXÿ³`¿þ·ûÿ
-läq«þ×ñNý_q” þ³Þ+lCÒ?Gÿ?ÜÿÁúÿÉf…ü¿r=ƒ”ÿ‡þY@þ_6$ý¯îÿž­ÿÃç¿XPY€@Cпbéÿ‰û¿Y ?GÿOÜÿÄúʆ¤ÿ7Ö, ù+’þ9üߨÿ² ÿ·lHúçðbýÏâ¿lHúçèÿ‰úèþ!ZþÁÿ‰ý?öëGÿO¹ÜªÿÍú¢ÿèÿ)’þW÷Îë)öÿ,üZu}{.lú3@Húçèÿ	ý³€þŸ²Yªÿº²¹~Ú3ü×ÿA¡þÇòÿ²Yÿ›ó¡5øZ?G¬ÂýüŸ}ÿ“ßñoÍQ÷—܏{á÷†ÿüØÿñ€ül|õ?¼–ա΋s›Û–<Ýÿ™ÎÿQ£þË‚ÊÆÀ, _ýw…6‚¹~Öåq<þk?>›ª(Í{§þ“©þÓ8Dÿ?Þô§¢·Wõöz™»ÝåóÃ
-Uÿõ³i«º]òwüŸæ£÷¿òИöP·']Èíñÿ:¼Ÿpê?Ífþoôÿ桨«Î´ÏÖÃkîêjo†©`w>ë]˜»¦~Þêá¿™)°øa êëý?úð€ý¿l|õÿPÖ]~,O¥‡üõ&1îÿaú—
-5þŸô—Mã?îæú—
-µþ×·ºêÆSß¹5TÅMç?§ýÿÒ ûv¿h¨úß:þGÈÿ³€ø/²þËj=ýÓü?ü?\ì Ñxïÿ{Ýwž.ðQá~ýÓýY _žL>D û“ûPsþŸÕãý?y¸ú¿’,ŒÒŸv®>°àÃÕ	6¼®ïv×7÷?¬Qÿu¯—Ђg¸×³þ*ÀúHY6äúÏÆû?ø?xÀþO6TýïÛòÙ,r“üß±Bÿ/FgU¿ÜÆEðñÕ¿>Láy Üý…îfç¿eCÿ¶ñWcÌ~É3ÜñÚÿ7Ê"ø¿Xøù\u禩ÛaNÿs8–é?ŠIÞwø‹ë?ç2¥Pÿaañø÷uSëÇWÂ/‚÷ø‡A–…üÇÿëå?.>ëG“—®E€ßúߎœ&Èÿ±€îŸ²ñ×Q·4ÿ-þú#äÿxÀõ²!ê¿+l [éþtÿ“ù?Âø>J0ˆÅ_ÿýSkôÞgpë?šè?Qαa š›õ¿àNý«YüøÿX¾ýøãu0ˆãÆõÿ¢gøë?JPÿãaøöè_(‹õ_´º{Ê«º·Íó»¸õ?Íÿ©(ÆúŸ§‘ÊtíËd¹þÇ Iϰ÷¬ÿªT¡þËçø@†›žÿ½Ìÿ	êÿ,ÐÆ¿+ÿô¸Ðÿÿ­ÿÓXÿÿyHTøB¿\hú?šgs\ü·þçõÿûàÿ‘
-MÿEýdZÛô1··çŽå€[ÿ³ú_„ó?<¤¨ÿ‰†¦ÿ¯àQþnû±ì;ÏðÿiÀÿÇîÿ–
-Mÿ/úµËëC®»áo—öò ²¿4!þgèÿŃJ1H†˜ÿ{Òí¥@~ҍëNýÏý?!îá!€ÿG47ëÁ ÿøÇöÿ,Àÿ+šþû×fÍúŸšÖÃ0N ~¯ÊCiö˜„BÓu>=˜Öf l ×3Üñ?žÆÿù?…
- d(ú8ü_ü_ÐÆmÿ×tþ·Ìÿ¤1ì_’¡éŸÁÿÿ'¨ÿʆ¦ÿê?,Àÿ%šþ7÷©ëÿeCÓÿÚþ¯©þ“,@ý‡deCÌÿmïÿÂþŸ… þ/Ñܬÿ­ü_Øÿ³ ÿ—lhú_Ùÿõ½þØÿ³ðI÷3€\húßÜÿ"ÿÇü_²¡è?âðEðq@ÿµý_ÓüOˆóL$Jíà “Mÿþ/ÔXˆ }ÑÐôÏàÿÂþø¿dCÔ¿ý!ß—~8šÜ¥S§þÕ¬þFˆÿ,_®ƒ€y@"4ý3ôÿƒÿƒø?eCÓ?Cÿ?œÿg!Þa1ÿ¿½ÿë{ÿ_-€TnÖÿ*þÏ™þcø¿yˆ‚û(îÅBÓ?Cÿ?ôÿdýÿd³Fþ_9žáÖÿwòÿÐ?Èÿˆ¦ÿµýßÓóqDÐ?*pˆ`(úWþoÜÿÍmü·ïÿãþ'ÐÿS64ý3ø¿±þcþÙÐôÏàÿFý—ø¿eCÓ?ƒÿëÿeCÓ?CÿOÔX@÷ÙóÛû?±ÿg!@ÿOÑܬÿ­úbÿÏúʆ¦ÿµýŸóú_‚ý?¿V]ßž›½ÁD šþî†þY@ÿOÙ,Ö]Ù\?éþù¿ RXÿ³€ü¿l–Çÿæ|hÍžÖÏ«p?ÿg¤èÿË‚÷ø·æ¨ûKîǹð{Ã?ÿ3LÿèÿÁò?²ñÖÿðZV‡:/Îmn?Xðwþg:ÿÇAˆú/*G “€P¼õßzØ>æúY—Çñø¯ýølª¢4ï,œúO¦úO…þ,¼éÿNEo¯êíõ22w»Ë懲þëgÓVu»àîø?ËÿèÿÃCcÚCÝžtUh\ +ÄÿëLðn:À©ÿ4›ù¿áÿࡨ«Î´ÏÖÂkîêjo†©`w>ë]˜»¦~Þêá¿™)°øa ëãý?úð€ý¿l¼õÿPÖ]~,Oår5øëX àþ ِãÿIÙ.þGîæú—
-¹þ×·ºêÆSß¹5TÅ-ç?§ýÿR…ý?;ˆ_4dýoÿãa ýs€ø/ºþËj5ýÓü?ü?\ì Ñøïÿ{Ýw~.ðQá~ý³ýY Ž_žL>D û“óPsþŸÕãý?y¸ú¿’Ì6]	?\}`Á‡«lx\ßí®oþî6X	ªþë^/9 ÷3Üë¿éù¿X¥Xÿ± )ˆ^ÿÙvÿÿØÿɆ¬ÿ}[>›%îoŠÿ;гúç`ôwVõËýg\/oý
 ëÃÁ~ÀÝñvþ;ÌPÿaç¿eCŽÿ¶ñWcÌ~Á3ÜñÖÿ7Pð±ðó¹êÎMS·Ã”þ¦qLõ_uçYÞq2îð—ÖÔðùð>ŒQÿáàûã¿?•+þøf	ÆŸƒ÷ǿܯõ+à7þÊŽj×ÿÿíùËñ/ž†ÊnXëµ¥^~ßã÷þOMÆ?KÑÿ•,ùdó—úoÚz.úüÙ´Ýû×»9që?ý÷øüÿ<ü/ó|‡ÐrùKýÚ¯ö‹ºü¼[ÿñdýŸÙ%ôÏÀ?ÿëÔ/˜Eñ¿Ò'Zç÷Ný«éþ?Sø?Xøô¿þùü_ÿõOÌBùKý½>öލ[ÿÑDÿi¡þÂ
-ÿ›JþÛ°áú	S€DÜú¿}àÔNã¿
-‘ÿcá>Õ¦*¿Üý¿¦xªêcýXšîîôûÿ
-ӁþZÿµn÷·®þ)ëÿ4…ÿ‹¬ÿe³@ÿæÏ{ýH}†;ÿ§¦ñ?áÿf—ÍýßXý#ÔÿTÇÐ?¨ÿÉæ¯óÿöpÐí.0«p?ÿW:öÿÿk{Œÿ‹þlÎÍ
-Ïð[ÿþ¯0ÂüϦ~Ùü¥þÏæÙT·ÿÖ»ôÎü©RèÿÁÂýߟþù?~ýçÿó¿Cþ‡çê-üm:Øfƒ‡?jÿç§ÿùÏÿOݧÿxØÿ«jôî¹úç}úGS½e’þÑ<·Ã¢2üG{ùƒöë´oP\þ èÃhxßþSÐßÈ"ÿÇù\.9ç÷Îø'Óý_ÂÿÅBìvqü)¸CßúO¥îÿûî§ÿ¼ÿÏ$øÏL%ÿ]Åÿ'üÀ,:ÿ±¹ÿ{²þÇ”ôÏ ´-›%þÓ¿꿳úOàü×E=æ™,Šÿýk³©ÿûÛþ?—ü_ ÿÇBAù’YTÿ½Ñ êÖÿìüW˜ÀÿÅÎÉfþoìþ@9ÿú¾ê$Ív8ÿ!’Eëÿ „ü_ˆû?x€êeó—ú?Õ{},õÂ6¿ïâÒÿ°ÝŸú¿â ç?Y@Ù_6ë7e üöÿ—þo¨ÿó€ý¿lù¶îÿ8ßÿ§!ê,`ÿ     ‹ÿ”fÔr p5 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/48amd64-4d2n6c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,222 +0,0 @@
-Machine (phys=0 total=100661148KB AMD DRACHMA)
-  Socket #0 (phys=0 total=25163676KB)
-    NUMANode #0 (phys=0 local=8386460KB total=8386460KB)
-      L3Cache #0 (5118KB)
-        L2Cache #0 (512KB)
-          L1Cache #0 (64KB)
-            Core #0 (phys=0)
-              PU #0 (phys=0)
-        L2Cache #1 (512KB)
-          L1Cache #1 (64KB)
-            Core #1 (phys=1)
-              PU #1 (phys=1)
-        L2Cache #2 (512KB)
-          L1Cache #2 (64KB)
-            Core #2 (phys=2)
-              PU #2 (phys=2)
-        L2Cache #3 (512KB)
-          L1Cache #3 (64KB)
-            Core #3 (phys=3)
-              PU #3 (phys=3)
-        L2Cache #4 (512KB)
-          L1Cache #4 (64KB)
-            Core #4 (phys=4)
-              PU #4 (phys=4)
-        L2Cache #5 (512KB)
-          L1Cache #5 (64KB)
-            Core #5 (phys=5)
-              PU #5 (phys=5)
-    NUMANode #1 (phys=1 local=16777216KB total=16777216KB)
-      L3Cache #1 (5118KB)
-        L2Cache #6 (512KB)
-          L1Cache #6 (64KB)
-            Core #6 (phys=0)
-              PU #6 (phys=6)
-        L2Cache #7 (512KB)
-          L1Cache #7 (64KB)
-            Core #7 (phys=1)
-              PU #7 (phys=7)
-        L2Cache #8 (512KB)
-          L1Cache #8 (64KB)
-            Core #8 (phys=2)
-              PU #8 (phys=8)
-        L2Cache #9 (512KB)
-          L1Cache #9 (64KB)
-            Core #9 (phys=3)
-              PU #9 (phys=9)
-        L2Cache #10 (512KB)
-          L1Cache #10 (64KB)
-            Core #10 (phys=4)
-              PU #10 (phys=10)
-        L2Cache #11 (512KB)
-          L1Cache #11 (64KB)
-            Core #11 (phys=5)
-              PU #11 (phys=11)
-  Socket #1 (phys=1 total=25165824KB)
-    NUMANode #2 (phys=2 local=8388608KB total=8388608KB)
-      L3Cache #2 (5118KB)
-        L2Cache #12 (512KB)
-          L1Cache #12 (64KB)
-            Core #12 (phys=0)
-              PU #12 (phys=12)
-        L2Cache #13 (512KB)
-          L1Cache #13 (64KB)
-            Core #13 (phys=1)
-              PU #13 (phys=13)
-        L2Cache #14 (512KB)
-          L1Cache #14 (64KB)
-            Core #14 (phys=2)
-              PU #14 (phys=14)
-        L2Cache #15 (512KB)
-          L1Cache #15 (64KB)
-            Core #15 (phys=3)
-              PU #15 (phys=15)
-        L2Cache #16 (512KB)
-          L1Cache #16 (64KB)
-            Core #16 (phys=4)
-              PU #16 (phys=16)
-        L2Cache #17 (512KB)
-          L1Cache #17 (64KB)
-            Core #17 (phys=5)
-              PU #17 (phys=17)
-    NUMANode #3 (phys=3 local=16777216KB total=16777216KB)
-      L3Cache #3 (5118KB)
-        L2Cache #18 (512KB)
-          L1Cache #18 (64KB)
-            Core #18 (phys=0)
-              PU #18 (phys=18)
-        L2Cache #19 (512KB)
-          L1Cache #19 (64KB)
-            Core #19 (phys=1)
-              PU #19 (phys=19)
-        L2Cache #20 (512KB)
-          L1Cache #20 (64KB)
-            Core #20 (phys=2)
-              PU #20 (phys=20)
-        L2Cache #21 (512KB)
-          L1Cache #21 (64KB)
-            Core #21 (phys=3)
-              PU #21 (phys=21)
-        L2Cache #22 (512KB)
-          L1Cache #22 (64KB)
-            Core #22 (phys=4)
-              PU #22 (phys=22)
-        L2Cache #23 (512KB)
-          L1Cache #23 (64KB)
-            Core #23 (phys=5)
-              PU #23 (phys=23)
-  Socket #2 (phys=2 total=25165824KB)
-    NUMANode #4 (phys=4 local=8388608KB total=8388608KB)
-      L3Cache #4 (5118KB)
-        L2Cache #24 (512KB)
-          L1Cache #24 (64KB)
-            Core #24 (phys=0)
-              PU #24 (phys=24)
-        L2Cache #25 (512KB)
-          L1Cache #25 (64KB)
-            Core #25 (phys=1)
-              PU #25 (phys=25)
-        L2Cache #26 (512KB)
-          L1Cache #26 (64KB)
-            Core #26 (phys=2)
-              PU #26 (phys=26)
-        L2Cache #27 (512KB)
-          L1Cache #27 (64KB)
-            Core #27 (phys=3)
-              PU #27 (phys=27)
-        L2Cache #28 (512KB)
-          L1Cache #28 (64KB)
-            Core #28 (phys=4)
-              PU #28 (phys=28)
-        L2Cache #29 (512KB)
-          L1Cache #29 (64KB)
-            Core #29 (phys=5)
-              PU #29 (phys=29)
-    NUMANode #5 (phys=5 local=16777216KB total=16777216KB)
-      L3Cache #5 (5118KB)
-        L2Cache #30 (512KB)
-          L1Cache #30 (64KB)
-            Core #30 (phys=0)
-              PU #30 (phys=30)
-        L2Cache #31 (512KB)
-          L1Cache #31 (64KB)
-            Core #31 (phys=1)
-              PU #31 (phys=31)
-        L2Cache #32 (512KB)
-          L1Cache #32 (64KB)
-            Core #32 (phys=2)
-              PU #32 (phys=32)
-        L2Cache #33 (512KB)
-          L1Cache #33 (64KB)
-            Core #33 (phys=3)
-              PU #33 (phys=33)
-        L2Cache #34 (512KB)
-          L1Cache #34 (64KB)
-            Core #34 (phys=4)
-              PU #34 (phys=34)
-        L2Cache #35 (512KB)
-          L1Cache #35 (64KB)
-            Core #35 (phys=5)
-              PU #35 (phys=35)
-  Socket #3 (phys=3 total=25165824KB)
-    NUMANode #6 (phys=6 local=8388608KB total=8388608KB)
-      L3Cache #6 (5118KB)
-        L2Cache #36 (512KB)
-          L1Cache #36 (64KB)
-            Core #36 (phys=0)
-              PU #36 (phys=36)
-        L2Cache #37 (512KB)
-          L1Cache #37 (64KB)
-            Core #37 (phys=1)
-              PU #37 (phys=37)
-        L2Cache #38 (512KB)
-          L1Cache #38 (64KB)
-            Core #38 (phys=2)
-              PU #38 (phys=38)
-        L2Cache #39 (512KB)
-          L1Cache #39 (64KB)
-            Core #39 (phys=3)
-              PU #39 (phys=39)
-        L2Cache #40 (512KB)
-          L1Cache #40 (64KB)
-            Core #40 (phys=4)
-              PU #40 (phys=40)
-        L2Cache #41 (512KB)
-          L1Cache #41 (64KB)
-            Core #41 (phys=5)
-              PU #41 (phys=41)
-    NUMANode #7 (phys=7 local=16777216KB total=16777216KB)
-      L3Cache #7 (5118KB)
-        L2Cache #42 (512KB)
-          L1Cache #42 (64KB)
-            Core #42 (phys=0)
-              PU #42 (phys=42)
-        L2Cache #43 (512KB)
-          L1Cache #43 (64KB)
-            Core #43 (phys=1)
-              PU #43 (phys=43)
-        L2Cache #44 (512KB)
-          L1Cache #44 (64KB)
-            Core #44 (phys=2)
-              PU #44 (phys=44)
-        L2Cache #45 (512KB)
-          L1Cache #45 (64KB)
-            Core #45 (phys=3)
-              PU #45 (phys=45)
-        L2Cache #46 (512KB)
-          L1Cache #46 (64KB)
-            Core #46 (phys=4)
-              PU #46 (phys=46)
-        L2Cache #47 (512KB)
-          L1Cache #47 (64KB)
-            Core #47 (phys=5)
-              PU #47 (phys=47)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	8 NUMANodes (type #2)
-   depth 3:	8 Caches (type #4)
-    depth 4:	48 Caches (type #4)
-     depth 5:	48 Caches (type #4)
-      depth 6:	48 Cores (type #5)
-       depth 7:	48 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,33 @@
+Machine (phys=0 Backend=Linux)
+  Socket #0
+    L3Cache #0 (4096KB line=128)
+      L2Cache #0 (256KB line=128)
+        L1Cache #0 (16KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+  Socket #1
+    L3Cache #1 (4096KB line=128)
+      L2Cache #1 (256KB line=128)
+        L1Cache #1 (16KB line=64)
+          Core #1 (phys=0)
+            PU #1 (phys=1)
+  Socket #2
+    L3Cache #2 (4096KB line=128)
+      L2Cache #2 (256KB line=128)
+        L1Cache #2 (16KB line=64)
+          Core #2 (phys=0)
+            PU #2 (phys=2)
+  Socket #3
+    L3Cache #3 (4096KB line=128)
+      L2Cache #3 (256KB line=128)
+        L1Cache #3 (16KB line=64)
+          Core #3 (phys=0)
+            PU #3 (phys=3)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	4 Caches (type #4)
+   depth 3:	4 Caches (type #4)
+    depth 4:	4 Caches (type #4)
+     depth 5:	4 Cores (type #5)
+      depth 6:	4 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,12 @@
+BZh91AY&SY[Vô¢ !¥ÿð(Î?ÿøõo^€ÿïßð  € jø`_ö„[ÆÚ€      ãC@ѦFš4ÈL 
+ 4È	56AIµQ‘ˆ1€ b@  
+?T"ž§þª¤  &É€  	€ Œ	OISÔi@ €   4  Ð 
+F™hÓ 10@ 4€Ó 0&@TžšCLQ‘‘”õ=@
+4ÐÐÑ z&4SÙüI$}!òÈzÃçüà Áî‡ô¿ÏsJ=ïÏèÁ=R	é!PNN‚I'rH””¨‡9$‚nÝê¹"	ØîJ%Ì\–cÀ$’,ÂDÉ,îÌR&ôÁÄSbh¸w$’fwf§²$‚Áª!˜@‰v`áÈ&p …,+F%“"äIŽkR9Z™ôc ª¢Âª¨Ì"2!‘¦(½‹–˜•ª•H«BÒŠ(¢­M ´ ´ª)KKJ¢Ò”ªJJ ¢ÐªJ5*Š…]dhP—$3•Zi«ERƒM–Ô€E¢ÀŠhšdÊQƒ=äY|“Z^“V/ieå´LÉ$l”D7BÌI"‘Jª-%(‘UE	T‚))üw&©²}ÔþgióÀï¥Ï$’ImHBBí!r	 ¸;]hg†…^AxhQ?¿kÖ¢Þ
+ÉÌf>‚I#ò‘r!ãêí±’ÖmˆãNštÚ¬ªµ^¹fH{ð&D’0`9ç{[•ïkUïW¿”à3Æ3kklýéŸ:ªäÝ­ÙwwwrK.ÀÓJ              Bffd™™™®ˆŠÊ"Š–²"ªDUHŠ©ZBH­‚ÅÊ9)vÝÍ †W€È4c$ÁM2ÌÌÊ!R(ˆ¢Š"ª"¥J•@îîäU[¡VâI,2Û… ÎfÃUz¹OµÜ•ä$‘s3ad„‡£n˜ôY#^ë_Upós¿ÎÅD(²QJ%¢†FS¢Ôܐµ$$:É$Zÿ”~AEø'"uÞ÷0|3á‘ðCkÞ/2O†|)yrì½yYªÊ„„¢SJººª®w‹o]j£Ã%?—ͱû²¤=èKIGq$GµLëqÙ–{yMg¢˜•T›H¶V\!zWÚŨI+Z	j„EU®Ú”÷,¶“}°¾êcýGÆŸ!Ð<Æú*!DTPýc|äãêU„‘Þ’$QŽŒoÆaÒ¶k±ii¼Z,¢¥*©3G¦Å¢DTûulYjå¼’FfüÊ$FHϸ¨Ý%†$çy‚£5­h±$Šœ*eärÍŸS.%ö˜½²ÅMôu$²h…¡U%–KMéÀïð:Ž4TBˆ¨¡³S%:ïÊ,c-Ãqt子ÈFiŸUó„Á‘™‚ˆÎŒ¹^ñΤK”‹*ªDب¢Æ‘U"“:‡OG=21yMÍ«•¬·17Òn¢¢EE
+éËvû¤â8±KË¢­%ª*	Ê2Tb8¯JeRœcLíji ˆ°’qL¥HªIt
+ËHÙ³v«Öe±Œ3Ú e•…’eKdI#qÞD0a‚‹+A¡³ú¸øl·2ý ž2S!LÿMoà%çü²š§ª¢YƒEÐQ¦òÍÍc€—œUæ©ê¨‚`ÑtE)¼…3sXà%çyªzª …˜4]Jo!LÜÖ8	yÅ^jžªˆ!˜Îhµ¬9€C±âvYiáž.Ë;3¹A;£)IU¡$íÄËR¡hDv±¸‘FÆX½ï™ZÈË9¨›¯¿Y=u›U4²¥MfÍ+„½\ÜyfÖÓµÔUU(®ý¤’.Ã^òÅ54,+ª«iR´U㌂Õ/{UÕ,Îòé$Žñ
+YT¢šfk‘ãN&CL´g¬¶Ï{Y™TõüTøåŸ-Oߏ¯ý•Å:Ú!qkò-õWûû>_^#3°5¼Ÿ)»Ü¦N/÷ïß¼búÜšs|_8s#„:ƒð…þn½‚ÁcPÔÔŽ’=gþ$‘Þš_ëùȇÐ=¯ìvo>¿FƱ[àúìI#´;Cý§ þá¿Û´ù$‹³êЈUŽJ„‘‚!p¨˜ˆ’7…v—ÿ:ƒr&
+aBHÈ!^Àï’¤R©G>ÄŽePBÛ³ÙeV]ñd±•lp
+2˼<|rˆÔ2GŠxpÁA–¤’(8ÂHâáLƒ½GÞêxrëëxaFH®‚I‹‘½7‡!ǹcÆwÏI$ŒÃAÌ(ðBHÔ{ƒ€ÿŸÂI#¸!AÙCÑÒ{˜íîr‰ÞÐä˜yУ ;¡çíîÝnî$‘ÖûˆÝ"Hö¦AHi{ìI##_vß÷ŽÚ†ˆûÍÒkêeÃÓYÁãåÝਊ#ˆ:‰$dG„=Ò8™ö¿Êtq=?c®ƒÔy„en	"E‰$x Àò1| õĶÚ$‘Õ‘áG"IwèóÔ$Š‘$Z$‘`îöÉ$saCƒ@ßÒ+hI"ú	#hIÉF}%$’/„‘–ŒÎ¤Ð,Gx48`èÌ:bD‹vã„ÅAo°’G²HŠ‚yCsBX4p„:¾Er
+H’5a$l,"IÿÅÜ‘N$Õ½(€
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,14 +0,0 @@
-‹ Ö9K í_oÛFÅóœOá°ÙΐußZEƒÝ4Ašb$²(PTºÚO¿”ä$úãÚ¼³™³ÝóC[;kʼ:äðòÌß”¹ã×{•3P„°ûj‹`ö¶Þï¿>òÊZg\0Æ[÷ÊX‚u¾§/lÖ}ÙÝܼº›µ³E³|f»º[#Þÿ¹þ«®­}ÆÕßf!3Æ
-ßë‚
-¬?‚/õ_o“F×ßcõÏ
-Çú#8©ÿ´þÔTõ7ÿÈëï‡XOÖø¾¯¾ÙÇ@^ÿyÃú#x®þÕjóM>cëï
-ÎCýsë-ëà¥úÿºÿöC ª¿Ûé¿nX£êß·«vÑζ‘Éù?…nòœõ‡ «?ïêr:Y7wᚍ=»ûC½Ÿ®¿sgõÏŠÝõß$ýÍQ^ÿÏ%øËãWÿúýŽ™þWóíº©ÊÅdUV÷嬞4ÓûxQÿ&;Ó¿»ñõŸž7–‚׌LÿUۍÔü1/ëÿüú?ÜPÿ寚ýGÿQãï¨ÿëf”þ«²š×ñ]@qÿ×øü‚ þÍrZÿ+¦,ïÿYçÙÿƒ ¯ÿºùw-ÛÇËãÿp>þ·™ãõùßyÉ׋\ÿeßwÍݦ¯G«áEýÛ‹ñ¶;ÿSÿéù½kúúDzºçI@%rý÷ÛÕ·¾þÛóñßpýÔ?‚ËæcSO©~¥Èõ¿¨?ÕÑ>búÿ9¯ÿ•¯¹þ«v^wõ²ÚN¹ìž¼ØxYÿþLÿÁõÀºïxPŒ\ÿ”Ûõ¤ý8)×ë¶jʾùÔôÛg÷!¿þ‡@ýc úuÑÿŸ—]=/LÊÕ˜}ÈŸÿ{›ñù?>ÿ׍\ÿËÍÃ]ÝíF 뺥ùøßÛ‚ú‡àBNÅ+Fªƒòpþ?yýSø?ÎÏÿÀ÷,íª‘ë?…ÿãÜÿ•ežÏ!ìýïç]»™Íy"Ї\ÿ	üOù?yý‡ð¶ìKê^/rýƒüôCàôoÝÈõŸÂÿqžÿlAÿ„œ|T#×?ÈÿÁû”¿n"úÿÿûÿèÿЍ\ÿ)üùo6Ï©ÿëFªÿåÿ`þyýSø?òËç?ìÿ@ðæ–ÅÈõÊÿ`ÿó?t#×?(ÿƒ÷˜ÿ¡¹þAþ^ÿ!dT¾jäú‡ä얁¥þ0ÿC7rý§ð\ø¿r®ÿÁrú¯j"úÿ˜üú¿!Ðÿ¡¹þSø?Îçy[dÔ?g<o #Õ¿Eù?2ú?ÈëÉÿÈØÿÀüÝÈõŸÀÿaì¥ÿƒý¿näúOáÿ¸¼þ{^ÿ!¼[®ûnSõM»ä©@!rýƒüìÿ@`þ‡näúåÐÿóÿt#×?(ÿƒþo”¿n"úÿÿïÿ!Ðÿ¡¹þAùÌÿÀñ¿nFè?&òㄱþïlpnxÝ;Ký FÕ¿oWí¢m#?cëÿõüoòœõ‡ «?ïêr:Y7wᚍ=òñVðù?†óñ?Í ºé5ß
 ®›ª\LVeu_ÎêI3±ˆñðœÿá
- ªF¦ÿªíFjþyÿ¸ þ!Ê_5úŽþ£ÆÿÞQÿ8þ×Í(ýúÿÑûõÿl±ëÿ˜³ÿƒ@PÿýóÇüç«B^ÿóÿžXÿ“þ_.p fäúgþó5ÁügÝÈõÏüçk‚ùϺ‘ëŸùÏׄ£òU#×?óŸ¯	æ?ëF®Èü¿œúÇ@õë&¢ÿÏüç+‚Ïÿu#׊ùçãoêÂ0Ô¢â#Õ¿aþóU!¯?óŸ¯	æ?ëF®ÿþsÿW–y>ÿ…°÷¼Ÿwíf6ç‰@rý'ð<áÿdþ3†·e_R÷z‘ëŸùÏ×§ëF®æ?_ÌӍ\ÿ̾&(ÝDôÿ™ÿ|EÐÿ¡¹þ™ÿ|Mpü¯©þc £ǘ ¯
-ÿG~éÿ`ÿ‚7·t€(F®Pþû?˜ÿ¡¹þAù¼ÿƒÀüÝÈõòðú!£òU#×?(ÿƒëÿ@`þ‡näúOáÿ¸ðå\ÿƒåô_ÕDôÿ1þú¿!Ðÿ¡¹þSø?Îçy[xê3ž’WŒTÿåÿðô ×”ÿÁþæèF®ÿþc/ýìÿ@ øu#×
-ÿÇåõßóúáÝrÝw›ªoÚ%O
-‘ëäÿ`ÿó?t#×?(ÿƒþ/œÿ§¹þAùôC üuÑÿÇø?xÿþÝÈõÉÿ(˜ÿã݌Ќåㄱþïlpnx}P¿áú/FÕ¿oWí¢m#?cëÿõüoòœõ‡ «?ïêr:Y7wᚍ=òñVpþ7†óñ?׃ׅLÿ«ùvÝTåb²*«ûrVOšéˆ}DŒÿ×ÿÀð† U#ÓÕv#5Œ¼ÿ?ÜPÿ寚ýGÿQãï¨ÿëf”þýÿè}ˆú¶ØõLàü/‚úïŸÿ8®ÿ}UÈëŸbþßåúŸ|þÁN ÔŒ\ÿ ügæ¿@`þ³näúå?sþæ?ëF®®ÿ}M°ß§¹þ!ùÏœÿ‚ùϺ‘ëŸë_T¿n"úÿ\ÿûŠàóÝÈõŸbþßùøŸóÿP¸À 4#Õ¿Iîÿÿ‡£ÿ¼þ˜ügÇû?Ì֍\ÿ)üçþ¯,ó|þaïÿx?ïÚÍl΁>äúOàÿ8ñ®ÿ
-ämÙ—Ô½^äúOíÿÿ×€Àéߺ‘ë”ÿLÿæ¿éF®ÿƒ÷ÿ(ÝDôÿ!þöÿ1Ðÿ¡¹þ1ùÏy þpü¯©þ3®ÿ}UÈëŸÂÿ‘_Îÿeÿ‚7·t€(F®Pþû?˜ÿ¡¹þAù¼ÿƒÀüÝÈõÏõ¿¯‰ŒÊW\ÿ üú?!0ÿC7rý§ð\ø¿r®ÿÁrú¯j"úÿ\ÿûŠ ÿC7rý§ðœÏÿô¶àüÎxÞ (Fªÿ˜ÅÀ£üÌÿ€ ¯?(ÿƒýÌÿЍ\ÿ	üÆ^ú?Øÿ@ñëF®ÿþËë?ó?0¼[®ûnSõM»ä©@!rýƒüìÿ@`þ‡näúåÐÿóÿt#×?(ÿƒþo”¿n"úÿ˜üÞÿC ÿC7rýƒò?˜ÿãÝŒÐÌ’/'ŒõxgƒsÃë¶ØÝÐÿ`TýûvÕ.ÚÙ6òƒ0¶þ_óŸM¾[ÿ›õO¬þý¼«ËédÝÜ
-‡j6öpÈÆÿ»úgŸÿa8ÿóy€.dú_Í·ë¦*“UYÝ—³zÒLGìC6þßéßú0¼¡àU#ÓÕv#5Œ¬ÿXÿƒó?1Ê_5úŽþ£ÆÿÞQÿ8þ×Í(ýúÿÑûõÿl±ëÿ˜ÀþAý÷ÏjýoÖ‚¼þ)æÿ=±þ'ó ¸À	€š‘ë?uþs8Ìÿcþ;æ?ëF®ÿÔùϏ×úÿ!0ÿY7rýƒÖÿæõý¾º‘ë?uþs8Ìÿ£ÿóŸu#×
 êùá0ÿú‡@õë&¢ÿŸxþ_8ä?óù?>ÿ׍\ÿ)æÿÿ½-¨.pÍHõ30Êÿaéÿ@ ¯êüçÃóÇû?Ì֍\ÿ)üçþ/®ÿbïÿx?ïÚÍl΁>äúOàÿxÊÿÉë?„·e_R÷z‘ëäÿ ÿû½º‘ë?uþó£ÿƒþ/ÌӍ\ÿ ÿïÿ!Pþº‰èÿCüìÿc ÿC7rý§Î>è?çú8þ׍TÿÊÿáéÿ@ ¯
-ÿG~ùü‡ýÞÜÒ¢¹þAùìÿ@`þ‡näúåðþó?t#×?ÈÿÁë?„ŒÊW\ÿ ü®ÿùº‘ë?…ÿãÂÿ•sý–ÓUÑÿÇäÐÿ
-þÝÈõŸÂÿq>ÿËÛÂQÿœñ¼PŒTÿåÿàúßäõå°ÿùº‘ë?ÿÃØKÿû?(~ÝÈõŸÂÿqyýÏxý‡ðn¹î»MÕ7í’§…Èõò°ÿý^ÝÈõÊÿ ÿçÿéF®Pþýß(ÝDôÿ1ù¼ÿ‡@ÿ‡näúå0ÿÇÿºyNÿËvZGØ=.ëÿðÎg‹WÆæn7ÿƒþô¼XÿÝbý9blý¿œÿm‘
-—ÖÀÈúà ½}ýA?_ÿÌæYÈí×cà÷×oø‹þ¬ÿ˜úƒ¾r8P}Ô>^ÿí{8óÿ™œþ»ÂNæMcoMø.{½ÿóC³^ߘÃ÷Û®nfËáÍ²¯»E]~ª÷ÿC(lñzÑVåb²ûŒ|þm?îöc8´ü¿güù?‹ÞGÌù§žÿÓ3²þõC³üØÆíã…ó¿ÝùOÏÿ&ìÿAxýëþL}óKýð¾íËÅ÷7{¬1··ÎÜÜÿx´ÁO]]?¾~s¬ó·ùéÖõôËþ¶ðÎmðCÕ7Ÿ¾þ€7œÜwG¼[–§›ìúÀÇüÜÌæÇïr9Ûàä]žoðöçÍaƒçÍ·M×oO~þM¸uGìµîÊêþÏÞäOÍ¢þg9«×¸áÊiŽÍ_ÊÕêè@ïñø'ü°l—Ç?áÆºüäPï^|_Þ-޶(òãŸðëO¿M>,‡þ°Í÷O½ÉÛͲ:=ާü¶(ïŽ_nßOÔÏ›ÙáלqsùêÑáæ€Îøë¿ÞGÔý_Îë?‚‘õŸ6ÃaNQûx¹ÿþüÏî"ayýÀS®nÆŸÿãÕuþ<ÿ#_ÿ‘f'xñüáÿ¾0ÿÂç|ö|äõ€B¹zþŠs¯2 ¨ 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ia64-4s.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,33 +0,0 @@
-Machine (phys=0)
-  Socket #0
-    L3Cache #0 (4096KB)
-      L2Cache #0 (256KB)
-        L1Cache #0 (16KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-  Socket #1
-    L3Cache #1 (4096KB)
-      L2Cache #1 (256KB)
-        L1Cache #1 (16KB)
-          Core #1 (phys=0)
-            PU #1 (phys=1)
-  Socket #2
-    L3Cache #2 (4096KB)
-      L2Cache #2 (256KB)
-        L1Cache #2 (16KB)
-          Core #2 (phys=0)
-            PU #2 (phys=2)
-  Socket #3
-    L3Cache #3 (4096KB)
-      L2Cache #3 (256KB)
-        L1Cache #3 (16KB)
-          Core #3 (phys=0)
-            PU #3 (phys=3)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	4 Caches (type #4)
-   depth 3:	4 Caches (type #4)
-    depth 4:	4 Caches (type #4)
-     depth 5:	4 Cores (type #5)
-      depth 6:	4 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,8 @@
+Machine (phys=0 Backend=Linux)
+  PU #0 (phys=0)
+  PU #1 (phys=1)
+  PU #2 (phys=2)
+  PU #3 (phys=3)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,9 @@
+BZh91AY&SY,v$˜ ±ÿ„å° @çÿôzfÜ@ÿïßp  P>Ñ•` €R™¦‘¨ýSÐCM4i„#FŒ¡‚P&¢„ 2    Ì`&F F&&	‚biÌ`&F F&&	‚bi€T¡˜ A2†ƒG¨i¡£#mC(x§Á<½¿Æþyú.ŽTïæ¬ê2u¢Žô4°¡
+kÇÎvò,j¦Wtëäl« D(BB^Å[bªâµcÏ&*-}c$/QBD“©
+"J¤r7ø‚Õë)HÓ‹GÔ}ž‚ëõáb´má/»Ä¶Ä6¡¥
+˜—ýYôèãêÌTÃâ „²Fk|ñxØ>EÅ­°®À¦‡ÊÖ+¨[¦D!f¢uOA„5ñ
+Á gpCÁÁ@SMVÿ-OJTÀºZè–ºKÓм•ÃQÑÅdIh(E­Žbì¼F"’¨A¨ˆÓ£F\³io¶Ÿ[¿5óY
+û¤-ÄÝèß*X¶1×Eæ1CmF¨ª'Huév­*“·ÈgN³u‰æì|Áš€ÿyàä‡H'%;K"ˆ ÚK˨xc…ŠzD€d[6Lº¢¨L.<w]„œš§YäZÈ}“É˹ºJ©wUMlG•X×7PC?…Ù(U33›Óª'nùÅEî·Ü8ý3Ö€ŽÊ‰,}°Ô¿x½hD4[!XÏS¦•¦vÚè&áQ@Ñ£wÑ™axúvÛÖ– Ì /]|ªˆËxQ烮îÂ7žÂt‰ž-ƒÛ:#NŒØƒXF¥¦[2¡ü$:¾ïyâu•¥tVEêMÖ§z<¼½E2ï3UԪ˚°¼"‰¾¨xk–ÒªN²¢DU”—A—‰Öƒ­ò«ÔC’6S<ë/:o·1¨˜–Z¦ÆKÕ¿:ÝíH#{DgÐ j8÷}}¦Ëôö–³áý‹9`dbr¾~?õ*‡¯×ìð§³>͏>]”¤¥x÷R%£ý¤b;{â´¥)JP²·óE¢\“^[v÷D§‘´ùЗÈb†93!Á
+_»Ñ7æs¡åíÏ¿##VFxãòB¦½w	›‰VhÓÆ%¼¸
+ÑF4¡n÷HæÑS¥
+ÓWM#tG‰‘µ&ŒèÞ†Fô,ïIBgfÔ†Ëö•0ŠÜ†ËÉØU<ˆÌP:ø˜ôjÛ–G’iº‰IFÓtœ:²IÙBzOJ$ÿÅÜ‘N$‰& 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,9 +0,0 @@
-‹ 4Ö9K í™QoÛFÇýZŠ{Ü€6#ïÈã]ß¶¼t‚}"±µT¨#–,ûôãÙ
-Щ#+¶€bü!°eÙ&Oþ“<R¡õzñ¿ÍN(Â\žQ¶¯‘hûü¢Ï „~ˆÌaæø”‹zä®ë¯6ÎÍ®oÚ›UÝìù\µé¦XдÐ7ý×›ödA0LA…ôìÅôŸ‚'ú/Öwuów{lEà¸ÓûEýÅó3ýµ
-àÌÁ±òÿsý‹îU×µ›wÌ5 ÞéÁååy¸¸|ï®V}}_-\w·^·›¾ZΫvñµ|ÈS–3Þ
-xñéßù¦º¯»ºmô<C÷Ëú~ã´œ“üu>ÿÞNåÈOå(œÒQ_ßV×W]UÞ§€I¿6¿½Z|©›ªX;ÿô×¥ûó‹÷)}øýçèÿ$ÿ5úÄØkùùyþëa°üŸ
-[ç#°`d9’;’ìƒ ;fሠÁ;	ì£ó$ ¸@¥Pîl€ó)³$‰cù&¨U”%9™ CNj7’ZtLÚè%—ÉcJ;¨$BÄàÐçL˜Õ@’¢l
-DòÙ©!p”cÎÉ%`]æÎ€w>{ý#u˜9‰Ú×]$
-i"© ýeÔ+¤@,A
-$/裴3Ô ‚®IƘ)Åb@‚šÜˆœ£^y@Ž#z]Êj núóÞc=¡…§ÿ§w’rÎ>§ùuÉb5B’ÇòQuz2dM¿=Õ}ÞÜ5MÝÜh•ܽ¾.e£Zªèÿ˜ÿÝCw²`Xÿ1 øÈTú?Bëÿ'á{ý—ºiH=ן °é?/é¯Ç}u{¼08@ÿDT‘Lÿ)Ø£¿n‰Ç‰Aúƒèþ.ÑÎÊÎÊhúOÁ+ú—¶èÍApøý4ý'aˆþ}»nWíÍÃØ@88ÿ=D±û“0Dÿõ—‡®^\­>×ËQ>ŠÀ´gþ×Ñçiþ{»¼ÍÿSN1T?
-{ò¿i—ÕQÀý_ «ÿ“ðšþåÞ#ú¿ [‚é?Ãô/·WÇûØê_æú½úÍúrg5–þO'À™ógÇ»ÎbúÓ?Œ÷1JoúOÁ`ýq¼Qúƒé?Ãô_Öú+5‹jœ×ç¿ð|þˆ6ÿMžä¿ŠÆÏÂàúÿ†dSÿY¬þ†a†a†a†a†a†a†a†a†aìã?æuêL P  
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4ppc-4c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,8 +0,0 @@
-Machine (phys=0)
-  PU #0 (phys=0)
-  PU #1 (phys=1)
-  PU #2 (phys=2)
-  PU #3 (phys=3)
-depth 0:	1 Machine (type #1)
- depth 1:	4 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,11 @@
+Machine (phys=0 total=16777216KB Backend=Linux)
+  NUMANode #0 (phys=0 local=8388608KB total=8388608KB)
+    PU #0 (phys=0)
+    PU #1 (phys=1)
+  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
+    PU #2 (phys=2)
+    PU #3 (phys=3)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 NUMANodes (type #2)
+  depth 2:	4 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,18 @@
+BZh91AY&SYãxÝ 
+‡§ÿð @çÿó?ç€ÿïÿð    @ ¨`	<oµciE£@Û†(  øæFF††CÐÈi£@#&@0€`€šM52˜§¨M© Â  4h   ˜M#C!¦ Œ™ €I©d§Šz˜ÑM3ÀCÔÓ 	´ƒLdž 4ЭQ ÐF†Œ€
+11
+44Ð ˜
+”MÑ‘‰O
+yCÔò ôš m ='”ùþ€{ùƒñ
+CŒ÷óƒ…Eã
+®£ÕªëZÖµ­Tò^qÐ̤ˆ ,€°AÏ„~¢ÈÂ$ŒÜBCš)ÚO9–í¶û•QÍÒCCEšÓ/-4ÓabdyŠà¦,²Ã83ˆ0ˆ*¡ÅPRbŠF"Y,lo„ñ–‰|±´—YšŒozç|ځQ%‰IT 	# P°ˆ Œ,ˆ¸7yBÛ%ž¨täC.òiíûw<x»µ~ ×6ôÄVIý!)%$™º|ùï`öÒsçï²øogßá•Ïý–êˆ7ˆ9А‚Ó'^ß³gzÞG„†]ˆÕ¿·­ºD®=0îæ«´…wªAÞÛm§;ã†u
+y qÓ}zòçÚqÐ5~‚Ð­°*…Uxê•DTED{á¦Óc
+J…kµ¬—,Uê÷n5WB׫RÞפ¤ºp†Þ À(6ƒ¶O^0ƒŽ³”ma…³ïòôÛNÝ¡0	†Z4ÒÚ‘aVVfwww¤C$ËŽîîîîîïkh^÷¾«Z×Ï5$“¡Ô$Ã¥(RD‰_[V—>g¯£ç0Ë=ÝÚxŒÈü^®|¼ºÿu~¶¼‘QMZÑ@vöUQQU·ˆDÜ3‡(RD‰ß~Ë)ë~ÜݧÏ÷̈Û#	J}Z½3ùz=Gч¨ì=IåTAÆ ñoå1§>Õ¢`¢”)3ˆ*µXR+Pý­!À,³( :̸K,«Å!ðíñ˜jաפÇ}à ‡Õ²V0Öy4BÏU €Y&{ËÇšŠnÈ ©áh¾¾')YgÒˆ<$ïgÕµï–4êA fñ.™ƒv¹kÙlæù×z¶k»åd´""ųÉû!ͯÓ‚:NœóIZWuj­Wˆ0&9_£@Î Ö¨_V0Ž‚ÅÄJtƒz‚3—ÄoGg/‰AeÛ ÎêoÇ8ñ €l‚È"°­¶G: ˆmÇ•ºº¦ŸùŒ	P²¦kIEŒ¸Y˜n¥•ÅË5±,ªëznÒ—fi- FÁmWUmžÎ‚"%ÀNHÂéšbUEº.0NŒ?kžiØqøJè¨ %|CHV½3Õ(ÜkLưô˜dZ´fû7¿ö¾Iò@ù¾v4À¦˜+JÐøÓåúq½ï}±;ºº§¥xV׉ַ'QN°CºÕ<Õî)¯ØÕk¯sj²	FoO&ʱ[šîFHk87t|>—̪_ƒ`1
+ç´i1 %–þ8â&XÐeËš8Ñ‚¼
+²Èë«,&h¹1}‰°`ZWl×Aª4ˆØËXÍ–Â aaó‹^6¹/aÕÊ~ïVV¶L»6—âc†R¬S
+gªMëVà‚¡ËÁ[G§i®Ë:ÈwüIï¨ÈÞ…paAV6¥MÕKüƧ/›é„Ç&ñük>±3I$¿†÷"¿Cî±KX™OWü+ù:ù
+GØ¥‹5µk
+yºáE„âB‘ØØ·DFKómòóLŒƒ„Ù±WrlÞÓšVAœáú¤à”Ø}e2ª=ÍÇ<mÑ‰”¼ÿSÀ¿–ržóê’v擊e8fYÝ<rñ÷-7qvTã-8áY9röàp5…'ÚQÛ’IPÈÒÐ1Èԁ)¡"É2%°ž)†f‘¡O!‰”ÓT&[wˆÛBÅ">Í#Z‡d©S9gØŒqš¬TõkžG†^¼ä›O]$ž¤Û“ÃHƒÿT®ù$˜Î¥ ¬k’I°Ë÷ð;ZVÒr”¤NicœAWŽ ¶ÄÜmš”ÐáÄÀî’IsΝv§¿¶ å´æãMû<Sqÿ%ŒŠºJmF\dÓÍ$’»£¡vwq9΍ªÎ1ã)œàÐÆæX¤S„©¬:ɱ÷&S½k®O„^ ©½èV~ÔÙ(bNë¶â=acß2JŒžc´sŠE"h°œ";BÒm3œÀ’æÇ²yÓGtwÚu™P*qÂw0ãHñ$‰cà{¢ãaª ôlÆéA鉋YöÌì:äo.\å;:\êˆ9ªüÀQ$ŸƒÝTaI7³îã䛢
+v5›MYæPĺñß*Î Í–i$õ–É$—˜Ï•:¢
+=1²pIDBÓ¬éd’n`j£ïtâžs-¤ç"'O`®)EO^;LŒAòˆ-­:”:I$­MIì”ìÀ¤È
+eI´ÕBÈ  €]ÉáBCà?t
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,10 +0,0 @@
-‹ 4 "J í]ßsÛ6ökõWàñ:“öð›dÞì´n2g2ur}ÔÐ,s,’*I9çüõHJJ¶	2öºí÷ KÜ%ÄÇ] »¢,ÿn8ÿ…7¼ý÷ÑSZD‘ÚüÕQçïGŒqF§TË#Ê×ôˆ¨'둇UÓ¦5!GYºšWeiÚ{ôúäÿ§ßø_ÖUö$7Ápþ%çù‡À.ÿv4ý
-ÁÚñzÿR‰þsüÓÇîÈ]8pþ³åАDE‚p®	BpÂ#ÇŠK‰D©$""¦”ЉզN‰Ym‹ˆŽcž(""{Œi˜é"#B+AX‰4¶šRM¤kŽY†I$ÕF“F]„KʈN¬P-­%­¬.ØFO؆A4Qöžqí9uÁiÛc±}ÑÎt^¶µUŒ“$ždí[KÛ‚˜\´yaì5IEZ5q÷»iÓXm­£õçfZ¯Ê2/ç„m?_,ªìÚÌlÃÏMÕ“`×ÿí0çåeõ¨6züŸQ¡vý_3Šþ­TõO/7Nö“}óÊ,䤮ÒÙEZÎÈïå</Í’.ÚüÆd¤Y-—UÝšÙ$sÎáΖ¹_7tž½þ<©ÍMÞäUi%2þ•’-ojbI§DXŸ'ß,{³üyÌ
-8³.à]¤q«­JeƒÚ"m/«ºØv`R¤Ù•µ»îÐë?ß“7'g/h”ˆ_$ûãÇŒx»ñ¿0xü·óó^ü§ã?ÎLñ¡jÓÅKâÀ´Ô‘]/‘듉•œÖÆl„)É„q'9Y]^šºÙJ¬LR¯Ïye£‰™}Å$Ûœsþ)]îJÉúœãÌ<ï­¸ŒäM™vdœ1Á×’×ùüÊë¶×š“xÝö$o«O÷\©•Üs¥®×wÛq’»íü–×ímç0‹’ukÕykrv½×ÚqY•ïÓ¹ù2¦v•Êô†…t¹ìŒ·ÛMßéEÇLÄ­ó8‰kéCz±øÚœ]”oÎywz>ýXÚ;Þ
-¿ž»¶sR­Ê¬{5[É«ª(òömn_œ8æB$Ü“Ø)jz|îD®ÛíÊÝJþS¤;km‡.V¶ÏÂ.ü¹'ûØ|¹,»ÀW¾äÕÕª¼ÞžÅÝœ·æu57ëšz|Pï°G†øÏæfÖ9¼t‡óÏ]»¿‰×CöÜnølðâsÛ<MpXþG­g…ùìð?³kJ»T}Üû`8ÿJ±ù‡À=üÛ÷­)é6žÿ¨”È?æßnUáÁ¿˜ÿA?ÿ.•û}7ÁàøÏ©rû?äÿéÈV§ÍÕ´¬ZÓ·Ñ³ÿ¿ƒaýüEV¦c8ÿL
-†üC` ÿl¬Qücþü/Wu=ÚÆþ)Æ„ò_d|´üs%‘ˆÿéX#øWã?Býÿê¶É³t1ÍgÃmôóÏ÷ÖÿT!ÿ`‡[ú@
-™ÿåh£æþ@þ›¢6eU}6Ó™Y¤·ƒlôó/wø.]ˆü€Ñô‹­ˆ „ÇÿÑéŸqñ÷ÿ ç_Œ¶1ŠŒÿ âŸBÖÿ$Öÿ È?`ýObýüÖÿ$Öÿ 1€Øúò‚@þáë˜ÿA(ÿàõ?œÿA0 þÃÖÿ0þƒ Ôÿáêë€Àìïa#|þ®ÿ¡ÿƒ ÀúŸÄú °þw؏ÿÀõ?Üÿƒ œàú~ÿýü7îG;¦n°¬>™zÚ¤7y9R¾ÿ“RãüœýAñ_<Ãó¿øü?ù‡þã?ù‡þë? À?lý×ÿ ä¾þñ¡üƒ×ÿñùˆÿ°õŒÿ õðç#äó?ðù¶þ¯ñÿ?€ øç1þƒ ëÿ‡ðø\ÿÇý?Âù®ÿcüAÿüêøûÏ ä¾þ‡ùò_ÿÃïÿ` ÿ°õ?¬ÿ‚ øúÆ„ò^ÿÃýÄØúÆ„ú?xýëÿ à˜ý=h„ÏÿÀÏÿbþüÃ×ÿ0þƒ 뇍ðø\ÿÃý?Âù®ÿaüÁÃü—ÕÌ|ÿ?€]ó=ìÿ¿FÃúøw/ßõЃùçt½þCþŸÁüÏr;PefFØèÿz÷÷ß~ÿŒŽ;€ÃE°ÿÛe`‘.GÙèõ¹ûû_œcý_(xqï|BäGF°ÿ—Öý­«Œ¹ýûüŸ‰hoþÇý­Ó«¼%‚ëXˆÉús‘7
-¡›÷—Umòyi?æekê…IoÌú„8Š&‹ÊÕÝ
-âÎ2™Tí•©7Gd,1tüÓìÿ…)òò²c£Çÿ­çïù¿Àü&RrfŠU›.^’5bÇšÆäúÄS8­ÙÊI$…ˆÞUøØ˜Ù’(3í)gm~óµB$KhÇÄ›2í¨0ME,=…×ùüÊïåtGÁïåžÂÛêÓ×i¾Ìßòº½í´O´ôMüUç­¹H³ëû:yš/Ìûtnš­‚b‚wê,].½tÁ¸ßÉã²*ýˆ¶Ë4¿“Nø!½X|Óª3’ïNϧK{ë[—wuò¤ZÙÍ~÷:;
-ç‹ô¢#–<‘²VóÍeN½§ûRo¸q#
-ŽÀøÏÀóæÿ Ì?pþáóß à”0»‡‹`ÿ‡Îÿá÷¿AПÿË0:üÀöèüÖÿ@ð-ÿǘÔñ€üŸŽt'ÿÇhwò:J0tüÓìÿÐù?œÿA°Éǰ¾üÛÍÿÅLrêe­Ø^þK­¼ÌÛËÿÙxcY÷vóDQ¥©§Ð“ÿc}ù?Ö—ÿc»ù¿ýËÜÏÿ1¦ü«èÉÿ±½ü“vìŒä^þÇZú#¹›ÿS2Š}…ýüŸì^fOþõåÿØ~þ'Œw¸x ÿÇ0ÿ‡@ @  þY‘ È  
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/4qs22-2s2t.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,11 +0,0 @@
-Machine (phys=0 total=16777216KB)
-  NUMANode #0 (phys=0 local=8388608KB total=8388608KB)
-    PU #0 (phys=0)
-    PU #1 (phys=1)
-  NUMANode #1 (phys=1 local=8388608KB total=8388608KB)
-    PU #2 (phys=2)
-    PU #3 (phys=3)
-depth 0:	1 Machine (type #1)
- depth 1:	2 NUMANodes (type #2)
-  depth 2:	4 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,174 @@
+Machine (phys=0 total=4194304KB Backend=Linux)
+  NUMANode #0 (phys=0 local=1048576KB total=1048576KB)
+    Socket #0 (phys=0)
+      L3Cache #0 (8192KB line=64)
+        L2Cache #0 (256KB line=64)
+          L1Cache #0 (32KB line=64)
+            Core #0 (phys=0)
+              PU #0 (phys=0)
+              PU #1 (phys=4)
+          L1Cache #1 (32KB line=64)
+            Core #1 (phys=1)
+              PU #2 (phys=2)
+              PU #3 (phys=6)
+        L2Cache #1 (256KB line=64)
+          L1Cache #2 (32KB line=64)
+            Core #2 (phys=0)
+              PU #4 (phys=1)
+              PU #5 (phys=5)
+          L1Cache #3 (32KB line=64)
+            Core #3 (phys=1)
+              PU #6 (phys=3)
+              PU #7 (phys=7)
+    Socket #1 (phys=1)
+      L3Cache #1 (8192KB line=64)
+        L2Cache #2 (256KB line=64)
+          L1Cache #4 (32KB line=64)
+            Core #4 (phys=0)
+              PU #8 (phys=8)
+              PU #9 (phys=12)
+          L1Cache #5 (32KB line=64)
+            Core #5 (phys=1)
+              PU #10 (phys=10)
+              PU #11 (phys=14)
+        L2Cache #3 (256KB line=64)
+          L1Cache #6 (32KB line=64)
+            Core #6 (phys=0)
+              PU #12 (phys=9)
+              PU #13 (phys=13)
+          L1Cache #7 (32KB line=64)
+            Core #7 (phys=1)
+              PU #14 (phys=11)
+              PU #15 (phys=15)
+  NUMANode #1 (phys=1 local=1048576KB total=1048576KB)
+    Socket #2 (phys=2)
+      L3Cache #2 (8192KB line=64)
+        L2Cache #4 (256KB line=64)
+          L1Cache #8 (32KB line=64)
+            Core #8 (phys=0)
+              PU #16 (phys=16)
+              PU #17 (phys=20)
+          L1Cache #9 (32KB line=64)
+            Core #9 (phys=1)
+              PU #18 (phys=18)
+              PU #19 (phys=22)
+        L2Cache #5 (256KB line=64)
+          L1Cache #10 (32KB line=64)
+            Core #10 (phys=0)
+              PU #20 (phys=17)
+              PU #21 (phys=21)
+          L1Cache #11 (32KB line=64)
+            Core #11 (phys=1)
+              PU #22 (phys=19)
+              PU #23 (phys=23)
+    Socket #3 (phys=3)
+      L3Cache #3 (8192KB line=64)
+        L2Cache #6 (256KB line=64)
+          L1Cache #12 (32KB line=64)
+            Core #12 (phys=0)
+              PU #24 (phys=24)
+              PU #25 (phys=28)
+          L1Cache #13 (32KB line=64)
+            Core #13 (phys=1)
+              PU #26 (phys=26)
+              PU #27 (phys=30)
+        L2Cache #7 (256KB line=64)
+          L1Cache #14 (32KB line=64)
+            Core #14 (phys=0)
+              PU #28 (phys=25)
+              PU #29 (phys=29)
+          L1Cache #15 (32KB line=64)
+            Core #15 (phys=1)
+              PU #30 (phys=27)
+              PU #31 (phys=31)
+  NUMANode #2 (phys=2 local=1048576KB total=1048576KB)
+    Socket #4 (phys=4)
+      L3Cache #4 (8192KB line=64)
+        L2Cache #8 (256KB line=64)
+          L1Cache #16 (32KB line=64)
+            Core #16 (phys=0)
+              PU #32 (phys=32)
+              PU #33 (phys=36)
+          L1Cache #17 (32KB line=64)
+            Core #17 (phys=1)
+              PU #34 (phys=34)
+              PU #35 (phys=38)
+        L2Cache #9 (256KB line=64)
+          L1Cache #18 (32KB line=64)
+            Core #18 (phys=0)
+              PU #36 (phys=33)
+              PU #37 (phys=37)
+          L1Cache #19 (32KB line=64)
+            Core #19 (phys=1)
+              PU #38 (phys=35)
+              PU #39 (phys=39)
+    Socket #5 (phys=5)
+      L3Cache #5 (8192KB line=64)
+        L2Cache #10 (256KB line=64)
+          L1Cache #20 (32KB line=64)
+            Core #20 (phys=0)
+              PU #40 (phys=40)
+              PU #41 (phys=44)
+          L1Cache #21 (32KB line=64)
+            Core #21 (phys=1)
+              PU #42 (phys=42)
+              PU #43 (phys=46)
+        L2Cache #11 (256KB line=64)
+          L1Cache #22 (32KB line=64)
+            Core #22 (phys=0)
+              PU #44 (phys=41)
+              PU #45 (phys=45)
+          L1Cache #23 (32KB line=64)
+            Core #23 (phys=1)
+              PU #46 (phys=43)
+              PU #47 (phys=47)
+  NUMANode #3 (phys=3 local=1048576KB total=1048576KB)
+    Socket #6 (phys=6)
+      L3Cache #6 (8192KB line=64)
+        L2Cache #12 (256KB line=64)
+          L1Cache #24 (32KB line=64)
+            Core #24 (phys=0)
+              PU #48 (phys=48)
+              PU #49 (phys=52)
+          L1Cache #25 (32KB line=64)
+            Core #25 (phys=1)
+              PU #50 (phys=50)
+              PU #51 (phys=54)
+        L2Cache #13 (256KB line=64)
+          L1Cache #26 (32KB line=64)
+            Core #26 (phys=0)
+              PU #52 (phys=49)
+              PU #53 (phys=53)
+          L1Cache #27 (32KB line=64)
+            Core #27 (phys=1)
+              PU #54 (phys=51)
+              PU #55 (phys=55)
+    Socket #7 (phys=7)
+      L3Cache #7 (8192KB line=64)
+        L2Cache #14 (256KB line=64)
+          L1Cache #28 (32KB line=64)
+            Core #28 (phys=0)
+              PU #56 (phys=56)
+              PU #57 (phys=60)
+          L1Cache #29 (32KB line=64)
+            Core #29 (phys=1)
+              PU #58 (phys=58)
+              PU #59 (phys=62)
+        L2Cache #15 (256KB line=64)
+          L1Cache #30 (32KB line=64)
+            Core #30 (phys=0)
+              PU #60 (phys=57)
+              PU #61 (phys=61)
+          L1Cache #31 (32KB line=64)
+            Core #31 (phys=1)
+              PU #62 (phys=59)
+              PU #63 (phys=63)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 NUMANodes (type #2)
+  depth 2:	8 Sockets (type #3)
+   depth 3:	8 Caches (type #4)
+    depth 4:	16 Caches (type #4)
+     depth 5:	32 Caches (type #4)
+      depth 6:	32 Cores (type #5)
+       depth 7:	64 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,75 @@
+BZh91AY&SYo'ôM¿ÿ…×—çyìþÿð5kF ÿïßð "ø`OŸ±  I@ " 7´ fe   }k€ >ø      8: ŒÀÜV=éñÝr’  ^>µÚ’ª•'¡¸õ«‘UO°}Þ>]ॠ	àØHÀ@`fR¸       l
+-ÀæIUL
+
+€   >€#4õ)þªªAþª L010 À ЦŸŸéUF…=@         ©ø&¥UQ‰êb„Ó HÈhi¦†˜&’h¤JšM2i¡¦ƒ!´4@ 2 MÕ*€  2       
+R#QB4Ñ’f£G©é¡åÕ i£ÔiµP
+”ýÿ¬ö€¸ö
+_Ì¥û
+Z&)a1KúE-§*›b`踄Á1TüŠQý&'Hv
+«ô¤VTCØôDªa
+_UB–@–/…"”úóHáðøÓ¨’ü/ý…þÅd”SÙ©$Im;NÐØl6
+†Êªª£a°Øl6
+†ÃeUUQ°Øl6
+†Ãa²ªª¨Øl6
+†Ãa°ÙUUTl6
+†Ãa°ØlI$»NÓ´}ϧtœ«sm“Sé«+ŸœÚ@»xskg!Ôä56ÎÈh9lïRreŒ/ºi¦šhñ»eޤìyJ4¨íÂa†ó%NãÙ'Åcƒé&`÷u·wnÝÒŰîf	Äõš‘íÝ4‚
+ áÃ¨ÊÞìùÛ™á¸ZâîÃ…‘GgvÜ{¸W$Ü j½óµÝÝÛ·»D4gaÚ@¸Y×”Åa6*’¢å”PÝK1”Š	CiCi[LjÚcVÓ*ÆJ±’¬jÚc[mÛh©V2UŒ•c%XÉV2U[LjÚc%XÒH%¶ÑR¬d«*ÆJ±«i[Ld«*ÆJ±¤I$*ÆJ±«i[Ld«*ÆJ±’¬d«I’A+i[Ld«*ÆJ±’¬d«*Æ­¦5¶ÑdD«*ÆJ±³Øvm1«iÆñf‡ÝÛmÞ÷wwww½ÝÝÝÝïwwww{ÝÝÝÝÞ÷vªƒ ww½ÝÝÝÝïwwww{ÝÝÝÝÞ÷wwwwÛd—pçÛM8L&m®â3{k»1Åç®ìÖíÓ³[o®ìÚMK«£¨»»½îîîîï{»»»»Þîîîî÷»»»¶ûl’îÝÛdvûnØ,²Ë,8,ŽÛnØ„¶Û¶Gí¶í‘Øq˶ŠD$A†a†bIa†a†’Fa†a†$‘†a†a‰$a†a†bIa›6Ã{m¶ûm¶Û}®í¦ši¦Ÿ5¶Ûo¶Ûm·Ûd—8sCzÞ·wwww½ÝÝÝÝïwwww{ÝÝÝÝÞ÷vÛmöÙ%[c
+vÓºÞuô’JëÕ׫¯W^®½]zºõuêëÒI$’W^®½]zºõuêëÕ׫¯W^’I$’ºõuêëÕ׫¯W^®½]zºô’I$•׫¯W^®½]zºõuêëÕפ’I$®½]zºõuêëÕ׫¯W^®½$’I%uêëÕמݳ¯W^ÚލÙɼæi¦ši¦šo9Îi¦ši¦›Îs†ši¦ši¦óœá¦ši¦ši¼ç8i¦ši¦šo9Îi¹™™—]™»»½îîîÛ}¶Ûm¾Ûm¶ßm¶Ûo¶É!†Ûm»½îîîîï{»»»»Þîîîî÷»»»»½îíUfÜ3©Ö“MÝÞ÷wwww½ÝÝÝÝïwwww{ݶÛo¶É!†Ûm¶ûm¶Û}¶Ûm¾Ûm¶ßm¶Ûo¶É*ªÒfši¦ši¦$™¦ši¦ši‰&i¦ši¦šbIši¦ši¦˜’fši¦ši¦$™¦šÛm$WZË"jË'á÷Àí>Ï"o?Dd|Ý=,viCyòÇgÊžo–=œDž1bQ‰Ç4z>ˆ–AÄñJ“ÄŽ'©8Å	Å*{aœZ¥cˍǚ:=8¸jãqäL¦¢f<¸ÜHã)™ŠTÌj¦âG‹hèÃ…3ˆ<e9q¬ƒLÇ.5–©XòãqäL¦¢f1£Ñ—Kg‘3¸ÜZâ©Ëf¢f<¸
 ÜbãY™‰ÌB'›Ë\V<¸Öj&cЗÍ.;:±\ûW	ðø‚ôô…£M"U8‰TÚ–'}›ë€ ó˜Àá´ãm#ßÒœ©	à‰µr4YˆÎÜס|xŒéÚaÙÅr–ÒÚ[Kh¢Š”
+Î%*¥FÕS0¨‰–Ú«˜QËKm«˜Q2ÒÚ[Km¹…--¥´¶—(\¥´¶–ÓÄr–ÒÚbLG)m£l•aˆŒF#ˆÄUE
+
+ÈU‚Á´¬,B¤°B2$Œ@‰‚"¨Fª‘AUA€ÄŠª«"0UH¡V at U$FÒ”¥)U£QJ5ª•P¢VQ‚33#A¬Œ²™0²°²0²™L,Œ,¬,™L²3gdŸŸÈrJ¶’l“Ti–í¶Û$d´I%H‹ÂeRkot*¼—\X&÷ŽÚgNÓk}éäEƾJ¨¤7¹"ªªªªª¢"šöÜæóPãvKæÐ-;ˆ1ÏŒ‡Œ„R‹$[\GÔ÷
+¢'TbÔRŒb(n\í/i좯P¬õ¦¥EŠ‚ŠuŽYˆöγC¨WÒdF)‚$Aƒ0H‚D‰0H‘"	$bF	‚	€‰FEd@*AT‚(¢°ETQETˆ(¢Š0H¢Š €¢ŒH*0@ÉQD`",DEHˆˆˆˆ ˆˆˆˆˆ¨¢"""$QDD‚ˆPEd@*AŠ©U€ÁUU"ªª¤@UU`ÀUT
+¬dÀPEd@"ÀDDPˆˆˆˆŠˆˆˆˆŠŠ""""EXÆ13ÄÌ)¢û€îZÆaÛJÖ¶Ûm¶Ûm¶©T"!-–B‰`ÉA”Œ,¤e#
+F‘%%%%…%%
+K(XRÊ–,ú áUUUUF,DÁŒ$H‘"F	`Ä‹  €@ 2}*í¶Ûm¶ÛUe%A2ÒP¥%…”””)),,))(RRYaIJ–ËAI€ l⪪ªÄŠÁ‰HÁ"D‰$A#"
+D 
+ UUUTbÄAŒHÁ"D‰$`‘A± ¢I$UUUUUUUUUUUUUUUUUUUUUUUUUUUUUU`Ö6Z`˜–(Å ÎÒUGŒŠ¥X¤ª²®d¤J´! Ê)S1"¿Ì}ÞÏ_~³Ñÿ
+k<ä^Ïk6/¼ƒü'ÎW}€O³ç+$û=•À’}Êà^\Þ³Ô½{ϸÆý`yÏvµ­kZÖ’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’I$’KòŸÄQÂÌQÂÌQ„ZnbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŽbŒ}ù'àOÂÁ`°X,‚Á`°X,‚Á`°X,‚Á`°X,‚Á`°X,‚Á`°X,‚Á`°X,‚Á`°X,ü~o“Röþ†—‰©vîÓ‰©vë18——ŒÂ!
+(dBQ È„& !‘Q@“"š•¸E!5kpŠBj”Y„Ô4Â)
+ªQdBQÈ„&¢	‘M@“"šŸD!E)PŠBªR¡…T$²!
+(IdBQÈ„(¢®HQRK"¢ŸD!EP„BŠZé…UµÒ
+ªa„"PÃD(¢ŽˆME!š‚(B!EPŠBª¯Àá…îtŽ!rîçHâ.4Â)
+ªi„RUW¤(ª®HQQT"ª£ÊHU]ΑÄ.]ÁB)
+ª¹Â)
+*i„RTÓ¤*ª®HQU\"¢¢¨E!UG”"ª»#ˆ\»¹Ò8…ˍ0ŠBªž0ŠBªŽPŠBªªá…UÂ)
+**„RTr„RTñÖ5ÖºïN±Þ5Þ»ïé>$Ÿ$J§ìDªh@Ÿ{ÿ@ÃIÏ>ž›Þ÷î=çÕœ|~zÏ/–µž[kùÆÚôÛ^›kÓmzm¯à| Ÿ¢ÏR­dz%S@{Ô½Ê^Ê[RÚm6›Oá°5¾»Ö¸k——ZÖº·½ï°]UÚÕ]uW»U½ïzÕÕq_WØýß»áuñý¿]zõÏU^®ïÔ’zÌÌÏ@ ÐèI.øª«Æ©»¶IÌÌ@ @I.øª«Æ©»¶IÌÌ@ @I.øª«Æ©»¶IÌÌ@ @I.øª«Æ©»¶IÌÌ@ @I.øª«Æ©»¶IÌÌ@ @I.øª«Æ©»¶IÌÌ@ @I.øª«Æ«¦ï®7.™™-À–àKp%¸]\å]WñUWSwl’9™˜€ €’]ÝWñUWSwl’9™˜€ €’]ÝWñUWSwl’9™˜€ €’]ÝWñUW4ÓM*¼j›»d‹™Žfc™Œ’îê¸¯Šª¼j›»d‘ÌÌÄ @ @$’îê¸¯Šª¼j›»d‘ÌÌÄ @ @$’îê¸¯Šª¼j›»d‘ÌÌÄ @ @$’îê¸¯Šª¼j›»d‘ÌÌÄ @ @$’îê¸¯Šª¼j›»d‘ÌÌÄ @ @$’îê¸¯Šª¼i¦šiW§¦¸ÝÓ%xæ]¹—nU3•u\WÅU^5MݲHæfb    Iwu\WÅU^5MݲHæfb    Iwu\WÅU^5MݲHæfb    Iwu\WÅUUT8UvI!™˜è  Iwu\WÅU^5MݲHæfb    Iwu\WÅU^5MݲHæfb    Iwu\WÅU^5MݲHæfb    Iwu\WÅU^5MݲHæfb    Iwu\WÅU^5MݲHæfb    Iwu\WÅUóÀŠªª¯žyçžyç9⪪ª®*Å@ UÎeSwl’nffh € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UxÕ7vÉ#™™ˆ € €I%ÝÕq_UyÆž]ó–˹#yXœå9Œ©‡
 T™Ë¹w}WUUxÕtÝõÆåÓ3%¸Ü	n·«œ«ªâ¾*ªñªní’G33  ’K»ªâ¾*ªñªní’G33  ’K»ªâ¾*ªñªní’G33  ’K»ªâ¾*ªðUTUUUTUUUUUUUUUUUV*ªŠª*‹õôŠ¢ªŠª¢ªªŠªªªªªªªªªªªÅUQUEQsUUUW1UUUUÏ ÂSâSœç>!*Ÿ@ 
+ÔUTUUUTUUUUUUUUUUUV*ªŠª*‹³Xˆ1‚	$H‘"DŒ Áˆ#f*ªªª®ªªªªffzBi!4šHM$&ÂCf"¨ª¢ª¨ªª¢ªªªªªªªªªªª±UTUQT\ÄUTUUUTUUUUUUUUUUUV*ªŠª*‹˜ªªªª¹Šªªª«ð 9ÄUTUUUTUUUUUUUUUUUV*ªŠª*‹ÉÆ"`‚F	$H‘#ˆ0bÅ™Šªªª«†*ªªª…iKj[RÚm6›LÖ33˜¨ªª*ª¨ªªªªªªªªªªª¬UUTU’		˜ªªªª¸C~tH|“¾úë¾ûºë®€=zõë×¥UUUUUUUUUU[ªUUç®›¾rÙÎI€ €$œåu\WÅUU\ÌÅ]ÕÝÝ]ÝÝÕU]ÝÕÌÌÝÝU\ÅUãTÝÛ$Žff   $—wUÅ|UUUUUUUUUUUUUUUº¥U|ë¾úïλï®ëª^Š[M¦ÓtÌc,°Ã&LI$H‘"FAŒD\$&1UUUUp†ý  @&}&vÊZQE$¡kD¶ª^â·>¹Š×2¢sOCìA¶4²’Ú>;ÝÒqmî÷™gžž¶ïu†÷Кw}oXø3-ÌÌ…¶–´(ÄJr†e*«x\¶{Ý´/­&å%ÛÀyJªÛxX¾ædÔç'Ì”¶qÃ,;Íîõæ@'ˆ’Cà g9™™Í÷½¾ÈN"#`ŒŠE’p  ÛÏwžï½¾Â cÌ&°:œ£Ápè^£333õÌÌÌìüý==¥UUUUUUT                                     UTÞªµnUUUUUUU            9Îsœç<à€O>|ùóçÏ9Îsœç9Îsœç9Îsœç9ÎxëÂgYxÊLÖ¡kÙ¢ £ËÏÙ¬ø¿µžÎõ¬õw­gé#¤xT‹"ÄHð©#¤zm¯Mµé¶
 ¾€O¸’K	ðÕ$xT…Hð©#¤xTõðæŽ‘¤p©#¤xT
+‘ß®>þªÒ%SKK/¥?,LRÄďÀ¥ú	ú
+_ Ÿ ¥Ù;)v©vNÊ_©?R—é'é)a0¥á<)z“Ô¥á<$~¢–“I)t)bb—IÒ–Ój^óÞ~	øü#ðU˜/ô›z§ª–K"d²&,“Qޮܶ5ØÄðKÁÍÐ֫‚íV—¥-8ž)x¢d²&K"d²'Ÿ}7Ó ^žþ¥)úö¿”Û_Êm¯Mµé©#¤xT
+‘áR<*G…Hð©=6צÚü'Â$H‘"$H‚`b_ÛJUO^tº_J§Pé3Ž—KÕ6N©E€4‘€X,€–}¤Òi8I±hÍ›:ܺ&Cóö»XaíÊò¿“'œ¼åV÷çA‹Ž‹ ã@~ì-/’A÷ á<“Pê°“2×o; 
+€f„ @¾ÐÙH:ëÁ¹(téÓÇBºÊ3S£«Ü©aЦë«B–ðH̹Ë7ÞLÇœÏa&ï)HPË&²`a@ÁP00°0QXR(¢°2aHdQE&š‡bŠ(¬œ—†ƒ0(¢‰8szÙęۄXCf'   ±EÝ)8<AAbŒåäáÈ&¨((˜d Ì’Trac€TÀ™0a
+X(RD‚CdÀ,8¼²ÆÎÎ@Ðp XÈ Rè-é:†™eC]µBRo ]9ƒ¨ C¦Vä¶ëZ:噏9Iˆ÷Šâ¥Ì€iˆ t2t 3Cæï;e-(£R6V¢§-Zx·¢jqËÜé<eƒJ”hXRËnÛ„Æoºî[ª÷ÀöÝçnàvôém½7×¹èf\¥0Ø^XRТS™„r•[ÉrÓÇ»h_ZÒkÌ%å*¶ã—˜¡îÙÔËÌŠfb&\ށqÊwÝßz½vûZH 5âóšá½½dòÔà êô_{Kû€~zøôóîýç9Îsœç9Îsœç                                     ªªªªªnªÜªªªª¨            9Îsœç9Îsœç9Ï yÀ3 ž|ùóçϐ      
+뮺뮷®¯ÙósÊ®¸'¯æTA°‹
++,Ÿ>±Sý@ }ʝ‹à˜^—¼Ç0ËF­elâ`d‚\ö?G0übå™’
+•Ž–doüeëTáæ¯Rò_BúÀìî]7©†äÖ­~°Š†FA?v‡ãZ}wŠ8—,ÙPX ±CLüÐ üI!Ùð.jhyyÝnbe­+ZÑdž 6}kõÜê1ÉÙPPPPX¦RüªmUßZ‡x®À&õª9‡l³‘Ø;çÐ0€•OäJ¦yz5zêYÑìMŠ((((;÷–Þß’HnÓóyNE(((5_À vJwæË+'@{š¬IX˜IŠÀžÀËHÅX ³ ;$†À;7¢ó’·&&)Ý‚m©¦¡’ŠÄkµSä®ü÷½Eùe-(Ö°µj¡Ë™<>íy»C0£oÐôŸXÒ4l(‚ ËA™s->»îæØßÊ…9¡ÄÑÜ‚	!÷|æÊs‡IË“BÒ‚ÂÛÛ
+Z70”­À¹nÎöÒ£ëbÛC)m%ÊQÌp7iì¸ÌÂÂÝrr&EÎg'gG9žLËœíéÍïw?p !	ýÀ Ð=…>—KäÕÞý=½}¾<ç9Îsœç9Îsœ                                     
+ªªªªª›ª·*ªªª             ç9Îsœç9Îsœç9Ï yÀ3 ž|ùóçÏ       7®ºë®ºÏkÜïÎë®ùÞc1™f7ʧ§Š§ÉÁðÜO!I”¤$´ ;ó6eE{m§¤Þ: ” =î'dg,¨Ï9ô_QzU>Eྥô/fÏ8­1KÞ{ú½“.½û·½zÕ4'†E,gYH9®g3%Ö¬Ûo<U1Jxa*Oxóå“K¼;Õ=$†›8€Œ«,ªÓ5`ÊŒAä
+´ 7ÇÅU“Äçº ›mü™ŸRS›©S<fiEzoT±®ö›Ê–]ljÀ!òðøªª¢’rJrÙ}%4w›±Ó1n&,²m–„Ë"—€8ª} yõ¡Õ”‚îÊA{å ´tv
+
+ñe-™“ ±~¯3ƒ£mâqå¦*c/äšçIù=I̤¥°¢…¶ÙRfݼWyo:OpróoqzÚRÚ˜ï­ËÒfÙ“,¡iAam…Ú;Ì9h— åèw¶ÂúÑlÊ¥´—-sjæì~/‚yü_ÝŸ	!0妷Íë­ö3®ºÛ3޼}€.ψ§ØúÁ×¼ß=“ì{?p                                   UUUUUUUUUUUU7ª­[•UUUUUUUUU@          ç]t ñ  	  >÷½ï{»»»»»»»»»»»½ï{ß ø>*ªª¨§™ÈCÂzݤ"È|dŸ$N¡ÓêB吕0öp>**ªªª/ÎX	&+ÁÚ;„o;Â@ô’ýBP»Éåb¨ªªª®Œ'ÆX®Òó¯¤ÙÆE ÏÌ ßSÊÅXª*ª«ØÁ úqUó€|’C5ÞÌV*ÅXª*®rYď%UÝÀ Y+NÉ!΀  ì¨*ÅX«K™a
+šú9¾’B€ < è*ZÈ1ã%›ÒÞ™‘V*˜NFH“€Ï{ë>I!à• ¤> «JO€ŠB 0~Bžø$®°¥*›ã*Žj•:RAÍÑfÛú‹\T±q¨®óçÎQæ±\¢•~NLÒfRu&z’–ÂŒ±–Ú[IºÍåöž%ܽ^ó/I½¥-¦ÌNúð}âo½rhÆ[(ZPX[OÌS–ÉÊLØ{¶…õ¬m§»¼U9l5.ÞïX{ÞéÞök^òÂç0+ŒÌŠ—Ä$$„:_w]î*ªªªª¨ª*¨ªª*ª¨ªªªªªªªªªªª¬UUTU’NcÎ`ªªª*¦R¢¬UUUEDUUmªªªªªªª¢¨¢¨ˆª)ï£3#(™‘Œ¬²a–LÊŒt¾ .ÀžáN—5ã~¾îûï°                   7 Ó`         wwwwwwwwwwwì‡PU?Ø"$&FݯHd	˜r©ÙyU‚ʉ¼JÇyjÃÉ”˜¸7¥Âñ®,e‰beÞyÏ5O¯:˜
+jŠÕ†Zó)“ÊÆSnxªhnñŽVYdÖªj™xåS®î†1oÈ Ò›ßœÌÜËÊÉ‹Z&‹Ê%S º°
+`¾²ôªx
+ýeä½—²íUÞ)ŽÀ”kØ$¿~UÈŸp`’؁iÏÇÜ’3´
+³LTÇ ‚JRJ`eÙS¿ŽÙ™rÃM-f=¼U8ºÕS³*œDª2%SéH®ùèû¿B‹- }Œ¸–ÅÆ¦fc¯/œç,Ì£™™è_¸a’’Úú’–(fZ¶Øs‰æfgIíÕ|žË {´¥¼1]ï-óÆŒF2ÙBÒ‚—¦ÞqT¶Ã&x›Ò>°¶Ó*ª–ٍhóKaînîñ
+¶¶)Yg@ûæþÔuîÌ-÷c·v]¸öêùþ  äãfgÎnk›}@                   z
+6            Ç:3‡ÇA«&­VQ*šßŒÎêœ~
+ù  ½Wß,B…†äÇ0 ÍS~ pE!„@mQ^¡²…œÃ'>ý$…’C`ÑôÀUN°•’²æÅsh|0.frùæc¿5M]’ÁçŠ5ªÌ³&€f Ö£CÎYžy»Îæó¦üU9l )$èÍîXQÉÚB—–Úÿ *žá±ñ=֝y͵êÉŒÕëwéTÊ{bN‹ u§<2cS}7Ê£†DA‡@F´*R	tZe1‹_ŒÔÛ,bÇ¿­”ÛµSèÞi§ÁE[aô5UDc/8}<Û^æv•ªñÇ ö{–R[IRz´X[e¶ÇÉ›¶†qå…Âê>áÄ;z{–ÌÍÈRУŒ¶P´·{¹¦ª©mš÷	Íñ<Rkmªª–ܶÄ^p;†`R÷&§¯·®ÃzXZw%œï w®J€pÉîzïvfõæffsffftægÎZ¸ô                    
+è4Ø            ;ï¾¹èÎ0Ƨ3ÖåSƼCߐvÁNºÔ›ozn±•¶õDjÅ-³F† ‘†5ø ”™Ÿ!Xß’HvL†Œ"Y@£ Œ° ¬2$G^šxnÇkzåS–ÔëyzW’((3‡Þ·ÒHw€²9Fô pmM z#°Ü^·êàxÌ;Råê Ú)æ~>Oýÿû÷øËNsøùÇZnÿÎopç7KßÎ^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶AŽ4$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰
 Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥|œ¼ÄíÒ÷‹Û ƒÄši
+([äåæ'n—¼^Ù$А“HiBß'/1;t½âöÈ ñ&„„šCJù9y‰Û¥ï¶A‰4$$ÒP·ÉËÌNÝ/x½²<I¡!&Ò…¾N^bvé{ÅíAâM		4†”-òró·KÞ/l‚hHI¤4¡o“—˜º^ñ{dx“BBM!¥
 |œ¼ÄíÒ÷‹Û ƒCùËI$’üo¾ü_Áñ‘ŒøÍælù2(ÞQ|°‚R’BË8``P”°¤!¦,êöeÃI¤…¤°•)$H…B6ht¶(ð‘:(ïM(3:(¢“ÒB¤æ òŽ{ÓKJ(¢Ëo­q*­”[b¼Æ—œEÊÖãEE¶î‡„hXRÆ‘­'‘8RVe¨/†‰}ÒÒ-Ð>ᵁßIi†fBí…-
+1Ëbr™”ªª[Ç-o‰ìRjGxg)UU¯rŸ €DþFaÁ>„sîî_o}w¾C€W#|ç7Ù:æºëœÎŠS;¼ÌÌÎ9™ÍÇ|ü{p                   `Ø             rfcíˆuSL¬¦
+À=!Y JÉÆ\7
+ɇ@ÒÂ_¼†N…ç]N¦Ù½Í-6ÆæÖÛ¶¶·³skNÀÃks¬“9ŒeÑÒè²ÂË,¥:3&fÉK,¶S#’aœ$4äFw²ÿL8CÇŽá&4ËJÅ;†I•<jŒ©­fYbY¾»‹]æUgt55¨£Vš+Z·ìœQBG¹†¦!$‚Q1†˜Ó²ÃbEa£,3pp곌¬’sÉ8²‚[-§@ÛN&m¶ÇPŒ2©† e9ÉÌœ“È%vq†!RHÝúâó%­
+hÊf-†­I¡o*VÍÕ˜šŠÕh®j4«%бøœ›ÌÌÌêÌÌÌÎ\ä´ãu                    Ði°            øG€i{±}«µî÷{¼û½Ý÷ß}÷ß`                  z
+6          îîîîîîîîî€üðþ üÂØ ä? :ØÀ} `
+ôGy™™ž‡óšügæ ÿ˜°ðç ú  ý`Ø€ h	ì‰Tüçü@¿:%Sî¸}ÇÄìŸôÐÄí=è•Oc€O¨¤J§ÿ@@>ÐûÿàÜàèDªlÞDª~ DÐB_0"~Ðp½ }À~  ú€Nâªv Ÿ¼à„–)aKa10ŸhúÑ*ŸHÀÁz¸‡äÈ€° ?x×TU?È|΀?x¸ø‘*ŸhJ§¸Ðñ |TŸyÌù‘*š?(>ð~P~Pü¡ÙÓ{ù€úÏÈ~BäJ§É©Ð
+> ¤š û ûÀ› è
+üa*ŸÀâÈš%Sø  i€=@˜€ 0ÈøÇ¨J§ä ÂÐíDª{À@ ú œ¢U4ô8lèä‰TÀ?%S` ‹÷ î/ö€3âýCë‹ØðDª|ÀŸHØö|À›û™Èó | ŸP’
+.Ñ*Ÿ 
+€þ6 þ£¤J- z> ?*%S¯XPXœ¤V…UVòRT÷€{À`L ÐÌÔè â%S•ESꀕN z"U<ñ7ªt ` tì` låEÀ?q£ÜúÑ*Ÿ½©ä%  OÈ	ï д%SÞój¨ªy ]Hü]ÉáBA¼xŸÐ
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,202 +0,0 @@
-‹ 0Ï9K íýÑn˲®‹íëóë†à̬Ê,ê\‚aÁ°áûš(5)А¶šh¶¶-?½«ºº8©î-²ª"#ÆŽïÃZs
-è‰þ•Y™üQÚ¯ý÷ûíÏôœv}Ú¥ãÿé¿Õ&t9ÿŽ]§ÿ?¶íéßgþ[Œ)¤B›ÿbÓ¤î¿ýW®þ¿ä¯çcø¯ÿúo_ö?¾ñ÷îÏÿƒl)×õþý\÷w`Yýc“ciÛ®õoc©¿©ÿÝýÿxÜÝWú=X^ÿ®éÂðŸÇ\B¦þ¼SÿáÏÇûÿ.ü5X£ÿ‡ÿ~Pj©¿Ëê¿{ú%øX£ÿÒucý»†ç¿	Ëë?ü˦߂õ/MÖÿJ¡þ&¬­ÿqÿ´ÿ±ø½æaÅó?wí ÿ”r›¨¿›ëüv¸ïïnŸ¿ßÚÛßÌXà2Õû^ÿ”.êŸK
-ÿí¿‚Åà¼þs	þJÇ?üoÿGÿ/K6ëÿéÛïçÇ]ÿãö©ß}ïîoïþöïê?üGÿÏAÿ¥
-ú· ¡w×lÖÿnxKó¯Y¯ÿ6dÖXï}#Óÿ’Ýÿºý;lü‡ý*ý[ðjÿÿõ+ûw¬Õÿ®ß}»_y
-¸ìü'ïü]vþƒþc9ÿ7a[ýÞÝÿÓÒ_ƒ5ç¿Ã?Cý›¹ÿ7ATÿçÇÿßý‚Ïܾ¹ÿϧú·M“þ›®kXÿ-H¹üßXòý"ÒÿËà œûÛ§þp|<>î¯4ô¾þÓ…þù'ôoADü®éÿøû©ÊúÃôßt§ó¿Ð¢þß?¿>ÞßñpŠHÿ?îÿÇý÷?cýú߯ÄùŸ	ÜÿùF¤ÿÝþÛýáþçî÷ôð·ã€÷õß\îÿCÃý¿	¥åàÙùß·þpw;ü7Ãàùø·Ïx_ÿí…þKì¸ÿ7!üÃÀ3"ýÿúßÏ·û¯·ýóó~÷ØÿÇãñ÷õgl8ÿk[ôoÂ
-êwM­õÿ¿÷OýŒQáËü?]éÂxþWþ_æüBÎãx¸B¤ÿŸ¿þû—ûøx¾?þ]öÿû?räÐ3ýÿWÓNþ/ü&ˆê_ÍÿÕ^Üÿ6]Wxþ[Ð$ì_žé_ÃÿuÒ×5èßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_Dú×ðMúcþúׇõß7"ýkø¿¦ýhéÿ2ÿ—odç
-þ¯“þKìèÿ0ÿ—oDú×ðMëÿø×Ñ¿ø¿|Ský¯åÿšîËøJ€þ
-˜K@þ«ODú¯æÿº|ÿ/¡¡ÿÓÞÿ}#У“ÿuö1ÿÇQý«ù¿ÊuþÏnâG`Žé_3ÿ‹÷?¸ÿõHÿù_óúOÿŸ	äùF¤Íü/üŸ&4(ß5"ý+æ‘ÿa翾‘ÿ)æáÿ6!|èx 8F¤ÿjþ¯«õ¿mÉÿ0!äï™Zë5ÿW<û¿ðš0—€ù>鿚ÿërþW	
-ú7a¼ÿGò~è?êä…ÉÿñY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×åúß’ÿnÄçŸÏÇÃ¯ÝøØæIà‘þ5ó¿¸ÿ1õß7"ýkæqþkþ/ßÈÎÿó¿èÿ4ü/߈ô¯™ÿ…þM@ý¾©µþ×Ëÿšüþæÿå‘þ5æ?Îù_œÿ›	 žY¥ÿ²Ôñõ'£Â—ú¿šTý‡2®ÿø¿ôYYÿãþiÿcÿð{Õ/Âòú—\ºÑÿŸÚBýMØZÿã·Ã}wûüøeøÒÞþb–ïÿçúçÌü?^íÿ§m»WlÕÿ‹õï©ß}ïîoïþúïê?üGÿÏqÿߐÿbïû¾ÙªÿÝþð¦æ_³^ÿMWxÿ7ü'߈ô¿h÷¿nÿßLûÿñÿ˜p±ÿÿú•ç+Vê:þ_ùËÎBI¡‹Sÿw,cþ3ç?úlªÿéú'-þ5Xsþ;ü3îÿÂxþCýõ‘Ôaûï†ü‡¦‹øÿMH¹Ð ì‰þ¶ÿn™ÿ0¬èßú|#ÑÿÂößuóÎù‰ù/&0ÿÁ7ý/lÿÝ2ÿþ?#óDÿÛ7ä?—.sÿoý¿¾ÿ-kÿÝ4ÿüèÿõDÿÛ·œÿ5ý›@÷o*­ÿoµÿ.÷ÿ¤ámý?ë¿
-s	ÎþŸœy¸B¢ÿ…í¿öÿ¹ãþφ9ôÌvýÿWÓNþ/ü&Hê_Ïÿu=ÿ!’ÿdó|#Ñ¿ŠÿkÊ+ý›€ÿË7ýWó½öÏþ/ôo§þØóð‹Dÿ*þ¯óü—Lþ£	¬ÿ¾‘è_Åÿ5å?v…þ/ðùFtþ§áÿ:ψô˜€ÿË7ý«ø¿¦ó¿¦ ðù¦Òú_Çÿõrÿ›»Äþß„¹ä¿úD¢ÿzþ¯Ë÷ÿÜeú?Màýß7Ûõß(åý_-þ/$õ¯çÿ*×ù_<ÿM¸‰q€9F¢Õü/ÞÿLàþ×7ý«äÍë?ù&ÿå‰þUó¿
 ðšÀüßHô¯šÿEÿ¿	œÿúFtþ§˜ÿñ›>t< #Ñ=ÿ×åúß5…übAþž©´þ×óųÿÿ§	s	˜ÿç‰þëù¿.çå.£Æû$ï—íúJù_aòü_HꯚÿÅý¯	äùF¢Õü/ôoþ/ßHô_Ïÿu½þ'ôoÂçŸÏÇÃ¯ÝøÜæIà‰þUó¿¸ÿ1õß7ý«æqþkþ/߈Îÿ4ó¿èÿ4ü/ßHô¯šÿ…þM@ý¾©´þWÌÿšü‘þæÿå‰þUæ?Îù_œÿ›	 žY¥ÿöf±çë5£Â—ú¿šTý‡R
-þ/ÖÖÿ¸ÚÿØ?ü^ó‹°¼þ¥¤ñ?O)·øÿLØ\ÿã·Ã}wûüøeøÖÞüf–ïÿçúç‚ÿφ¡ñÕþ?v®Ø¬ÿóßS¿ûÞ?Üß>Þýí3ÞÕxÑ~Œçÿ-çÿ6Ðþé›Íúßíoiþ5ëõßæÿÚÀzï™þ—ìþWíÿs۝öÿMÀÿcÂØòÍþß/kõ?] ¬ûŒeç?¡¤ÐÅ©ÿ;v)rþcÁ¶úŸ.€ÒÒ_ƒ5ç¿9úcäü×Qý6 ŸnøVå?´ã¯ë¿)€#ÒÿÂà÷õ5ÿ¡kðÿ˜@ÿoDú_Ø ü®þ_Ï8÷ÿEúÿL`þƒoDú_Ø ¼~ýocÃü'óHÿ€ß×ÿUþóð÷Ñ¿ôÿúFvþ·¬ø}ý_Ïè¸ÿ7þ_߈ô¿°xÃù_Ëü7èþñM­õÿ­àQáû»á_ãú?n	п!ä<– ÿODú_Ø ¼aÿ¸ÿ³!GN =#ÐPñ5íÉÿ…ÿÏQý«ù¿.óÚ€ÿÛæ?øF¤
-ÿ×”ÿÖµèßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_Dú×ðMú
-ù/&°þûF¤
-ÿ×´ÿ™þ/ðùFvþ§àÿšæ?¤@ÿ‡	ø¿|#Ò¿†ÿkZÿ[æ¿Ù€ÿË7µÖÿJþ¯óýo[BÑ¿ä¿úF¤ÿjþ¯«ù¡¥ÿÓÞÿ}#УâÿŠgÿWÂÿe¨þÕü_å:ÿ‹ç¿	7ñ#0Ljô¯˜ÿÕòþg÷¿¾é_#ÿk^ÿéÿ3ü/߈ô¯™ÿ…ÿÓ„å»F¤Íü/ò?Làü×7²ó?Åü/üß&„ Ljô_Íÿuµþ·-ù&D€º¦Öú_ÍÿÏþ/üŸ&0ÿÏ7"ýWó]Îÿ*¡Eÿ&Œ÷ÿHÞ/ýGü¯8ÍìðY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×õúÑ¿	Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿ+Nóñ›@þ—oDúטÿ8çqþoBL$€zf•þ›Å‘_0*|©ÿ«IeÐ(%àÿ²`mýû§ýýÃï5¿Ëë?”½Ÿÿ)ó_¨¿>›ëüv¸ïïnŸ¿ßÚÛßÌòýÿ\ÿ\¸ÿ·a. ûŸlÖÿ‹÷ï©ß}ïîoïþöïê?¼è??ÆýËû¿
-œÿùf³þwûÃ[šÍzý·þoXï}#
 Óÿ’ÝÿªýnÛñý?§Žý¿	S¾~eÿúŸÎÿ×}ƲóŸPRèâÔÿ»qþ7ç?úl«ÿéþ'©ôÿ¦0õÿrþk‚¨þÕú/óš®ÃÿcBÊ…`Ljô¯8ÿ¡Áÿoý?¾é_cþÜÿAþ»	ÌðHÿŠóç&þæ‘þç?4Üÿ›@ÿ¯odçzó
-÷ÿ&Ðÿë‘þ5úÏóÈÿ±îßÔZÿ«ôÿ¦áM 9ùºŽùÏ&Lè{ü?>é_£ÿ÷<ÿû?räÐ3ýùíäÿÂÿg‚¨þjóš®cþ¯	ÌðHÿŠóôoþ/߈ô_ËÿõÚÿ=û¿Ð¿	ŸúcÏ#À/"ýkÎàü×Ö߈ô¯8ÿ¡¥ÿËü_¾‘ÿ©Íˆý&àÿòHÿŠóZôoþ/ßÔZÿëÍh§ùìÿM˜€ÿË'"ýWó]¾ÿ—ÐÐÿiïÿ¾èñ0ˆQá‹ý_ñìÿjñY ª5ÿW¹ÎÿâùoÂMüˆÌ1"ýkæñþg÷¿¾é_#ÿk^ÿÉÿ0ü/߈ô¯™ÿ…ÿÓ„å»F¤Íü/ò?Làü×7²ó?½ü/ò?l: Ž鿚ÿëjýo[ò?Lˆù{¦Öú_ÍÿÏþ/üŸ&L`þŸWDú¯æÿºœÿUBƒþMïÿ‘¼_ú:ù_qòEü_ˆê¯™ÿÅý¯	äùF¤Íü/ôoþ/߈ô_Íÿu¹þ·£%ýðùçóñðk7>¶y8D¤Íü/îL`ý÷Hÿšù_œÿš€ÿË7²ó?Åü/ú?M ÿË7"ýkæ¡P¿oj­ÿõò¿âäÿÂÿmÂ\ ü_>é_cþãœÿÅù¿	1‘ ê™Uú7K-_0*|©ÿ«IãüçP
-óMX[ÿãþiÿcÿð{Í/Âòú—|ú{)å–ú›°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ%qÿgÂ\‚Æ-ûwlÖÿ‹÷ï©ß}ïîoïþöïê?üGÿÏqÿßFôo;٬ÿÝþð–æ_³^ÿmÈä?š€ÿÇ72ý/Ùý¯Ûÿ·iìÿÌ©ÿd«ýÿׯìÿݱVÿÓùÿºÏXvþJ
-]œú¿ãðÎ,ØVÿÓýORéÿ==ÿ›áÿ£þˆê_­ÿ÷2ÿ¡é:ò_MH¹Ð ì‘þ5ç?àÿ3÷߈ô¯1ÿþ_S˜ÿà‘þ5ç?pþg÷¾é_qþùÏ6ÐÿëÙùŸâüîÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_¥ÿ7…ñèôÿtïÿ&Ì%ø'„œÇ?ð<p…Hÿý¿óüîÿLÈ‘@Ïôtæ?´“ÿÿŸ	¢ú«Í;yþ[Àü߈ô¯8ÿ¡Eÿ&àÿòHÿµü_¯ýßçõ?¢>õÇžG€_Dúלÿ@þ»	¬ÿ¾é_sþý_&àÿòìüOqþý&àÿòHÿšóп	ø¿|Ský¯7ÿ¡æ?°ÿ7a.ù¯>鿚ÿëòý¿„ÿ§	¼ÿûF ÿFÅÿÏþ¯ÿ—¢úWó•ëü/žÿ&Üď8À#Ò¿fþï&pÿë‘þ5ò¿¦üŸá?Cÿÿå‘þó¿üŸ&4(ß5"ýkæ‘ÿa翾‘ÿ)æáÿ6!|èx 8F¤ÿjþ¯«õüëè߀X¿gj­ÿÕü_ñìÿÂÿiÂ\æÿùD¤ÿjþ¯Ëù_%4èß„ñþÉûE ÿ¨“ÿÅüGKDõ×Ìÿâþ×ò¿|#Ò¿fþú7ÿ—oDú¯æÿº^ÿ#ú7áóÏçãá×n|ló$pˆHÿšù_Üÿ˜Àúï‘þ5ó¿8ÿ5ÿ—odçŠù_ôš@þ—oDú×ÌÿBÿ& ~ßÔZÿëåMþ@ÿ‡	s	Èÿò‰HÿóÏù_ÜÿÙ	 žY¥ÿ´Ôñõ'£Â—ú¿šTý‡Üµø¿,XYÿãþiÿcÿð{Õ/Âòú—\Æÿ>¥Sþ3õ×gkýß÷ýÝíóã—áK{xû‹Y¾ÿŸëŸsâþÏ„Wûÿi›ÆnÀ[õÿbý{êwßû‡ûÛÇ»¿~Æ»úÿÑÿðcÜÿ7‰÷xß÷ÍVýïö‡75ÿšõúo†ôoþ߈ô¿h÷¿nÿßtcÿwNÌÿµábÿÿõ+ÏW¬Ôÿtü¿ò3–ÿ„’B§þïXùÿ&lªÿéúgùaðšóßáŸqÿšDý-Ôaûï†ü‡¦#ÿņ”
-ÀŽ‘èaûï–ù…ùß6ðþï‰þ¶ÿ®›ÿpòÿ4]Äÿkó|#ÑÿÂöß-óBËùŸ	„¿ùF¢ÿ…í¿òŸK—¹ÿ7þ_߈Îÿ–µÿnšÿ¸ÿ7þ_ßHô¿°ýwËù_“Ñ¿	tÿø¦ÒúÿVûïrÿOþØŒý?¹cý·a.ÁÙÿ“3ÏW
 Hô¿°ýwÃþ?wÜÿِ#'€žÙ®ÿ ãÿjÚ“ÿÿŸ
-’ú×ó]æ?4ùÏ60ÿÁ7ý«ø¿¦ü·’Ñ¿	ø¿|#Ñ5ÿ×kÿ÷yýOèß„Oý±çà‰þUü_çù/Ìÿ¶õß7ý«ø¿¦üÇ.Óÿeþ/߈Îÿ4ü_çùþðùF¢ÿ×tþ×dôoþ/ßTZÿëø¿^îsÙÿ›0—€üWŸHô_ÏÿuùþŸÇ¿†þ
-àýß7Ûõß(åMþ¯&àÿ²@Rÿzþ¯r•ÿEþ§
-7ñ#0ÇHô¯šÿÅûŸ	ÜÿúF¢•ü¯yý'ÿÃò¿|#Ñ¿jþþO”ï‰þUó¿èÿ7ó_߈Îÿ4ó¿ð›>t< #Ñ=ÿ×åúß5™übAþž©´þ×óųÿÿ§	s	˜ÿç‰þëù¿.çå®Eÿ&Œ÷ÿHÞ/Ûõ•ò¿Â”ÿÕâÿ²@RÕü/îM ÿË7ý«æ¡ðùF¢ÿzþ¯ëõ?¡>ÿ|>~íÆç6O‡Hô¯šÿÅý	¬ÿ¾‘è_5ÿ‹ó_ðùFtþ§˜ÿEÿ§
-äùF¢Íü¯‚þM@ý¾©´þWÌÿšü‘þæÿå‰þUæ?Îù_œÿ›	 žY§ÿå3_3*|©ÿ«IãüçP2þ/ÖÖÿ¸ÚÿØ?ü^ó‹°¼þ%weôÿ§1–ú°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏÿŸ
-¯öÿ1Ž`7àŠÍú1ÿ=õ»ïýÃýíãÝß>ã]ý‡ÿèø1žÿ·ý›@ó‡o6ë·?¼¥ù׬×ZÎÿL@ÿ¾‘éÉîÝþ¿M§óÿÄýŸ
-¯öÿ_¿²ÿwÇZýO ë>cÙùO()tqêÿŽÝ8ÿó}¶Õÿt”–þ¬9ÿͧçsÊÿ¢þúˆê¿°øt÷*ÿ¡é
-ùï&¤\h vŒHÿ€ß×ÿÕü‡.Ñÿcý?¾éað»ú=ÿáÜÿÛÑÿcó|#ÒÿÂàõëç&pþï‘þ6 ¿¯ÿ«üçÐpÿoý¿¾‘ÿ-k ~_ÿ×ó
-÷ÿ&Ðÿë‘þ6 o8ÿkôoÝ?¾©µþ¿Õ <*|iÿowêÿ)ã+ú7`.Á?!ä<þç+Dú_Ø ¼aÿ¸ÿ³!GN =#ÐÿâfàQáËç?´“ÿÿŸ	¢úWó]ç?wÌÿ6ù¾é_Ãÿ5å¿u
-ú7ÿ—oDú¯åÿzíÿ>ç¿ôo§þØóð‹Hÿþ¯Iÿqœÿ‡þõaý÷Hÿþ¯iÿú¿LÀÿåÙùŸ‚ÿë<ÿ¡Ðÿaþ/߈ô¯áÿšÖÿ¶Aÿ&àÿòM­õ¿–ÿkºÿÍ]Çþß„¹ä¿úD¤ÿjþ¯«ù¡¡ÿÓÞÿ}#УâÿŠ“ÿkœÿˆÿKQý«ù¿ÊUþWÇóß„›ø˜cDú×ÌÿâýÏî}#Ò¿Fþ×¼þ“ÿaù_¾é_3ÿÿ§	
-ÊwHÿšù_ôÿ›Àù¯odçŠù_ø¿M: Ž鿚ÿëjýþˆþ-ˆù{¦Öú_ÍÿÏþ/üŸ&Ì%`þŸODú¯æÿºœÿU†- ú·`¼ÿGò~è?êä1ÿÑQý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿.×ÿv|$ >ÿ|>~íÆÇ6O‡ˆô¯™ÿÅý	¬ÿ¾é_3ÿ‹ó_ðùFvþ§—ÿEÿ§
-äùF¤Åü¯ý›€ú}Ský¯—ÿ&ÿý&Ì% ÿË'"ýkÌœó¿8ÿ7!&@=³Jÿeqä׌
-_êÿjNóŸC)
-þ/ÖÖÿ¸ÚÿØ?ü^ó‹°¼þCÙOû¿”ÇùoÔ_ŸÍõ?~;Ü÷w·Ï_†oíáÍofùþ®.ónn^öÿì\±Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿm$ÿź¿}³Yÿ»ýá-Í¿f½þېyÿ7ü'ßÈô¿d÷¿jÿŸsÏÿrêðÿ™05}³ÿ÷ÊZýOçÿë>cÙùO()tqêÿŽÃ8ÿ±`[ýO÷?I¥ÿ7Mý¿‘ó_Dõ¯Öÿ{™ÿÐt¬ÿ6¤\h vŒHÿŠóòM ÿÇ7"ýk̘û™ÿbó|#Ò¿æüîÿM üÍ7"ý+Îh¹ÿ7þ_ßÈÎÿôæ?ÿgý¿¾é_£ÿ÷<ÿ¡Eÿ&Ðýã›Zë¥þß.ætêÿœÿ›Ð÷S	ðÿøD¤þßóüîÿlÈ‘@Ïôtæ?´“ÿÿŸ	¢ú«ÍhÇ_	žÿ0ÿÁ7"ý+Î ÿÍü_¾é¿–ÿëµÿû¼þGôo§þØóð‹HÿŠóòM`ý÷HÿŠóZú¿LÀÿåÙùŸâüú?LÀÿå‘þ5ç? ðù¦Öú_oþC;ù¿Øÿ›@þ«oDú¯æÿº|ÿ/Ì4‚÷ßô¿xĨðÅþ¯xöuø¿,Õ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5åÿÿú·€ü/߈ô¯˜ÿÕàÿ4ù¾é_3ÿ‹ü8ÿõìüO1ÿÿ·	á =#Ò5ÿ×Õú?þuôo@,Èß3µÖÿjþ¯xöáÿ4ù¾鿚ÿërþW	
-ú7a¼ÿGò~è?êäÅÉÿÕâÿ²@TÍü/îM ÿË7"ýkæ¡ðùF¤ÿjþ¯ëõ?¢>ÿ|>~íÆÇ6O‡ˆô¯™ÿÅý	¬ÿ¾é_3ÿ‹ó_ðùFvþ§˜ÿEÿ§	äùF¤Íü/ôoê÷M­õ¿^þWœü_ø¿M ÿË7"ýkÌ<çqÿgCL$€zf•þóRÇןŒ
-_êÿjRôrGþ—	+ëÜ?íì~¯úEX^ÿ’K7úS›êoÁÖú¿îû»ÛçÇ/×öðö³|ÿ?×?¯¬ÿÌ%øg®»WlÕÿ‹õï©ß}ïîoïþúïê?üGÿÏqÿß$òßLà}ß7[õ¿ÛÞÔükÖë¿é
-÷ÿ&°ÞûF¤ÿE»ÿuûÿ¦û¿sŠœÿ›p±ÿÿú•ç+Vê:þ_ùËÎBI¡‹Sÿw^ 8ÿ±`SýO×?iñ¯ÁšóßáŸqÿÆüoꯏ¤þÛ7ä?4ý?6¤\h vŒDÿÛ·Ì(™ügèÿñDÿÛ×Í8ùš.‘ÿló|#ÑÿÂöß-óBËùŸ	œÿûF¢ÿ…í¿òŸËx\„þ
- ÿ×7¢ó¿eí¿›æ?ÿlý¿¾‘èaûï–ó¿&£èþñM¥õÿ­ößåþŸ4ü±M£ÿ§£ÿ׆¹gÿOßó<p…DÿÛ7ìÿsÇýŸ
-9rè™íú:þ¯¦ü_øÿLÔ¿žÿë2ÿ¡é"ù¯&0ÿÁ7ý«ø¿¦ü·’Ñ¿	ø¿|#Ñ5ÿ×kÿ÷ìÿBÿ&|êù8F¢ÿ×yþù¯6°þûF¢ÿ×”ÿØú¿LÀÿåÑùŸ†ÿë<ÿ!Òÿaþ/ßHô¯âÿšÎÿš‚þMÀÿå›Jëÿ×Ëýoîûæÿê‰þëù¿.ßÿs—ñšÀû¿o¶ë¿QÊÿ:û¿Èÿ7ARÿzþ¯rÿÅóß„›ø˜c$úWÍÿâýÏî}#Ñ¿Jþ×¼þ“ÿaù_¾‘è_5ÿÿ§	
-ÊwDÿªù_ä˜Àù¯oDçšù_ø¿M: Ž‘è¿žÿërýïšBþ‡	± ÏTZÿëù¿âÙÿ…ÿÓ„¹Ìÿó‰Dÿõü_—ó¿r—Ñ¿	ãý?’÷ËvýG¥ü¯Óýßð
-€ÿËIýUó¿¸ÿ5ü/ßHô¯šÿ…þMÀÿå‰þëù¿®×ÿ„þMøüóùxøµŸÛ<	"Ñ¿fþùï6°þûF¢Õü/ÎMÀÿåÑùŸfþýŸ&ÿå‰þUó¿Ð¿	¨ß7•ÖÿŠù_“ÿ#ÒÿaÂ\ò¿|"Ñ¿ÊüÇ9ÿ‹ób"Ô3«ôß´‹=_¯¾ÔÿÕ¤2è?”1ÿÿ—>këÜ?íì~¯ùEX^ÿ¡ì¡êŸòxÿKýõÙ\ÿã·Ã}wûüøeøÖÞüf–ïÿçúçÂüwÎû¯öŸ¹ì\±Yÿ/æ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<üÏÿ[ú¿màüÏ7›õ¿ÛÞÒükÖëÿø|#Óÿ’ÝÿªýnÛñý?§Žó?¦|ýÊþß'kõ?] ¬ûŒeç?¡¤ÐÅ©ÿ;v±åüÇ‚mõ?] ¥¥¿kÎs:õÿÿ/õ·@Tÿ…
-ÀÓ	Óšü‡¦ë8ÿ3!åB°cDú_Ø ü¾þ¯æ?t
-þxÿ÷Hÿ€ßÕÿëùçþ¿@þ»	ÌðHÿ€×¯ÿm¤ÿßü¾¾éaðûú¿Ê
-÷ÿ&ÐÿëÙùß²à÷õ=ÿ¡ãþßú}#ÒÿÂà
-çm‹þM ûÇ7µÖÿ·€G…/òÿ¤áM §þ¿Âû¿	çû׌ÿÇ'"ý/l Þ°ÿÜÿِ#'€žè?¨ø¿švòáÿ3ATÿjþ¯ëüçŽü˜ÿà‘þ5ü_Sþ[× ðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_Ãÿ5é?6ý[Àúï‘þ5ü_Óþ?´ô™€ÿË7²ó?ÿ×yþCGÿ‡	ø¿|#Ò¿†ÿkZÿÇ¿Žþ
-Àÿå›Zëÿ×Ëýo	ä¿ÚpÞ‘ÿê‘þ«ù¿®æ?†ÿ§	¼ÿûF ÿFÅÿÏþ/òÿMÕ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿiBƒò]#Ò¿bþù6pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–übAþž©µþWóųÿÿ§	S˜ÿç‘þ«ù¿.ç•РÆû$ïþ£NþWœü_	ÿ—¢úkæqÿkù_¾é_3ÿý›€ÿË7"ýWó]®ÿí°aDÿ|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿fþç¿&àÿòìüO1ÿ‹þOÈÿòHÿšù_èßÔï›Zë½ü¯8ù¿ð
 ›pÞ‘ÿå‘þ5æ?Îù_œÿ›	 žY¥ÿ\–Z¾þ`TøRÿW“Ê ÿP
-ù_&¬­ÿqÿ´ÿ±ø½æayýKi†wÁa?˜ü&l®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿsýs‰ô›ãTöÿ>Ù¬ÿïßS¿ûÞ?Üß>Þýí3ÞÕxÑ~Œûÿ6’ÿfÝß¾Ù¬ÿÝþð–æ_³^ÿmÈÜÿ›Àzï™þ—ìþWíÿsãù_NôÿØðõ+ûϬÕÿtþ¿î3–ÿ„’B§þïØ¥ÀùÛêºÿI*ý¿)0ÿÁQý«õÿ^æ?ÐÿkEÊ…`Ljô¯9ÿügèÿñHÿóÎý¿ÜÿÙÀü߈ô¯8ÿ¡Áÿkáo¾é_sþ÷ÿ&ÐÿëÙùŸâüîÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_©ÿ·~Ný¿Üÿ™óTü?>é_£ÿwžÿÀýŸ	9rèþƒÎü‡öäÿÂÿgƒ¨þjóÚñ•ç¿ÌðHÿŠó˜ÿiþ/߈ô_ËÿõÚÿ=û¿Ð¿	ŸúcÏ#À/"ýkÎ ÿÕÖ߈ô¯9ÿûðùFvþ§6ÿ!ú?LÀÿå‘þç?dôoþ/ßÔZÿëÍhñBþ«oDú¯æÿº|ÿ/¡¥ÿÓÞÿ}#УâÿŠgÿWÄÿe¨þÕü_å²ÿŸù_FÜď8À#Ò¿fþï&pÿë‘þ5ò¿æõŸüÈÿòHÿšù_ø?MhP¾kDú×Ìÿ"ÿÃÎ}#;ÿSÌÿÂÿmBøÀ@ψô_Íÿuµþ·-ù&Ä‚ü=Ský¯æÿŠ“ÿ‹ü˜ÿç‘þ«ù¿.ç•ТÆû$ïþ£NþWœæ?ü_ˆê¯™ÿÅý¯	äùF¤Íü/ôoþ/߈ô_Íÿu½þGôoÂçŸÏÇÃ¯ÝøØæIà‘þ5ó¿¸ÿ1õß7"ý+æ‘ÿaþ/ßÈÎÿó¿èÿ4ü/߈ô¯™ÿ…þM@ý¾©µþ×ËÿŠSþþoÈÿòHÿóçü/ÎÿMˆ‰PϬÓÿÍRË׌
-_êÿjRôJéðY°¶þÇýÓþÇþá÷š_„åõ/¥‰£ÿ7妡þl®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿsýs‰¼ÿ›Ð¶ìÿ=³Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿmäýߺ¿}³Yÿ»ýá-Í¿f½þېñÿ˜€ÿÇ72ý/Ùý¯ÚÿçÆó¿Üpÿoýß¾Y«ÿéüÝg,;ÿ	%….Nýß±	œÿ°­þ§ûŸ¤Òÿ›ÂÔÿËù¯	¢úWëÿ½Ì`þƒ)€#Ò¿âüò_làýß7"ýk̘ûÉ7ù¾é_sþþ?óHÿšó¸ÿ7þ_ßÈÎÿç?pÿoý¿¾é_£ÿ—ù¦Ðýã›Zë•þß4<'š“ÿ¿ë8ÿ3!ç©ø|"Ò¿Fÿ/óLÉ‘@Ïôtæ?´'ÿþ?DõלÿÀü_˜ÿà‘þ5ç? ðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_sþC‡þ-`ý÷Hÿšóèÿ2ÿ—odçŠó¸ÿ5ÿ—oDúלÿ€þMÀÿå›Zë½ùíÉÿAþ«
-ä¿úF¤ÿjþ¯Ë÷æ?XÁû¿oúoTü_ñìÿ"ÿßQý«ù¿ÊuþÏnâG`Žé_3ÿ‹÷?¸ÿõHÿù_óúOþ‡	äùF¤Íü/üŸ&4(ß5"ýkæ‘ÿa翾‘ÿ)æáÿ6!|` gDú¯æÿºZÿÛLþ‡	± ÏÔZÿ«ù¿âÙÿ…ÿÓæÿùF¤ÿjþ¯Ëù_%´èß„ñþÉûE ÿ¨“ÿ'ÿWÀÿe¨þšù_Üÿš@þ—oDú×ÌÿBÿ&àÿòHÿÕü_×ëDÿ&|þù|<üڍmžé_1ÿ‹üwXÿ}#Ò¿fþç¿&àÿòìüO1ÿ‹þOÈÿòHÿšù_èßÔï›Zë½ü¯xòüß&ÿå‘þ5æ?Îù_œÿ›	 žY¥ÿvñÈÇ?¾ÔÿÕ¤2è?”\ðY°¶þÇýÓþÇþá÷š_„åõ/%6i¨Ê©¥þl®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿåüR^ Xÿ-8Õ"²ÿ÷Êfý¿xÿžúÝ÷þáþöñîoŸñ®þËþóðcÜÿ·Ìÿµ!£w×lÖÿnxKó¯Y¯ÿ–÷#Xï}#Óÿ’Ýÿªýn˨ÿœ
-çÿ&Œ_ÿØÎþß'kõ?ÿ¯ûŒeç?ax÷ïâÔÿ»qþç?úl«ÿéþ'©ôÿ¦pêÿ
-œÿš ªµþßËü‡¦ë8ÿ3!åB°cDúWœÿØÿ›@ÿoDúטÿ0ç0ÿÅæ?øF¤Åù‰þ?óHÿŠó˜ÿbý¿¾‘ÿéÍ(Üÿ›@ÿ¯oDú×èÿ=Ïhп	tÿø¦Öú_©ÿ·eÔî:ôoÂéö5ãÿñŠHÿý¿çùÜÿِ#'€žèq3ð¨ðåóÚ“ÿÿŸ
-¢ú«ÍhºŽü'˜ÿà‘þç?4èßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_DúWœÿ
-ú·€õß7"ý+Î`þ‹
-ø¿|#;ÿS›ÿ;ú?LÀÿå‘þç?´èßü_¾©µþ×›ÿÐNóØÿ›pªù¯n鿚ÿëòý¿„†þOxÿ÷@ÿŠÿ+žý_	ÿ—¢úWó•ëü/žÿ&Üď8À#Ò¿bþWÃûŸ	ÜÿúF¤ü¯yý'ÿÃò¿|#Ò¿fþþO”ï‘þ5ó¿èÿ7ó_ßÈÎÿó¿ð›>t< #Ò5ÿ×Õúß6ä˜ò÷L­õ¿šÿ+žý_ø?M¿~æÿùE¤ÿjþ¯Ëù_%4èß„ñþÉûE ÿ¨“ÿ§ùþ/Dõ×Ìÿâþ×ò¿|#Ò¿fþú7ÿ—oDú¯æÿº\ÿÛqK€þ
-øüóùxøµÛ<	"Ò¿fþ÷?&°þûF¤Íü/ÎMÀÿåÙùŸbþýŸ&ÿå‘þ5ó¿Ð¿	¨ß7µÖÿzù_qšÿˆÿÛ„S-Èÿr‹Hÿóçü/ÎÿMˆ‰PϬÒ^<òñF…/õ5©ú%ãÿ2amýû§ýýÃï5¿Ëë_JÊÍPÿ4n©¿›ëüv¸ïïnŸ¿ßÚÛßÌòýÿ\ÿ\÷&Œ;³±ìÿ}²Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿm ÿÁÚ?}³Yÿ»ýá-Í¿f½þÛÐrþgþßÈô¿d÷¿jÿŸÛnìÿΉþ¦îoöÿ^Y«ÿéüÝg,;ÿ	%….Nýß±#ÿ߆mõ?Ýÿ$•þßèÿ5DTÿjý¿—ùMÇüOR.4 ;F¤æ?üëáýß7"ýk̘ûñÿšÀü߈ôÏü‡=„¿ùF¤æ?üë¡ÿ×7²ó?æ?üÛ¡ÿ×7"ýkôÿÎóп	tÿø¦Öú_¥ÿ7
-ω8õÿîÿL!ç±ø|"Ò¿Fÿï<ÿû?räÐ3ý/n¾|þC{òáÿ³ATæ?üëaþƒoDúgþÿü_¾é¿–ÿëµÿ›ù¦|ê= ¿ˆôÏü‡=¬ÿ¾éŸùÿzðùFvþÇü‡;ø¿|#Ò?óþõàÿòM­õ¿Þü‡öäÿìÿM ÿÕ7"ýWó]¾ÿ—ÐÐÿiïÿ¾è¿Qñųÿ«Áÿe¨þÕü_å:ÿ‹ç¿	7ñ#0Ljô¯™ÿÅûŸ	ÜÿúF¤ü¯yý'ÿÃò¿|#Ò¿fþþO”ï‘þ5ó¿Èÿ0ó_ßÈÎÿó¿ð›>t< #Ò5ÿ×Õúß¶ä˜ êšZë5ÿW<û¿ðšÀ
 ü?߈ô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿âäÿ
-ø¿,Õ_3ÿ‹û_ÈÿòHÿšù_èßü_¾鿚ÿërýoÇWBôoÀçŸÏÇÃ¯ÝøØæIà‘þó¿È·õß7"ýkæqþkþ/ßÈÎÿó¿èÿ4ü/߈ô¯™ÿ…þM@ý¾©µþ×Ëÿšæ?vø¿M ÿË7"ýkÌœó¿8ÿ7!&@=³Nÿy©åëF…/õ5©ú¥´ø¿,X[ÿãþiÿcÿð{Í/Âòú—’ºá凜[æš°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ%qÿgB77ìÿý²Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿmäþÏÚ?}³Yÿ»ýá-Í¿f½þې9ÿ7ü'ßÈô¿d÷¿êü?§nìÿþEþ›	ôûf­þ§óÿuŸ±ìü'ïü]œú¿c;Î,ØVÿÓýORéÿMaêÿåü×Qý«õÿ^æ?4]Gþ£	)€#Ò¿æüîÿM ÿÇ7"ýk̘ûñÿ™Àü߈ô¯8ÿþ_óHÿŠóèÿµþ_ßÈÎÿôæ?Ðÿký¿¾é_£ÿwžÿ€þM ûÇ7µÖÿJý¿]lÒ4ÿý›Bߏ%Àÿã‘þ5úçùÜÿ™#'€žè?èÌh'ÿþ?DõW›ÿЁç¿ÌðHÿŠóZôoþ/߈ô_ËÿõÚÿ}^ÿ#ú7áSìyøE¤ÍùôšÀúï‘þ5ç?Ðÿeþ/ßÈÎÿç?Ðÿaþ/߈ô¯9ÿý›€ÿË7µÖÿzóÚÉÿÅþßò_}#Ò5ÿ×åû	-ýŸ&ðþïþÿWœü_cþ;þ/}Dõ¯æÿ*—ýÿã¯ÏnâG`Žé_3ÿ‹÷?¸ÿõHÿù_óúOþ‡	äùF¤Íü/üŸ&0ÿÃ7"ýkæÑÿo翾‘ÿ)æáÿ6!|èx 8F¤ÿjþ¯«õ¿mÉÿ0!2 Ô5µÖÿjþ¯xöáÿ4ù¾鿚ÿërþW	
-ú7a¼ÿGò~è?êäÅ)ÿ+ãÿ²@TÍü/îM ÿË7"ýkæ¡ðùF¤ÿjþ¯ëõ?¢>ÿ|>~íÆÇ6O‡ˆô¯™ÿÅý	¬ÿ¾é_3ÿ‹ó_ðùFvþ§–ÿ•èÿ´ü/߈ô¯˜ÿ•Ñ¿	¨ß7µÖÿzù_qòáÿ6ü/߈ô¯1ÿqÎÿâüß„˜H õÌ:ýwK-_0*|©ÿ«IeÐ(¥àÿ²`mýû§ýýÃï5¿Ëë_J†¿—Rn¨¿	›ëüv¸ïïn
 Ÿ¿ßÚÛßÌòýÿ\ÿ\"ûRšJÀþß'›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿߢèþöÍfýïö‡·4ÿšõúoCÆÿcë½odú_²û_µÿÏ9Œç¹áþ߆©û›ý¿WÖê:ÿ_÷ËÎBI¡‹SÿwìRäüÇ‚mõ?Ýÿ$•þߦþ_ÎÿLÕ¿Zÿïeþó¬H¹Ð ì‘þ5ç?àÿ7þ߈ô¯1ÿaîÿ%ÿÝæ?øF¤ÍùøÿL üÍ7"ýkÎàþßú}#;ÿSœÿÀý¿	ôÿúF¤þ_æ?˜B÷oj­ÿUúÓðœ8õÿä®cþ³	}?• ÿODú×èÿeþƒ)9rèþƒÎü‡öäÿÂÿgƒ¨þšó˜ÿkó|#Ò¿æüôoþ/߈ô_ËÿõÚÿ=û¿Ð¿	ŸúcÏ#À/"ýkÎàü×Ö߈ô¯8ÿügðùFvþ§8ÿþðùF¤Íùèßü_¾©µþ×›ÿОü‘ý¿	ä¿úF¤ÿjþ¯Ë÷æ?XÁû¿oúoTü_ñìÿJø¿,Õ¿šÿ«\çñü7á&~Äæ‘þó¿ZÞÿLàþ×7"ýkäÍë?ù&ÿå‘þ5ó¿ðšÐ |׈ô¯™ÿEþ‡	œÿúFvþ§˜ÿ…ÿÛ„ð	€ž鿚ÿëjýo[ò?Lˆù{¦Öú_ÍÿÏþ/üŸ&0ÿÏ7"ýWó]Îÿ*¡Eÿ&Œ÷ÿHÞ/ýGü¯8ÍìðY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×õúÑ¿	Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿ+žüÿ·	äùF¤ùsþçÿ&ÄD¨gVé?Ý,µ|ýÁ¨ð¥þ¯æ4ÿ9”Òâÿ²`mýû§ýýÃï5¿Ëë_Êxð;ìsCþ›	›ëüv¸ïïnŸ¿ßÚÛßÌòýÿ\ÿ\Èÿµa.Á?1²ÿwÈfý¿xÿžúÝ÷þáþöñîoŸñ®þËþssÒi#ç&ÿâ›Íúßíoiþ5ëõ߆Lþ“	4ùF¦ÿ%»ÿUûÿÜ6͸ÿOç&¼ìÿçFpž®X«ÿéüÝg,;ÿ	%….Nýß±£ÿÓ†mõ?Ýÿ$•þߦþ_ÎMÕ¿ZÿïeþCÓ‘ÿfCÊ…`Ljô¯8ÿ¡!ÿÕú|#Ò¿Æü‡9ÿƒþ?˜ÿà‘þ5ç?pÿoçÿ¾
 é_sþ÷ÿ&ÐÿëÙùŸâüîÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_©ÿ·1Mý¿¼ÿ›0—àŸœ§?ð<p…Hÿý¿çùÜÿِ#'€žè?èÌh™ÿ`ˆ¨þšóÈ4ù¾é_sþú7ÿ—oDú¯åÿzíÿžç? >õÇžG€_Dúלÿ@ÿ§	¬ÿ¾é_qþCKÿ—	ø¿|#;ÿS›ÿ;ú?LÀÿå‘þç?´èßü_¾©µþ×›ÿÐ2ÿÁ¹ä¿úD¤ÿjþ¯Ë÷ÿZüŸ&ðþïþÿWœü_)àÿ²@Tÿjþ¯rÙÿðÿÛp?â sŒHÿšù_¼ÿ™Àý¯oDú×Èÿš×ò?L ÿË7"ýkæáÿ4ù?¾é_3ÿ‹ü8ÿõìüO1ÿÿ·	áCÇÀ1"ýWó]­ÿmKþ‡	± ÏÔZÿ«ù¿âÙÿ…ÿÓ„¹Ìÿó‰HÿÕü_—ó¿Jhп	ãý?’÷‹@ÿQ'ÿ+Nù_ÿ—¢úkæqÿkù_¾é_3ÿý›€ÿË7"ýWó]¯ÿý›ðùçóñðk7>¶y8D¤Íü/îL`ý÷Hÿšù_œÿš€ÿË7²ó?µü¯Dÿ§
-äùF¤Åü¯ŒþM@ý¾©µþ×ËÿŠ“ÿÿ·	s	Èÿò‰Hÿóçü/ÎÿMˆ‰PϬÓZjùúƒQáKý_M*ƒþCÉÿ—këÜ?íì~¯ùEX^ÿ’»n|þ§<>ÿ©¿>›ëüv¸ïïnŸ¿ßÚÛßÌòýÿ\ÿ\ïÿ&¼ìÿÇ-ûwlÖÿ‹÷ï©ß}ïîoïþöïê?üGÿÏqÿßòþo;٬ÿÝþð–æ_³^ÿƒüñÿ˜@þ“odú_²û_·ÿoÓØÿ™SáüÏ„Wûÿ©œç+Öê:ÿ_÷ËÎÂðÎßÅ©ÿ;vãüoÎôÙVÿÓýÏâÃà5ç¿ùôüobàü×Qý«õÿ^æ?4]ÇùŸ	)€#Ò¿âü‡„ÿßú|#Ò¿Æü‡9ÿƒüw˜ÿà‘þç?$ÎÿLàþÏ7"ý+Îh¸ÿ7þ_ßÈÎÿôæ?îÿM ÿ×7"ýkôÿžç?ÿcÝ?¾©µþWéÿMÛ@<ùºÌügæüBÎãx¸B¤þßóüîÿlÈ‘@Ïôtæ?´Óüü&ˆê¯6ÿ¡é:æÿšÀü߈ô¯8ÿ¡Aÿ&àÿòHÿµü_¯ýß³ÿý›ð©?ö<ü"Ò¿âü‡Äù¯	¬ÿ¾é_sþý_&àÿòìüOmþCì
 èÿ0ÿ—oDúWœÿТðù¦Öú_oþC;Í`ÿoÂ\ò_}"Ò5ÿ×åû	
-ýŸ&ðþïþÿW<û¿Èÿ7ATÿjþ¯rÿÅóß„›ø˜cDúWÌÿjxÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿió?|#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ†übAþž©µþWóųÿÿ§	s	˜ÿç‘þ«ù¿.ç•РÆû$ïþ£Nþó-Õ_3ÿ‹û_ÈÿòHÿšù_èßü_¾鿚ÿërýoÇ-ú7àóÏçãá×n|ló$pˆHÿšù_Üÿ˜Àúï‘þ5ó¿8ÿ5ÿ—odçŠù_ôš@þ—oDú×ÌÿBÿ& ~ßÔZÿëåMó;ú?L˜K@þ—ODúטÿ8çqþoBL$€zf•þ'~ýɨð¥þ¯&•Aÿ!ë?þ/}VÖÿ¸ÚÿØ?ü^õ‹°¼þ%—ñï¥Ôæ–ú[°µþÇo‡ûþîöùñËð¥=¼ýÅ,ßÿÏõÏ™üO^íÿGnØ
-øb«þ_¬Oýî{ÿpûx÷×ÏxWÿá?ú~Œûÿ†üxß÷ÍVýïö‡75ÿšõúoºÂû¿	ø|#Òÿ¢ÝÿºýӍýß9Eü?&\ìÿ¿~åyàŠ•úŸŽÿW~ƲóŸPRèâÔÿ˘ÿÌù>›êºþI‹
-ÖœÿÿŒû¿Ð4ÔßIý¶ÿnÈhº€ÿß„”
-ÀŽ‘èaûï–ù¥%ÿÑÞÿ}#ÑÿÂößuóÎù‰ù/&0ÿÁ7ý/lÿÝ2ÿþ?#óDÿÛ7ä?—.sÿoý¿¾ÿ-kÿÝ4ÿüèÿõDÿÛ·œÿ5ý›€ß×7•Öÿ·ÚWõÿ–&žú#÷&Ì%8ûúžç+$ú_Øþ»aÿŸ;îÿlÈ‘@Ïl×Ðñ5íäÿÂÿg‚¤þõü_×ó"ýŸ&0ÿÁ7ý«ø¿¦ü·’Ñ¿	ø¿|#Ñ5ÿ×kÿ÷ìÿBÿ&|êù8F¢ÿ×yþKKþ£	¬ÿ¾‘è_Åÿ5å?v™ûðùFtþ§áÿ:ψô˜€ÿË7ý«ø¿¦ó¿¦ ðù¦Òú_Íÿ5Ýÿâÿ²b.ù¯>‘连ÿëòý?w™þOxÿ÷Ívý/1*|yþ×ÙÿñY ©=ÿW¹Êÿ"ÿÓ†›ø˜c$úWÍÿâýÏî}#Ñ¿Jþ×¼þ“ÿaù_¾‘è_5ÿÿ§	
-ÊwDÿª
 ù_ä˜Àù¯oDçšù_ø¿M: Ž‘è¿žÿërýïšLþ‡	± ÏTZÿëù¿âäÿ"ÿ߆¹Ìÿó‰Dÿõü_—ó¿òø×пãý?’÷ËvýG¥ü¯ÓýßðÀÿe¤þªù_Üÿš@þ—o$úWÍÿBÿ&àÿòDÿõü_×ëBÿ&|þù|<üڍÏmž‘è_5ÿ‹ûXÿ}#Ñ¿fþù6àÿòèüO3ÿ‹þOÈÿòDÿªù_èßÔï›JëÅü¯Éÿéÿ0a.ù_>‘è_eþãœÿÅù¿	1¡xϬÒì{¾^3*|©ÿ«IeÐ(%áÿ²`mýû§ýýÃï5¿Ëë_†êŸò°P6×ÿøípßßÝ>?~¾µ‡7¿™åûÿ¹þ¹Dú?MxµÿOiü»WlÖÿ‹ùï©ß}ïîoïþöïê?üGÿÏñü¿eþ‡
-4øf³þwûÃ[šÍzý·üoXï}#Óÿ’Ýÿºý›Nçÿ©àÿ3áÕþÿëWöÿîX«ÿé`Ýg,;ÿ	%….Nýß±‹ôš°­þ§ ´ô×`Íùo>=ÿ›9ÿ5ATÿ…
-À§¾UùM×qÿoBÊ…`Ljô¿°ø}ý_ÍèîÿM ÿÇ7"ý/l ~Wÿ¯ç?œûÿȵù¾éaðúõ¿‰ó?¸ÿóHÿ€ß×ÿUþsh¹ÿ7þ_ßÈÎÿ–5 ¿¯ÿëù÷ÿ&Ðÿë‘þ6 o8ÿk[ôoÝ?¾©µþ¿Õ <*|‘ÿ'…±õÿÔÿ×1ÿÑ„¹ÿ„Ð÷ãx¸B¤ÿ…
-Àöÿû?räÐ3ýÿWÓNþ/ü&ˆê_ÍÿuÿÜu<ÿ-`þƒoDú×ðMùo]ƒþMÀÿå‘þkù¿^û¿gÿú7áSìyøE¤
-ÿפÿØpþkë¿oDú×ðMûÿáï£ðùFvþ§àÿ:Ïèèÿ0ÿ—oDú×ðMëÛ¢ðù¦Öú_Åÿõrÿ[Æ-ú7`.ù¯>鿚ÿëjþchèÿ4÷ßôߨø¿âÙÿUðY ª5ÿW¹ÎÿâùoÂMüˆÌ1"ýkæñþg÷¿¾é_#ÿkÊÿ·„èß ò¿|#Ò¿fþþO”ï‘þ5ó¿Èÿ0ó_ßÈÎÿó¿ð›>t< #Ò5ÿ×Õúß¶ä˜ò÷L­õ¿šÿ+žý_ø?M˜KÀü?Ÿˆô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿˜ÿh‰¨þjù_ÜÿZAþ—oDúWÌÿb
 þ‹
-ø¿|#Ò5ÿ×õúÑ¿	Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿkòú?L˜K@þ—ODúטÿxÎÿâþφ˜H õÌ*ý7ÝRË׌
-_êÿjRôJiñY°¶þÇýÓþÇþá÷š_„åõ/eü9ìDòxÿCýõÙ\ÿã·Ã}wûüøeøÖÞüf–ïÿçúçá߬ÿÌøg®»WlÖÿ‹÷ï©ß}ïîoïþöïê?¼è??Æýéÿ6ó?ßlÖÿnxKó¯Y¯ÿ6dü?&Ðüå™þ—ìþWíÿóxñ7ìÿúl˜
-ðõ+ûŸ¬Õÿtþ¿î3–ÿ„’B§þïØÅŽó¶Õÿtÿ“TúÓ¹ÿ—ó_Dõ¯Öÿ{™ÿÀü+R.4 ;F¤ÍùøÿM ÿÇ7"ýk̘ó?È7ù¾é_qþCÃùŸ	œÿûF¤ÍùÜÿ›@ÿ¯odçŠó¸ÿ7þ_߈ô¯ÑÿËüSèþñM­õ¿JÿoÞÚñü/sÿgÄT€¾Çÿã‘þ5ú™ÿ`JŽœ zF ÿ 3ÿ¡ü_øÿLÕ_sþýŸ&0ÿÁ7"ýkÎ@ÿ&àÿòHÿµü_¯ýßóüôo§þØóð‹HÿšóZôoë¿oDúלÿÀý	ø¿|#;ÿSœÿ@ÿ‡	ø¿|#Ò¿æüôoþ/ßÔZÿëÍh§ùìÿM˜€ÿË'"ýWó]¾ÿ3ÿÁ
-Þÿ}#УâÿŠ“ÿ+ü_ˆê_ÍÿU.ûÿùŸ6Üď8À#Ò¿fþï&pÿë‘þ5ò¿æõŸüÈÿòHÿšù_ø?MhP¾kDú×Ìÿ"ÿÃÎ}#;ÿSÌÿÂÿmBøÐñ pŒHÿÕü_WëÛ’ÿaB,Èß3µÖÿjþ¯xöáÿ4a* óÿ¼"Ò5ÿ×åü¯ôoÂxÿäý"ÐÔÉÿŠSþWÆÿe¨þšù_Üÿš@þ—oDú×ÌÿBÿ&àÿòHÿÕü_×ëDÿ&|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿fþç¿&àÿòìüO-ÿ+Ñÿiù_¾é_1ÿ+£P¿oj­ÿõò¿âäÿÂÿmÂ\ ü_>é_cþãœÿÅù¿	1‘ ê™uúÏK-_0*|©ÿ«IeÐ(%áÿ²`mýû§ýýÃï5¿Ëë_Jãó?å†ú›°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏÿYÿ-˜
-psÃþß'›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿߢ8ÿóÍfýïö‡·4ÿšõúoC&ÿÉü?¾‘éÉîÕþ?·íøþŸSGþ«	SèÿöÊZýOçÿë>cÙùO()tqêÿŽýŸ6l«ÿéþ'©ôÿ¦0õÿrþg‚¨þÕú/óšŽü7R.4 ;F¤Íù俚Àû¿oDúטÿ0çÐÿgó|#Ò¿âü‡ÄùŸ	„¿ùF¤ÍùÜÿ›@ÿ¯odçŠó¸ÿ7þ_߈ô¯Ñÿ;Ï@ÿ&Ðýã›Zë¥þß.4…þ_C¦ô=þŸˆô¯Ñÿ;ÏàþÏ„9ôŒ@ÿAgþCËüCDõW›ÿÐtù&0ÿÁ7"ý+Î`þ—
-ø¿|#Ò-ÿ×kÿ÷ìÿBÿ&|ê= ¿ˆô¯9ÿü7Xÿ}#Ò¿æüîLÀÿåÙùŸÚü‡áï¡ðùF¤Åù-ú7ÿ—oj­ÿõæ?´ø¿™
-@þ«WDú¯æÿº|ÿ/£
-ýÀû¿oúoTü_ñìÿ*ø¿,Õ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5åÿæÛ@þ—oDú×ÌÿÂÿiBƒò]#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–übAþž©µþWóųÿÿ§	S˜ÿç‘þ«ù¿.ç•РÆû$ïþ£NþWœü_
-þ/DõWËÿâþ×
-ò¿|#Ò¿bþó_lÀÿå‘þ«ù¿®×ÿˆþMøüóùxøµÛ<	"Ò¿fþ÷?&°þûF¤Íü/ÎMÀÿåÙùŸbþýŸ&ÿå‘þ5ó¿Ð¿	¨ß7µÖÿzù_qòáÿ6a* ù_^é_cþã9ÿ‹û?b"Ô3«ôŸ[¾þ`TøRÿW“ÆùÏ¡dæ?š°¶þÇýÓþÇþá÷š_„åõ/¹+ãó?åñùOýõÙ\ÿã·Ã}wûüøeøÖÞüf–ïÿçúçyÿ7a.Á?cØÿ»c³þ_¼Oýî{ÿpûx÷·ÏxWÿá?ú~Œûÿ6pÿo;٬ÿÝþð–æ_³^ÿ-ó¿Œ@ÿ¾‘éÉîÝþ¿McÿgN…ü'^íÿ¿~eÿúŸÎÿ×}ƲóŸPRèâÔÿ»Èù	ÛêºÿI*ý¿§çç¿&ˆê_­ÿ÷2ÿ¡Yÿ
-H¹Ð ì‘þç?$ÎÿM ÿÇ7"ýkÌ ÿÃæ?øF¤Íùœÿ™Àù¿oDúWœÿ@ÿ¿
-ôÿúFvþ§7ÿ¡pÿoý¿¾é_£ÿ÷<ÿù¯6Ðýã›Zë•þß4¼	„<ú:ü?6Ì%ø'„¾ÿÀóÀ"ýkôÿžç?pÿgCŽœ zF ÿ 3ÿ¡æ?àÿ3ATµùMÇüO˜ÿà‘þç?4èßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_DúWœÿÈ7õß7"ý+Îhèÿ2ÿ—odçŠóèÿ0ÿ—oDúלÿ€þMÀÿå›Zë½ùíÉÿÕ±ÿ7a.ù¯>鿚ÿëòý¿„ÿ§	¼ÿûF ÿFÅÿÏþ¯ˆÿËQý«ù¿ÊUþWÇóß„›ø˜cDú×ÌÿâýÏî}#Ò¿Fþ×¼þ“ÿaù_¾é_3ÿÿ§	
-ÊwHÿšù_ä˜Àù¯odçŠù_ø¿M: Ž鿚ÿëjýoò?Lˆù{¦Öú_Íÿuºÿ-üæ0ÿÏ'"ýWó]Îÿ*¡Aÿ&Œ÷ÿHÞ/ýGü/æ?Z"ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×åúߎGÂè߀Ï?Ÿ‡_»ñ±Í“À!"ýkæqÿcë¿oDúWÌÿ"ÿÃü_¾‘ÿ)æÑÿiù_¾é_3ÿý›€ú}Ský¯—ÿ¦ü/ú?L˜K@þ—ODúטÿ8çqþoBL$€zf•þc»Ôòõ£Â—ú¿šTý‡’;ü_¬­ÿqÿ´ÿ±ø½æayý‡²Ÿò_ÓKý
-Ø\ÿã·
 Ã}wûüøeøÖÞüf–ïÿçúçÉ0áÕþܤ±ÿwÆfý¿xÿžúÝ÷þáþöñîoŸñ®þÃô?ü÷ÿm ÿÛîÿ}³Yÿ»ýá-Í¿f½þÛÐâÿ1ü'ßÈô¿d÷¿nÿ߆ñý?§Bþ«	ìÿÇpž®X«ÿéüÝg,;ÿ	%….Nýß±ßÿ9ÿÑg[ýO÷?IgþC7Í ÿ×Qý«õÿ^æ?0ÿÁŠ”
-ÀŽé_qþù/6pþç‘þ5æ?Ìý¿Üÿ™Àü߈ô¯9ÿÿŸ	„¿ùF¤ÍùÜÿ›@ÿ¯odçŠó¸ÿ7þ_߈ô¯ÑÿËüSèþñM­õ¿Jÿo
-£õ÷Ôÿ‹ÿdž¹'ÿOÎøœ!Ò¿Fÿ/óLÉ‘@Ïôtæ?´“ÿÿŸ	¢úkÎ ÿÅæ?øF¤Íùèßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_DúלÿÀù¯	¬ÿ¾é_sþý_&àÿòìüOqþý&àÿòHÿšóп	ø¿|Ský¯7ÿ¡=ù?ûæÿê‘þ«ù¿.ßÿ™ÿ`ïÿ¾è¿ÑÉÿ:û¿ü_ˆê_ÍÿU®ó¿xþ›p?â sŒHÿšù_¼ÿ™Àý¯oDú×Èÿš×ò?L ÿË7"ýkæáÿ4ù¾é_3ÿ‹ü8ÿõìüO1ÿÿ·	áCÇÀ1"ýWó]­ÿmKþ‡	± ÏÔZÿ«ù¿âÙÿ…ÿÓ„¹Ìÿó‰HÿÕü_—ó¿Jhп	ãý?’÷‹@ÿQ'ÿëtÿC‡ÿËQý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿.×ÿv|%Dÿ|þù|<üڍmžé_1ÿ‹üwXÿ}#Ò¿fþç¿&àÿòìüO1ÿ‹þOÈÿòHÿšù_èßÔï›Zë½ü¯pšÿØÑÿaÂ\ò¿|"Ò¿ÆüÇ9ÿ‹ób"Ô3ëôÿq©åëF…/õ5©ú¥´ø¿,X[ÿãþiÿcÿð{Í/Âòú—Ü•8Ô?åqþõ×gsýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸK¤ÿÓ„Wûÿ››ñì\±Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿðý?Æý¹ÿ3æßlÖÿnxKó¯Y¯ÿ6dÎÿMÀÿã™þ—ìþ×íÿÛt:ÿOþ?^íÿÇîoöÿÎX«ÿéüÝg,;ÿ	%….Nýß±‹ôš°­þ§ûŸ¤Òÿ›¦þßÈù¯	¢úWëÿ½Ìh¸ÿ7"åB°cDúלÿÀý¿	¼ÿûF¤ùsÿ/÷&0ÿÁ7"ý+Πÿ×îÿ|#Ò¿âüúm ÿ×7²ó?½ùôÿÚ@ÿ¯oDú×èÿç? èþñM­õ¿Vÿo7üù4ÿó?æüBߏàyà
-‘þ5úçùÜÿ™#'€žè?èÌh'ÿþ?DõW›ÿЁç¿ÌðHÿŠóZôoþ/߈ô_ËÿõÚÿ}^ÿ#ú7áSìyøE¤Íù-ú·€õß7"ýkΠÿËü_¾‘ÿ)Îàþ×ü_¾é_sþú7ÿ—oj­ÿõæ?´“ÿ‹ý¿	s	Èõ‰HÿÕü_—ïÿ%´ôšÀû¿oúoTü_qò¥€ÿËQý«ù¿Êeÿÿø+Áó߀›ø˜cDú×ÌÿâýÏî}#Ò¿Fþ×¼þ“ÿaù_¾é_3ÿÿ§	
-ÊwHÿšù_ä˜Àù¯odçŠù_ø¿M: Ž鿚ÿëjýo[ò?Lˆù{¦Öú_Íÿ[ò¿™KÀü?Ÿˆô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿˜ÿh‰¨þšù_Üÿš@þ—oDú×ÌÿBÿ&àÿòHÿÕü_×ëDÿ&|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿fþç¿&àÿòìüO-ÿ+Ñÿiù_¾é_1ÿ+£P¿oj­ÿõò¿&ÿG ÿĹäùD¤ùsþçÿ&ÄD¨gV鿹YjùúƒQáKý_M*ƒþC)ÿ—këÜ?íì~¯ùEX^ÿRbŠCýSûÿ©¿>›ëüv¸ïïnŸ¿ßÚÛßÌòýÿ\ÿ\èÿ°á¼ÿjÿ™kÁnÀ›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿßFÞÿMàüÏ7›õ¿ÛÞÒükÖë¿
-™üÈòLÿKvÿ«öÿ¹mÇ÷ÿÜòßL˜
-ðõ+ûŸ¬Õÿtþ¿î3–ÿ„’B§þïØ‘ÿoöúŸî’Jÿo:÷ÿrþk‚¨þÕú/óšŽùŸ6¤\h vŒHÿÌø×CÿoDúטÿ0÷ÿâÿ5ù¾éŸùÿzóHÿÌø×Cÿ¯odçÌø·Cÿ¯oDú×èÿç? èþñM­õ¿JÿoÞr3ú:ÖÎ÷¯ÿODú×èÿç?pÿgBŽœ zF ÿ 3ÿ¡=ù¿ðÿÙ ª?óþõ0ÿÁ7"ý3ÿá_þ/߈ô_ËÿõÚÿÍüS>õÇžG€_DúgþÿÖ߈ôÏü‡=ø¿|#;ÿcþÿü_¾éŸùÿzðù¦Öú_oþC;Í`ÿoÂyÿEþ«SDú¯æÿº|ÿ/¡¥ÿÓÞÿ}#УâÿŠgÿùÿ&ˆê_ÍÿU.ûÿùŸ6Üď8À#Ò¿fþï&pÿë‘þ5ò¿æõŸüÈÿòHÿšù_ø?M`þ‡oDú×Ìÿ¢ÿßÎ}#;ÿSÌÿÂÿmBøÐñ pŒHÿÕü_Wëÿ8ýò÷L­õ¿šÿ+Nþ/òÿm˜
-Àü?¯ˆô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿â4ÿ±àÿ²@TÍü/îM ÿË7"ýkæ¡ðùF¤ÿjþ¯ëõ?¢>ÿ|>~íÆÇ6O‡ˆô¯™ÿÅý	¬ÿ¾é_1ÿ‹üðùFvþ§˜ÿEÿ§	äùF¤Íü/ôoê÷M­õ¿^þWœò¿ð›pÞ‘ÿå‘þ5æ?Îù_œÿ›	 žY¥ÿ’–Z¾þ`TøRÿW“Ê ÿPJÂÿeÁÚú÷Oûû‡ßk~–׿õþ^Jc,õ7`sýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸó¿lhÛ©ìÿ}²Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿ-ý_6Ðýí›Íúßíoiþ5ëõßÎÿm ÿÉ72ý/Ùý¯ÚÿçÆó¿œ:òŸLøú•ý¿gÖê:ÿ_÷ËÎBI¡‹SÿwìbæüÇ‚mõ?Ýÿ,>^sþ›S˜ú9ÿ5ATÿjý¿—ùMÇúoCÊ…`Ljô¯9ÿûèÿñHÿóæüü&0ÿÁ7"ý+ÎHôÿš@ø›oDúלÿÀý¿	ôÿúFvþ§8ÿûèÿõHÿý¿óüôoÝ?¾©µþWéÿMÃsâtþ—¹ÿ3"ç©ø|"Ò¿Fÿïyþ÷6äÈ	 gú:óÚÉÿ…ÿÏQýÕæ?4]×ñü·€ù¾é_qþCƒþMÀÿå‘þkù¿^û¿gÿú7áSìyøE¤Íù俘Àúï‘þç?´Üÿ˜€ÿË7²ó?µùÃßCÿàÿòHÿŠóZôoþ/ßÔZÿëÍh§ùìÿM ÿÕ7"ýWó]¾ÿ—ÀüWxÿ÷@ÿŠÿ+žý_ÿ—¢úWó•ëü/žÿ&Üď8À#Ò¿fþï&pÿë‘þ5ò¿¦üŸqKˆþ
- ÿË7"ýkæáÿ4ù¾é_3ÿ‹ü8ÿõìüO1ÿÿ·	á =#Ò5ÿ×Õúß¶ä˜ò÷L­õ¿šÿ+žý_ø?M`þŸoDú¯æÿºœÿUBƒþMïÿ‘¼_ú:ù_qò5ø¿,Õ_-ÿ‹û_+ÈÿòHÿŠù_̱ÿ—oDú¯æÿº^ÿ#ú7áóÏçãá×n|ló$pˆHÿšù_Üÿ˜Àúï‘þ5ó¿8ÿ5ÿ—odçŠù_ôš@þ—oDú×ÌÿBÿ& ~ßÔZÿëåÅÉÿ…ÿÛò¿|#Ò¿ÆüÇsþ÷6ÄD¨gÖéñÈÇ?¾ÔÿÕ¤2è?”ðY°
 ¶þÇýÓþÇþá÷š_„åõ/¥‰ÃßKiÜR6×ÿøípßßÝ>?~¾µ‡7¿™åûÿ¹þ¹0ÿˆÙÿ{f³þ_¼Oýî{ÿpûx÷·ÏxWÿáEÿyø1îÿÛÀùŸ	tûf³þwûÃ[šÍzý·¡eý7æ/ßÈô¿d÷¿jÿŸsÏÿr"ÿÅú¿}³VÿÓùÿºÏXvþJ
-]œú¿cGÿ§
-ÛêºÿI*ý¿)Lý¿œÿš ªµþßËü‡¦cý·!åB°cDúלÿ@þ«	ôÿøF¤ùsþý&0ÿÁ7"ýkÎ`þ“	œÿûF¤ÅùÌÿµþ_ßÈÎÿôæ?îÿM ÿ×7"ýkôÿžç?4èߺ|Ský¯ÔÿÛÅ6Oý¿œÿ™óTü?>é_£ÿwžÿÀýŸ	9rèþ7
-_>ÿ¡eþƒ!¢ú«ÍhºŽüG˜ÿà‘þç?0ÿËü_¾é¿–ÿëµÿ{ö¡>õÇžG€_Dúלÿ@þ›	¬ÿ¾é_sþý_&àÿòìüOqþ÷¿&àÿòHÿšóп	ø¿|Ský¯7ÿ¡eþƒ!ä¿úF¤ÿjþ¯Ë÷ÿú?Màýß7ý7*þ¯xöµø¿,Õ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿiBƒò]#Ò¿fþù&pþëÙùŸ^þW‡ÿÛ„ð	€ž鿚ÿëjýo[ò?Lˆù{¦Öú_Íÿ[ò¿aþŸoDú¯æÿºœÿUBƒþMïÿ‘¼_ú:ù_qòEü_ˆê¯™ÿÅý¯	äùF¤Íü/ôoþ/߈ô_Íÿu¹þ·£%ýðùçóñðk7>¶y8D¤Íü/îL`ý÷Hÿšù_œÿš€ÿË7²ó?Åü/ú?M ÿË7"ýkæ¡P¿oj­ÿõò¿âäÿÂÿmù_¾é_cþãœÿÅù¿	1‘ ê™UúOíRË׌
-_êÿjRôJ	ø¿,X[ÿãþiÿcÿð{Í/ÂòúecýSNõ·`sýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸó¿l˜KðÏü"ÀnÀ›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿßâÿ±üßlÖÿnxKó¯Y¯ÿ6´ä¿˜Àzï™þ—ìþWíÿsÛ4ãþ?‘ÿbÃËþnçyàŠµúŸÎÿ×}ƲóŸPRèâÔÿ»ØpþcÁ¶úŸî’Jÿo
-Sÿ/ç¿&ˆê_­ÿ÷2ÿ¡é:òßMH¹Ð ì‘þ5ç?Ðÿcý?¾é_cþÃÜÿKÿ	ÌðHÿšóðÿ›@ø›oDúלÿÀý¿	ôÿúFvþ§7ÿ¡pÿoý¿¾é_£ÿ÷<ÿùO6Ðýã›Zë­þ߮˧þ¿ÈùŸ	s	þÉyúÏWˆô¯Ñÿ;ÏàþÏ„9ôŒ@ÿAgþC;ù¿ðÿ™ ª¿æüú?M`þƒoDúלÿ€þMÀÿå‘þkù¿^û¿gÿú7áSìyøE¤ÍùôšÀúï‘þ5ç?Ðÿeþ/ßÈÎÿç?pÿkþ/߈ô¯9ÿý›€ÿË7µÖÿzóÚiþûæÿê‘þ«ù¿.ßÿKhèÿ4÷ßôߨø¿âÙÿÕâÿ²@Tÿjþ¯rÿÅóß„›ø˜cDú×ÌÿâýÏî}#Ò¿Fþ×¼þ“ÿaù_¾é_3ÿÿ§	ÌÿñHÿšù_ä˜Àù¯odçzù_Ìÿ±!|èx 8F¤ÿjþ¯«õ¿mÉÿ0!äï™Zë5ÿW<û¿ðš0—€ù>鿚ÿërþW	
-ú7a¼ÿGò~è?êä1ÿÑQý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿.×ÿv´„£>ÿ|>~íÆÇ6O‡ˆô¯™ÿÅý	¬ÿ¾é_3ÿ‹ó_ðùFvþ§˜ÿEÿ§	äùF¤Íü/ôoê÷M­õ¿^þ×xÿ›»Žþæÿå‘þ5æ?Îù_œÿ›	 žY¥ÿ¦,µ|ýÁ¨ð¥þ¯&•Aÿ¡æ?š°¶þÇýÓþÇþá÷š_„åõ/eø÷Pÿ”‡_êoÀæú¿îû»ÛçÇ/÷öðæ7³|ÿ?×?—Àû¿	Sbüg®»WlÖÿ‹÷ï©ß}ïîoïþöïê?¼è??Æý¹ÿ7ó?ßlÖÿnxKó¯Y¯ÿ6dòM ùË72ý/Ùý¯Úÿç¶ßÿsâü߆© _¿²ÿ÷ÉZýOçÿë>cÙùO()tqêÿŽÃ8ÿ±`[ýO÷?I¥ÿ7û9ÿ5ATÿjý¿—ùMבÿjBÊ…`Ljô¯9ÿóèÿñHÿóèÿ5…ù¾é_sþç&pþï‘þç?ÿlý¿¾‘ÿ)Îàþßú}#Ò¿Fÿï<ÿý›@÷oj­ÿ•úOÿÓüöÿ&œï_3þŸˆô¯Ñÿ;ÏàþÏ„9ôŒ@ÿAgþC;ù¿ðÿ™ ª¿Úü‡vü•àùo ó|#Ò¿âü‡ý›€ÿË7"ý×
 ò½öŸ×ÿˆþMøÔ{~é_sþùï&°þûF¤Íùô™€ÿË7²ó?Åùô˜€ÿË7"ýkÎ@ÿ&àÿòM­õ¿Þü‡vò±ÿ7a* ù¯^鿚ÿëòý¿„†þOxÿ÷@ÿŠÿ+žý_þ/Dõ¯æÿ*×ù_<ÿM¸‰q€9F¤Íü/ÞÿLàþ×7"ýkäMù?ôÿAþ—oDúWÌÿjðšÐ |׈ô¯™ÿEþ‡	œÿúFvþ§˜ÿ…ÿÛ„ð¡ãà‘þ«ù¿®Öÿñ¯£bAþž©µþWóųÿÿ§	S˜ÿç‘þ«ù¿.ç•РÆû$ïþ£NþWœü_-þ/Dõ×Ìÿâþ×ò¿|#Ò¿fþú7ÿ—oDú¯æÿº^ÿ#ú7áóÏçãá×n|ló$pˆHÿšù_Üÿ˜Àúï‘þ5ó¿8ÿ5ÿ—odçŠù_ôš@þ—oDú×ÌÿBÿ& ~ßÔZÿëåç?âÿ6á| Kþ—SDúטÿxÎÿâþφ˜H õÌ:ý\jùúƒQáKý_M*ƒþC)Ì4amýû§ýýÃï5¿Ëë_J<Õ?å†ü76×ÿøípßßÝ>?~¾µ‡7¿™åûÿ¹þ¹DòŸL˜
-psÃþß'›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿßFîÿMàüÏ7›õ¿ÛÞÒükÖë¿
-™õßòŸ|#Óÿ’Ýÿªýÿûÿ&ÿdÂT ú¿½²VÿÓùÿºÏXvþJ
-]œú¿c—"ç?l«ÿéþ'©ôÿ¦0õÿrþk‚¨þÕú/óÚñW‚õ߀”
-ÀŽé_sþþ?èÿñHÿóèÿ5…ù¾é_sþç&þæ‘þ5ç?pÿoý¿¾‘ÿ)Îàþßú}#Ò¿Fÿï<ÿý›@÷oj­ÿ•ú»Ñø7öÿqþgÃT€¾Çÿã‘þ5úçùÜÿ™#'€žè?èÌhOþ/ü6ˆê¯9ÿü˜ÿà‘þ5ç? ðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_sþùï&°þûF¤Åù™þ/ðùFvþ§6ÿ!1ÿÕü_¾é_qþCFÿ&àÿòM­õ¿Þü‡vò±ÿ7a* ù¯^鿚ÿëòý¿„–þOxÿ÷@ÿŠÿ+žý_	ÿ—¢úWó•ëü/žÿ&Üď8À#Ò¿bþWËûŸ	ÜÿúF¤ü¯yý'ÿÃò¿|#Ò¿fþþO˜ÿá‘þ5ó¿Èÿ0ó_ßÈÎÿó¿ð›>t< #Ò5ÿ×Õúß¶ä˜ò÷L­õ¿šÿ+¶ä2€ù^鿚ÿërþW	-ú7a¼ÿGò~è?êäÅiþc‡ÿËQý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿®×ÿˆþMøüóùxøµÛ<	"Ò¿fþ÷?&°þûF¤Íü/ÎMÀÿåÙùŸbþýŸ&ÿå‘þ5ó¿Ð¿	¨ß7µÖÿzù_ñäÿø¿M˜
-@þ—WDúטÿ8çqþoBL$€zf•þ;¾þdTøRÿW“Ê ÿ»ÿ—+ëÜ?íì~¯úEX^ÿRbn†ú§q¹ þl­ÿñÛ᾿»}~ü2|io1Ë÷ÿsýsN¼ÿ›0—àŸ¹ì\±Uÿ/Ö¿§~÷½¸¿}¼ûëg¼«ÿð¢ÿ<ü÷ÿMâþÏÞ÷}³Uÿ»ýáMÍ¿f½þ›®°þ›€þ}#Òÿ¢Ýÿªýnº±ÿ;§€ÿÏ„‹ýÿׯ<\±RÿÓñÿÊÏXvþÊ ú8õÇ’
-ç?lªÿéú'-þ5Xsþ;ü3îÿB©¿’ú/lÿݐÿÐtüGR.4 ;F¢ÿ…í¿[æ?îÿm ÿÇ7ý/lÿ]7ÿáäÿi†ôoó|#ÑÿÂöß-óý¿6pßï‰þ¶ÿnÈ.ý¿6ÐÿëÑùß²ößMóèÿµþ_ßHô¿°ýwËù_Cÿ¯
-tÿø¦ÒúÿVûïrÿOþؤÑÿS˜ÿdÃ\‚³ÿ§ïy¸B¢ÿ…í¿öÿ™ü_#räÐ3Ûõtü_M{òáÿ³ARÿzþ¯Ëü‡¦‹ç¿ÌðDÿ*þ¯)ÿ­dôoþ/ßHô_ÍÿõÚÿ}^ÿú7áSäÈÇ1ý«ø¿Îó_Úý[Àúï‰þUü_Sþãx\„þ
-ÀÿåÑùŸ†ÿkÒ$ÿÙü_¾‘è_Åÿ5ÿ5ý›€ÿË7•Öÿ:þ¯—ûßÜEöÿ&Ì% ÿÕ'ý×ó]¾ÿ箥ÿÓÞÿ}³]ÿRþ×ÙÿÕáÿ²@Rÿzþ¯rÿÅóß„›ø˜c$úWÍÿâýÏî}#Ñ¿Jþ×yýä˜@þ—o$ú×ÌÿjñšÐ |×Hô¯šÿEþ‡	œÿúFtþ§™ÿ…ÿÛ„ð¡ãà‰þëù¿.×ÿ®Éä˜ò÷L¥õ¿žÿ+žý_ø?M˜KÀü?ŸHô_Ïÿu9ÿ+w-ú7a¼ÿGò~Ù®ÿ¨”ÿ&ÿWƒÿËIýUó¿¸ÿ5ü/ßHô¯šÿ…þMÀÿå‰þëù¿®×ÿ„þMøüóùxøµŸÛ<	"Ñ¿jþ÷?&°þûF¢Õü/ÎMÀÿåÑùŸfþýŸ&ÿå‰þUó¿Ð¿	¨ß7•ÖÿŠù_“ÿ#ÒÿaÂ\ò¿|"Ñ¿ÊüÇsþ÷6ÄD¨gVé?•Åž¯×Œ
-_êÿjRôJIø¿,X[ÿãþiÿcÿð{Í/Âòú—NõO¹¡þ&l®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿsýsaþ§
-/ûÿ¶þÀnÀ›õÿbþ{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏñü¿Eÿ6ÿâ›Íúßíoiþ5ëõßÞÿmÀÿã™þ—ìþWíÿsÛ4ãþ?uœÿ›ð²ÿÿú•ý¿CÖêº X÷ËÎBI¡‹Sÿw<ÍÿáüGŸmõ?] ¥¥¿kÎs:õÿÆÈùŸ	¢ú/l >Ýð­Êhºÿ¿	)€#ÒÿÂà÷õ5ÿ¡kÈ4÷߈ô¿°ø]ý¿žÿpîÿÌ1ù¾éaðúõ¿‰þ?ðûúF¤ÿ…
-Àïëÿ*ÿ™ù/FÐÿëÙùß²à÷õ=ÿ¡ãþßú}#ÒÿÂà
-çm‹þM ûÇ7µÖÿ·€G…/òÿ¤áM Mý¿…óæü“óôž®éað†ýàþφ9ôŒ@ÿAÅÿÕ´“ÿÿŸ	¢úWó]ç?wä?™Àü߈ô¯áÿšòߺý›€ÿË7"ý×ò½öÏþ/ôo§þØóð‹Hÿþ¯Iÿ±¡ÿÓÖ߈ô¯áÿšöÿÌ1ÿ—odç
-þ¯óü‡ŽþðùF¤
-ÿ×´þ·-ú7ÿ—oj­ÿUü_/÷¿eÜ æÿê‘þ«ù¿®æ?††þOxÿ÷@ÿŠÿ+žý_ÿ—¢úWó•ëü/žÿ&Üď8À#Ò¿fþï&pÿë‘þ5ò¿¦üŸqKˆþ
- ÿË7"ýkæáÿ4ù?¾é_3ÿ‹ü8ÿõìüO1ÿÿ·	áCÇÀ1"ýWó]­ÿmKþ‡	± ÏÔZÿ«ù¿âÙÿ…ÿÓ„¹Ìÿó‰HÿÕü_—ó¿Jhп	ãý?’÷‹@ÿQ'ÿ+Nþ¯ÿ—¢ú«åqÿkù_¾é_1ÿ‹ù/6àÿòHÿÕü_×ëDÿ&|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿fþç¿&àÿòìüO1ÿ‹þOÈÿòHÿšù_èßÔï›Zë½ü¯8ù¿ð›0—€ü/Ÿˆô¯1ÿñœÿÅýŸ
-1‘ ê™Uúo[¾þ`TøRÿW“Ê ÿP2ù_&¬­ÿqÿ´ÿ±ø½æayýK6ŠCýSnõ·`sýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸ‡³þ[ð²ÿ¿¹aÿïÍúñþ=õ»ïýÃýíãÝß>ã]ý‡ýçáǸÿoÉÿ¶üßlÖÿnxKó¯Y¯ÿ–û#пodú_²û_µÿÏmÓŒûÿTØÿ›ð²ÿ§ÿÛ%kõ?ÿ¯ûŒeç?¡¤ÐÅ©ÿ;v1rþcÁ¶úŸî’Jÿo:åÿÇÀù¯	¢úWëÿ½ÌhºŽû?R.4 ;F¤Åùä?Û@ÿoDúטÿ0çÿló|#Ò¿æüü¿&þæ‘þç?0ÿÍú}#;ÿÓ›ÿP¸ÿ7þ_߈ô¯Ñÿ{žÿ@þ³
-tÿø¦Öú_©ÿ·éäÿé:öÿ&Ì%ø§ï§?ð<p…Hÿý¿çùÜÿِ#'€žè?èÌh§ùøÿLÕ_mþCÓu俚Àü߈ô¯8ÿügðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_qþC¢ÿÓÖ߈ô¯9ÿþ/ðùFvþ§8ÿþðùF¤Íùèßü_¾©µþ×›ÿÐNóØÿ›0—€üWŸˆô_Íÿuùþ_BCÿ§	¼ÿûF ÿFÅÿÏþ¯„ÿËQý«ù¿ÊuþÏnâG`Žé_1ÿ«áýÏî}#Ò¿Fþ×¼þÓÿgù_¾é_3ÿÿ§	ÌÿðHÿšù_ä˜Àù¯odçŠù_ø¿M: Ž鿚ÿëjýoò?Lˆù{
 ¦Öú_ÍÿÏþ/üŸ&Ì%`þŸODú¯æÿºœÿUBƒþMïÿ‘¼_ú:ù_qšÿØáÿ²@TÍü/îM ÿË7"ýkæ¡ðùF¤ÿjþ¯Ëõ¿·è߀Ï?Ÿ‡_»ñ±Í“À!"ýkæqÿcë¿oDú×Ìÿâü×ü_¾‘ÿ)æÑÿiù_¾é_3ÿý›€ú}Ský¯—ÿ§ùø¿M˜K@þ—ODúטÿ8çqþoBL$€zf•þÛÅ‘_0*|©ÿ«IeÐ(…ù&¬­ÿqÿ´ÿ±ø½æayýKIqø{)Û@êoÀæú¿îû»ÛçÇ/÷öðæ7³|ÿ?×?—ÀýŸ	ã×?nýÿ™kÁnÀ›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿߢ2zwÍfýïö‡·4ÿšõúoC&ÿÑü?¾‘éÉîÕþ?·åtþŸ¸ÿ·aüúÇÖoöÿ>Y«ÿéüÝg,;ÿ	%….Nýß±‹-ç?l«ÿéþ'©ôÿ¦0ÍàüÏQý«õÿ^æ?4]Gþ«	)€#Ò¿æüöÿ&ðþï‘þ5æ?Ðÿk
-ó|#Ò¿æüòßM üÍ7"ýkÎàþßú}#;ÿÓ›ÿÐqÿoý¿¾é_£ÿ÷<ÿ¡Eÿ&Ðýã›Zë¥þß.”©ÿÿ¯
-ã×ß÷ø¼"Ò¿Fÿï<ÿû?räÐ3ýùíäÿÂÿg‚¨þšóÈ1ù¾é_sþú7ÿ—oDú¯åÿzíÿžý_èß„Oý±çà‘þç?0ÿÓÖ߈ô¯9ÿþ/ðùFvþ§8ÿþðùF¤Íùèßü_¾©µþ×›ÿÐNþ/öÿ&Œ_?ù¯~鿚ÿëòý¿„†þOxÿ÷@ÿ‹‡AŒ
-_ìÿŠgÿWÆÿe¨þÕü_å:ÿ‹ç¿	7ñ#0Ljô¯™ÿÅûŸ	ÜÿúF¤ü¯yý§ÿÏò¿|#Ò¿fþþO”ï‘þó¿Èÿ°ó_ßÈÎÿó¿ð›>t< #Ò5ÿ×Õúß¶ä˜ò÷L­õ¿šÿ+žý_ø?M¿~æÿùE¤ÿjþ¯Ëù_%4èß„ñþÉûE ÿ¨“ÿ'ÿWÂÿe¨þšù_Üÿš@þ—oDú×ÌÿBÿ&àÿòHÿÕü_—ëKþ»Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿ+Nþ/üß&Œ_?ù_~é_cþãœÿÅù¿	1‘ ê™uú_êøú“QáKý_M*ƒþCçÿáÿÒgeýû§ýýÃïU¿Ëë_r)ÃßK©ÍÔß„­õ?~;Ü÷w·Ï_†/íáí/fùþ®Îø¿m˜KpÞÿGî}±Uÿ/Ö¿§~÷½¸¿}¼ûëg¼«ÿðý?Æý“п	¼ïûf«þwûÛšÍzý7]áüßš¿|#Òÿ¢ÝÿºýӍýß9Eü&\ìÿ¿~åyàŠ•úŸŽÿW~ƲóŸPRèâÔÿË8ÿ—ó}6Õÿtý“ÿ¬9ÿþ÷§þꯏ¤þÛ7ä?4]$ÿÑ„”
-ÀŽ‘èaûï–ù¥åþßÎû}#ÑÿÂößuóÎù	ÿŸ	ÌðDÿÛ·Ìä¿ÚÀù¿o$ú_Øþ»!ÿ¹t™ûèÿõèüoYûï¦ùûèÿõDÿÛ·œÿ5ý›@÷o*­ÿoµÿ®êÿ-ÍÉÿÓ%æ?›0—àìÿÉ™ç+$ú_Øþ»aÿŸ;îÿlÈ‘@Ïl×ÐñÖÿ&àÿ³ARÿzþ¯ëù‘ýŸ	ÌðDÿ*þ¯)ÿmXпø¿|#Ñ5ÿ×kÿ÷ìÿBÿ&|ê= ¿Hô¯âÿ:Ïiú·€õß7ý«ø¿¦üÇ®Ðÿeþ/߈Îÿ4ü_çù‘þðùF¢ÿ×tþ×ôoþ/ßTZÿ«ù¿òìÿbÿoÂ\ò_}"Ñ=ÿ×åûî2ýŸ&ðþï›íúo”ò¿Îþ¯„ÿËIýëù¿ÊuþÏnâG`Ž‘è_3ÿ+óþgï{¾‘è_%ÿk^ÿÉÿ0ü/ßHô¯šÿ…ÿÓ„å»F¢Õü/ò?Làü×7¢ó?Íü/üß&„ ÇHô_Ïÿu¹þwM&ÿÄX¿g*­ÿõü_ñìÿÂÿiÂ\æÿù
 D¢ÿzþ¯Ëù_¹Ëèß„ñþÉûe»þ£Rþ×éþ/¤‚ÿËIýUó¿¸ÿ5ü/ßHô¯šÿ…þMÀÿå‰þëù¿®×ÿ„þMøüóùxøµŸÛ<	"Ñ¿jþ÷?&°þûF¢Õü/ÎMÀÿåÑùŸfþýŸ&ÿå‰þUó¿Ð¿	¨ß7•ÖÿŠù_“ÿ#ÒÿaÂ\ò¿|"Ñ¿ÊüÇ9ÿ‹ób"Ô3«ôÓbÏ×kF…/õ5©úeìÿÄÿ¥ÏÚú÷Oûû‡ßk~–׿äîTÿ”›†ú[°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ…üþØÿÇ»WlÖÿ‹ùï©ß}ïîoïþöïê?üGÿÏñü¿
-俘Àû¾o6ë·?¼¥ù׬×ZÞÿM ùË72ý/Ùý¯Ûÿ·á´ÿO…óþØÿýÊþßkõ?] ¬ûŒeç?¡¤ÐÅ©ÿ;v1pþcÁ¶úŸ.€¯9ÿþû?†ÿú[ ªÿÂàÓ
-ߪü‡¦+øÿMH¹Ð ì‘þ6 ¿¯ÿ«ùã5 ú7€ó?߈ô¿°ø]ý¿žÿpîÿÌ1ù¾éaðúõ¿ä?ÚÀù¿oDú_Ø ü¾þ¯òŸCÃý¿	ôÿúFvþ·¬ø}ý_Ï(Üÿ›@ÿ¯oDú_Ø ¼áü¯mп	tÿø¦ÖúÿVð¨ð¥ý¿¥;­ÿã#ý0—àäÿÉÿ3Dú_Ø ¼aÿ¸ÿ³!GN =#ÐPñ5íäÿÂÿg‚¨þÕü_×ùÏû?˜ÿà‘þ5ü_Sþ[× ðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_Ãÿ5é?&ú?M`ý÷Hÿþ¯iÿú¿LÀÿåÙùŸ‚ÿë<ÿ¡£ÿÃü_¾é_Ãÿ5­ÿm‹þMÀÿå›Zë-ÿ×tÿ›»Žý¿	s	Èõ‰HÿÕü_WóCCÿ§	¼ÿûF ÿF'ÿëìÿŠø¿,Õ¿šÿ«\åu<ÿM¸‰q€9F¤Íü/ÞÿLàþ×7"ýkäÍë?ù&ÿå‘þ5ó¿ðšÐ |׈ô¯™ÿEþ‡	œÿúFvþ§˜ÿ…ÿÛ„ð¡ãà‘þ«ù¿®Öÿ¶!ÿÄX¿gj­ÿÕü_§ûßÈÿ·a.óÿ|"Ò5ÿ×åü¯ôoÂxÿäý"ÐÔÉÿ:ÝÿÅá‘€ÿË Qý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿.×ÿv<Fÿ|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿bþù6àÿòìüO1ÿ‹
 þOÈÿòHÿšù_èßÔï›Zë½ü¯0åÑÿaÂ\ò¿|"Ò¿ÆüÇ9ÿ‹ób"Ô3«ôŸº¥–¯?¾ÔÿÕ¤2è?”Òàÿ²`mýû§ýýÃï5¿Ëë_Jh‡¿—ÒKý
-Ø\ÿã·Ã}wûüøeøÖÞüf–ïÿçúçÉ0áeÿs3ýÝ€+6ëÿÅû÷Ôï¾÷÷·wûŒwõ^ôŸ‡ãþ¿œÿ™@þ‹o6ë·?¼¥ù׬×2ë¿	ø|#Óÿ’Ýÿªýn›fÜÿ'úlxÙÿ½ßìÿݱVÿÓùÿºÏXvþJ
-]œú¿ãðÎ,ØVÿÓýORéÿMSÿoäü×Qý«õÿ^æ?4]Gþ›	)€#Ò¿âüò_màýß7"ýk̘ûéÿ3ù¾é_sþóŸL üÍ7"ý+ΠÿÇú}#;ÿÓ›ÿÐqÿoý¿¾é_£ÿ÷<ÿ¡Eÿ&Ðýã›Zë¥þß.„©ÿü?æüÓ÷Óx¸B¤þßyþ÷&äÈ	 gú:óÚÉÿ…ÿÏQýÕæ?´ù_60ÿÁ7"ý+Î ÿÕü_¾é¿–ÿëµÿû¼þGôo§þØóð‹HÿŠóȳõß7"ýkΠÿËü_¾‘ÿ)ΠÿÃü_¾é_sþú7ÿ—oj­ÿõæ?´“ÿ‹ý¿	s	Èõ‰HÿÕü_—ïÿ%4ôšÀû¿oúoTü_ñìÿêðY ª5ÿW¹ÎÿâùoÂMüˆÌ1"ýkæñþg÷¿¾é_#ÿkÊÿþ3ôoù_¾é_1ÿ«Áÿió|#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÇ¿Žþ
-ˆù{¦Öú_ÍÿÏþ/üŸ&Ì%`þŸODú¯æÿºœÿUBƒþMïÿ‘¼_ú:ù_qòµø¿,Õ_3ÿ‹û_ÈÿòHÿšù_èßü_¾鿚ÿëzýèß„Ï?Ÿ‡_»ñ±Í“À!"ýkæqÿcë¿oDú×Ìÿâü×ü_¾‘ÿ)æÑÿiù_¾é_3ÿý›€ú}Ský¯—ÿ™ÿhÈ\ò¿|"Ò¿ÆüÇsþ÷6ÄD¨gÖé?/µ|ýÁ¨ð¥þ¯&•Aÿ¡”ˆÿË‚µõ?îŸö?ö¿×ü",¯)!û¿”þ?6×ÿøípßßÝ>?~¾µ‡7¿™åûÿ¹þyø7ë¿/ûÿ”Øÿ;d³þ_¼Oýî{ÿpûx÷·ÏxWÿáEÿyø1îÿÛÀùŸ	ä¿øf³þwûÃ[šÍzý·!“ÿdë½odú_²û_µÿÏmÓŒûÿÔqþgÂËþŸþo—¬Õÿtþ¿î3–ÿ„’B§þïØÑÿiöúŸî’Jÿo
-Sÿ/ç¿&ˆê_­ÿ÷2ÿ¡éȳ!åB°cDúלÿÀù¿	ôÿøF¤ùsþý&0ÿÁ7"ý+ÎHÌ2ð7߈ô¯8ÿù¿6ÐÿëÙùŸâüîÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_¥ÿ7
-o1þŸ®ÿcÂ\‚ú~úÏWˆô¯Ñÿ;ÏàþÏ„9ôŒ@ÿAgþCËüCDõW›ÿÐtû?˜ÿà‘þç?0ÿËü_¾é¿–ÿëµÿ{ö¡>õÇžG€_Dúלÿ@ÿ§	¬ÿ¾é_sþý_&àÿòìüOqþý&àÿòHÿšóп	ø¿|Ský¯7ÿ¡eþƒ!s	Èõ‰HÿÕü_—ïÿ%4ôšÀû¿oúoTü_ñìÿÊø¿,Õ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿió|#Ò¿bþù6pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–übAþž©µþWóųÿÿ§	s	˜ÿç‘þ«ù¿.ç•РÆû$ïþ£Nþó-Õ_3ÿ‹û_ÈÿòHÿšù_èßü_¾鿚ÿërýo‡
-#ú·àóÏçãá×n|ló$pˆHÿšù_Üÿ˜Àúï‘þ5ó¿8ÿ5ÿ—odçŠù_ôš@þ—oDú×ÌÿBÿ& ~ßÔZÿëåMþ@ÿ‡	s	Èÿò‰Hÿóçü/ÎÿMˆ‰PϬÒ[–Z¾þ`TøRÿW“Ê ÿP
-óMX[ÿãþiÿcÿð{Í/Âòú—’š8Ô?åñþ‡úë³¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ%²ÿ7aÚ›
-ûÿ¹ì\±Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿmäþß„ŒÞ]³Yÿ»ýá-Í¿f½þېÉ4ü'ßÈô¿d÷¿jÿŸÛrÚÿ'îÿm¿þ±õ›ý¿OÖê:ÿ_÷ËÎBI¡‹SÿwìbÇùÛêºÿI*ý¿éÜÿËù¯	¢úWëÿ½ÌhºŽüWR.4 ;F¤ÍùìÿM ÿÇ7"ýkÌ ÿ׿?øF¤Åù
-÷ÿ&þæ‘þ5ç?pÿoý¿¾‘ÿ)Îàþßú}#Ò¿Fÿï<ÿý›@÷oj­ÿUúÓð&ÐåÑÿCþ¯§Û׌ÿÇ+"ýkôÿÎó¸ÿ3!GN =#ÐЙÿÐNþ/ü&ˆê¯6ÿ¡þϘÿà‘þç?´èßü_¾é¿–ÿëµÿû¼þGôo§þØóð‹HÿšóÈ7õß7"ýkΠÿËü_¾‘ÿ)Îàþ×ü_¾é_sþú7ÿ—oj­ÿõæ?´Óüöÿ&LÏfü_^鿚ÿëòý¿„–þOxÿ÷@ÿŠÿ+Nþ¯ðY ª5ÿW¹ìÿÌÿ²á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿió?|#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–übAþž©µþWóųÿÿ§	ã×Ïü?¿ˆô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿â”ÿ•ñY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×õúÑ¿	Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSËÿJôÚ@þ—oDúWÌÿÊèßÔï›Zë½ü¯8ù¿ð›0=›ñyE¤ùsþçÿ&ÄD¨gVé?.ŽüúƒQáKý_M*ƒþCÉÿ—këÜ?íì~¯ùEX^ÿ’»Óþ/å†ü76×ÿøípßßÝ>?~¾µ‡7¿™åûÿ¹þ¹ÿkÃ\‚¦:°ÿwÆfý¿xÿžúÝ÷þáþöñîoŸñ®þÃô?ü÷ÿ-ïÿ6pÿï›Íúßíoiþ5ëõ?Èÿ	4ùF¦ÿ%»ÿuûÿ6Œïÿ9öÿ&ü±ÿÁy¸b­þ§óÿuŸ±ìü'”º8õÇnœÿÍù>ÛêºÿI:
 óº©ÿ·¥þˆê_­ÿ÷2ÿ¡é:ü?&¤\h vŒHÿŠóþ8ÿóHÿóæüòßM`þƒoDúWœÿðÿ™Àù¿oDúWœÿÐpÿoý¿¾‘ÿéÍ(Üÿ›@ÿ¯oDú×èÿ=Ï ÿǺ|Ský¯Òÿ›Âý1úºÂþß„¹'ÿOßãÿq†Hÿý¿çùÜÿِ#'€žè?èÌh'ÿþ?DõW›ÿÐtóM`þƒoDúWœÿРðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_qþC¢ÿÓÖ߈ô¯9ÿþ/ðùFvþ§6ÿ!vô˜€ÿË7"ý+ÎhÑ¿	ø¿|Ský¯7ÿ¡æ?°ÿ7a.ù¯>鿚ÿëòý¿„†þOxÿ÷@ÿ‹‡AŒ
-_žÿuö%ü_ˆê_ÍÿU®ó¿xþ›p?â sŒHÿŠù_
-ï&pÿë‘þ5ò¿æõŸþ?ÈÿòHÿšù_ø?MhP¾kDú×Ìÿ"ÿÃÎ}#;ÿSÌÿÂÿmBøÐñ pŒHÿÕü_WëېÿaB,Èß3µÖÿjþ¯xöáÿ4a.óÿ|"Ò5ÿ×åü¯ôoÂxÿäý"ÐÔÉÿ:ÝÿÅPðY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×åúߎ[ôoÀçŸÏÇÃ¯ÝøØæIà‘þ5ó¿¸ÿ1õß7"ýkæqþkþ/ßÈÎÿó¿èÿ4ü/߈ô¯™ÿ…þM@ý¾©µþ×Ëÿ
-§ùý&Ì% ÿË'"ýkÌœó¿8ÿ7!&@=³Jÿm^jùúƒQáKý_M*ƒþC)
-þ/ÖÖÿ¸ÚÿØ?ü^ó‹°¼þ¥¤4ü½áÇøü§þúl®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿsýs‰¼ÿ›0oûÿ™kÁnÀ›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿßFîÿLÈèÝ5›õ¿ÛÞÒükÖë¿
-™õßš¿|#Óÿ’Ýÿªýn˨ÿœèÿ±aüúǶoöÿ>Y«ÿéüÝg,;ÿ	%….Nýßqøç?l«ÿéþ'©ôÿ¦©ÿ7rþk‚¨þÕú/óîÿH¹Ð ì‘þ5ç?°ÿ7þ߈ô¯1ÿaîÿ%ÿÕæ?øF¤ÍùôÿšÀù¿oDúWœÿ@ÿ¯
-ôÿúFvþ§7ÿþ_èÿõHÿý¿çùôÿÚ@÷oj­ÿUúÓð&PÊÔÿËùŸ	ã×ß÷ø¼"Ò¿Fÿï<ÿû?räÐ3ýùíäÿÂÿg‚¨þjóÚñW‚ç¿ÌðHÿŠóZôoþ/߈ô_ËÿõÚÿ}^ÿ#ú7áSìyøE¤ÅùMƒþ-`ý÷Hÿšóèÿ2ÿ—odçŠó¸ÿ5ÿ—oDúלÿ€þMÀÿå›Zë½ùíÉÿØÿ›0}ýø¿¼"Ò5ÿ×åû	
-ýŸ&ðþïþÿW<û¿:ü_ˆê_ÍÿU®ó¿xþ›p?â sŒHÿšù_¼ÿ™Àý¯oDú×Èÿšò†ÿý[@þ—oDúWÌÿjðšÐ |׈ô¯™ÿEþ‡	œÿúFvþ§˜ÿ…ÿÛ„ð¡ãà‘þ«ù¿®Öÿñ¯£bAþž©µþWóųÿÿ§	ã×Ïü?¿ˆô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿âäÿjñY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×õúÑ¿	Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿ+Nþ/üß&L_?þ/¯ˆô¯1ÿñœÿÅýŸ
-1‘ ê™uúï–Z¾þ`TøRÿW“ÆùÏ¡”ŒÿË‚µõ?îŸö?ö¿×ü",¯)©þ^J¹!ÿÍ„Íõ?~;Ü÷w·Ï_†oíáÍofùþ®.‘ü'Ưÿæ†ý¿W6ëÿÅû÷Ôï¾÷÷·wûŒwõ^ôŸ‡ãþ¿¼ÿ›Ñ»k6ë·?¼¥ù׬×2þÈòLÿ
 Kvÿ«öÿ¹-£þsbþ—
-ã×Oÿ·_Öê:ÿ_÷ËÎBI¡‹SÿwìRàüÇ‚mõ?Ýÿ$•þߦþ_ÎMÕ¿Zÿïeþó¬H¹Ð ì‘þ5ç?°ÿ7þ߈ô¯1ÿaîÿ%ÿÝæ?øF¤ÍùøÿL üÍ7"ýkÎàþßú}#;ÿSœÿÀý¿	ôÿúF¤þ_æ?˜B÷oj­ÿUúÓðœž!å®pÿgÂøõ÷=þ¯ˆô¯ÑÿËüSräÐ3ýùíÉÿ…ÿÏQý5ç?0ÿ׿?øF¤Íùèßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_Dúלÿ@þ‹	¬ÿ¾é_sþ÷?&àÿòìüOmþC
-ô˜€ÿË7"ý+ÎÈèßü_¾©µþ×›ÿÐNóØÿ›0~ýä¿úE¤ÿjþ¯Ë÷æ?XÁû¿oúoTü_ñìÿŠø¿,Õ¿šÿ«\öÿç¿7ñ#0Ljô¯™ÿÅûŸ	ÜÿúF¤ü¯yý'ÿÃò¿|#Ò¿fþþO˜ÿá‘þ5ó¿Èÿ0ó_ßÈÎÿó¿ð›>t< #Ò5ÿ×Õúß¶ä˜ò÷L­õ¿šÿ+Nþ/òÿm¿~æÿùE¤ÿjþ¯Ëù_%´èß„ñþÉûE ÿ¨“ÿ§ùÿ—¢úkæqÿkù_¾é_3ÿý›€ÿË7"ýWó]¯ÿý›ðùçóñðk7>¶y8D¤Íü/îL`ý÷HÿŠù_䨀ÿË7²ó?Åü/ú?M ÿË7"ýkæ¡P¿oj­ÿõò¿â”ÿ…ÿÛ„ñë'ÿË/"ýkÌœó¿8ÿ7!&@=³Jÿy±åëF…/õ5©ú¥0ÿÑ„µõ?îŸö?ö¿×ü",¯))Ïÿ”ü&l®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿsýs‰ô›0íþÙÿ{e³þ_¼Oýî{ÿpûx÷·ÏxWÿáEÿyø1îÿÛÀý¿	´úf³þwûÃ[šÍzý·Ìÿ2ÿodú_²û_µÿÏm7öçDþ‹
-S÷7û¯¬Õÿtþ¿î3–ÿ„’B§þïØþÎôÙVÿÓýORéÿMaêÿåü×Qý«õÿ^æ?4]Gþ«	)€#Ò¿æüü&ðþï‘þ5æ?ÿa
-ó|#Ò¿âü‡Äý¿	„¿ùF¤ÅùôÿÛ@ÿ¯odçzó
-÷ÿ&Ðÿë‘þ5úÏó˜ÿjÝ?¾©µþWêÿíbý¹ÃÿcC}?– ÿODú×èÿ=Ïàþφ9ôŒ@ÿAgþC;ù¿ðÿ™ ª¿Úü‡†ýŸÌðHÿŠóôoþ/߈ô_ËÿõÚÿ=û¿Ð¿	ŸúcÏ#À/"ýkÎ ÿÝÖ߈ô¯8ÿ¡¥ÿËü_¾‘ÿ©Íˆý&àÿòHÿŠóȶÿ—oj­ÿõæ?´Óüöÿ&ÿê‘þ«ù¿.ßÿKhèÿ4÷ßôߨø¿âÙÿÕâÿ²@Tÿjþ¯rÿÅóß„›ø˜cDú×ÌÿâýÏî}#Ò¿Fþ×¼þ“ÿaù_¾é_3ÿÿ§	
-ÊwHÿšù_ä˜Àù¯odçzù_þo‡Ž€cDú¯æÿºZÿÛ–ü"@]Ský¯æÿŠgÿþO˜ÿç‘þ«ù¿.ç•РÆû$ïþ£NþWœü_ÿ—¢úkæqÿkù_¾é_3ÿý›€ÿË7"ýWó]®ÿíh	Gÿ|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿fþç¿&àÿòìüO1ÿ‹þOÈÿòHÿšù_èßÔï›Zë½ü¯8ù¿ð›@þ—oDúטÿ8çqþoBL$€zfþÓRË׌
-_êÿjRôJÁÿeÂÚú÷Oûû‡ßk~–׿”TÆý_Êcþõ×gsýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸKdÿoÂP‰Èþß/›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿßòL ýÓ7›õ¿ÛÞÒükÖë¿
-™õßš¿|#Óÿ’Ýÿªýn»±ÿ;'úl ÿÛ7kõ?ÿ¯ûŒeç?¡¤ÐÅ©ÿ;väÿÛ°­þ§ûŸÅ‡ÁkÎs
-ôÿ"ªµþßËü‡¦cþ§
-)€#Ò?óþõÐÿã‘þ5æ?Ìý¿øM`þƒoDúgþÿÎÿ}#Ò?óþõÐÿëÙùóþíÐÿë‘þ5úçùèߺ|Ský¯ÔÿÛÅÔÐÿkH9%Àÿã‘þ5úçùÜÿ™#'€žè?èÌh'ÿþ?Dõgþÿæ?øF¤æ?üëÁÿå‘þkù¿^û¿™ÿ`ʧþØóð‹HÿÌø×Ãúï‘þ™ÿð¯ÿ—odçÌø·ƒÿË7"ý3ÿá_þ/ßÔZÿëÍh'ÿûÈõHÿÕü_—ïÿ%4ôšÀû¿oúoTü_ñìÿÊø¿,Õ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿiBƒò]#Ò¿bþù6pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–ü"@]Ský¯æÿŠgÿþO˜ÿç‘þ«ù¿.ç•РÆû$ïþ£NþWœü_	ÿ—¢úkæqÿkù_¾é_3ÿý›€ÿË7"ýWó]®ÿí°aDÿ|þù|<üڍmžé_3ÿ‹ûXÿ}#Ò¿fþç¿&àÿòìüO1ÿ‹þOÈÿòHÿšù_èßÔï›Zë½ü¯8ù¿ð›@þ—oDúטÿ8çqþoBL$€zf•þO|ü“QáKý_M*ƒþCîð™°²þÇýÓþÇþá÷ª_„åõ/yòÿ¦vœÿ@ýõÙZÿã·Ã}wûüøeøÒÞþb–ïÿçúçœØÿ›0—à¼ÿÜúb«þ_¬Oýî{ÿpûx÷×ÏxWÿá?ú~Œûÿ&‘ÿ`ïû¾ÙªÿÝþð¦æ_³^ÿMWXÿM@ÿ¾éÑîÝþ¿éÆþÿkÃÅþÿëWž®X©ÿéøåg,;ÿ	%….Nïÿ±$òÿMØTÿÓõOZük°æüwøgÜÿ…&P$õ_Øþ»!ÿ¡éȱ!åB°c$ú_Øþ»eþCaþ·
-œ÷ûF¢ÿ…í¿ëæ?œó?"þ_˜ÿà‰þ¶ÿn™ÿÎÿL üÍ7ý/lÿݐÿ\Æ¿†þ
- ÿ×7¢ó¿eí¿›æ?Ðÿcý¿¾‘èaûï–ó¿Ñ„þ
- ûÇ7•Öÿ·ÚWõÿ–˜GÿOyÿ7a.ÁÙÿ“3ÏWHô¿°ýwÃþ?wÜÿِ#'€žÙ®ÿåÍÀ£Â—ÏhOþ/ü6Hê_Ïÿu=ÿüg˜ÿà‰þUü_Sþ[iÑ
 ¿	ø¿|#Ñ5ÿ×kÿ÷ìÿBÿ&|ê= ¿Hô¯âÿ:Ïaþ·
-¬ÿ¾‘è_Åÿ5å?v™þ/ðùFtþ§áÿ:Ïô˜€ÿË7ý«ø¿¦ó¿&£ðù¦Òú_Íÿ5Ýÿæ.²ÿ7a.ù¯>‘连ÿëòý?w-þOxÿ÷Ívý7Jù_gÿWÁÿe¤þõü_å:ÿ‹ç¿	7ñ#0ÇHô¯šÿÅûŸ	¼ïùF¢•ü¯óúÉÿ0ü/ßHô¯šÿ…ÿÓ„å»F¢Õü/ò?Làü×7¢ó?Íü/üß&„ ÇHô_Ïÿu¹þwM&ÿÄX¿g*­ÿõü_ñìÿÂÿiÂ\æÿùD¢ÿzþ¯Ëù_¹kÑ¿	ãý?’÷ËvýG¥ü¯0ù¿þ/$õ×Ìÿâþ×ò¿|#Ñ¿fþó_lÀÿå‰þëù¿®×ÿ„þMøüóùxøµŸÛ<	"Ñ¿jþ÷?&°þûF¢Õü/ÎMÀÿåÑùŸfþýŸ&ÿå‰þUó¿Ð¿	¨ß7•ÖÿŠù_“ÿ#ÒÿaÂ\ò¿|"Ñ¿ÊüÇsþ÷6ÄD¨gVé¿I‹=_¯¾ÔÿÕ¤2è?”Üáÿ²`mýû§ýýÃï5¿Ëë_Jèš¡þ)7‘ú[°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ…ùŸ6ÌÛþæZ°pÅfý¿˜ÿžúÝ÷þáþöñîoŸñ®þËþóðc<ÿo™ÿaç¾Ù¬ÿÝþð–æ_³^ÿm ÿÛÖ{ßÈô¿d÷¿jÿŸÛv|ÿÏ©ÃÿgÂT€¯_Ùÿûd­þ§€uŸ±ìü'”º8õÇ.Òÿi¶úŸ.€¯9ÿÍéÔÿç¿&ˆê¿°øt÷*ÿ¡é:îÿMH¹Ð ì‘þ6 ¿¯ÿ«ù]Ãý¿	ø}|#ÒÿÂàwõÿzþùÿüW˜ÿà‘þ6 ¯_ÿÛ˜8ÿ3ð7߈ô¿°ø}ý_å?‡†ûèÿõìüoYðûú¿žÿP¸ÿ7þ_߈ô¿°xÃù_Û èþñM­õÿ­àQáû»pêÿ)ã•0ú7à|ÿšñÿøD¤ÿ…
-Àöÿû?räÐ3ýÿWÓžü_øÿlÕ¿šÿë:ÿ¹kyþ[Àü߈ô¯áÿšòߺý›€ÿË7"ý×ò½öÏþ/ôo§þØóð‹Hÿþ¯Iÿ1‘ÿbë¿oDú×ðMûÿÐÒÿeþ/ßÈÎÿü_çùý&àÿòHÿþ¯iýo[ôoþ/ßÔZÿ+ù¿Î÷¿eøèß‚© ä¿zE¤ÿjþ¯«ù¡¡
 ÿÓÞÿ}#УâÿŠgÿWƒÿËQý«ù¿ÊuþÏnâG`Žé_3ÿ‹÷?¸ÿõHÿù_óúOþ‡	äùF¤Íü/üŸ&4(ß5"ýkæ‘ÿa翾‘ÿ)æáÿ6!|èx 8F¤ÿjþ¯«õ¿mÉÿ0!äï™Zë5ÿW<û¿ðš0€ù^鿚ÿërþW	
-ú7a¼ÿGò~è?êäÅÉÿðY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×åúߎ¯„è߀Ï?Ÿ‡_»ñ±Í“À!"ý+æ‘ÿnë¿oDú×Ìÿâü×ü_¾‘ÿ)æÑÿiù_¾é_3ÿý›€ú}Ský¯—ÿ5Þÿæ®ÃÿmÂù –ü/§ˆô¯1ÿqÎÿâüß„˜H õÌ*ý·—Z¾þ`TøRÿWsšÿÊØÿ…ÿKŸµõ?îŸö?ö¿×ü",¯)iüïSÊcÿ/õ×gsýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸK$ÿÁ„ñËKÀþß'›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úÏÏqÿßFöÿ&Ðþé›Íúßíoiþ5ëõ߆Lþ‹	¬÷¾‘éÉîÕþ?·ÝØÿæÿÚ0ö~³ÿ÷ËZýOçÿë>cÙùO()tqêÿŽÝðHàüÇ€mõ?Ýÿ$•þߦþ_ÎMÕ¿ZÿïeþCËü/#R.4 ;F¤Åùä¿Ù@ÿoDúטÿpîÿôÿ˜Àü߈ô¯8ÿùŸ6þæ‘þç?´Üÿ›@ÿ¯odçzó:îÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_¥ÿ7
-ωP¦þ_öÿ&„Ð÷c	ðÿøD¤þßóüîÿlÈ‘@Ïôtæ?´'ÿþ?DõW›ÿÐüß60ÿÁ7"ý+ÎhÑ¿	ø¿|#Ò-ÿ×kÿ÷ìÿBÿ&|ê= ¿ˆô¯9ÿüGXÿ}#Ò¿âü‡Lÿ—	ø¿|#;ÿS›ÿý&àÿòHÿŠó2ú7ÿ—oj­ÿõæ?´'ÿGdÿoù¯¾鿚ÿëòý¿æ?ÙÀû¿oúoTü_ñìÿjðY ª5ÿW¹ÎÿâùoÂMüˆÌ1"ýkæñþg÷¿¾é_#ÿk^ÿéÿ3ü/߈ô¯™ÿ…ÿÓ„å»F¤Íü/ò?Làü×7²ó?Åü/üß&„ Ljô_Íÿuµþ·™ü"@]Ský¯æÿŠgÿþO˜ÿç‘þ«ù¿.ç•ТÆû$ïþ£NþWœü_ÿ—¢úkæqÿk
 ù_¾é_3ÿý›€ÿË7"ýWó]¯ÿý›ðùçóñðk7>¶y8D¤Åü/òßm`ý÷Hÿšù_œÿš€ÿË7²ó?Åü/ú?M ÿË7"ýkæ¡P¿oj­ÿõò¿âÉÿð›@þ—oDúטÿ8çqþoBL$€zf•þËbË׌
-_êÿjÒ8ÿ9”ñY°¶þÇýÓþÇþá÷š_„åõ/CýGÿoÊïõ7`sýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸó?m˜vÿìÿ½²Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿ-ïÿ6Ðýí›Íúßíoiþ5ëõßú¿m ùË72ý/Ùý¯ÚÿçÆó¿œ:îÿL˜º¿Ùÿ{e­þ§óÿuŸ±ìü'”º8õÇnœÿÍù>ÛêºÿI*ý¿§óŸ&FÎMÕ¿ZÿïeþCÓ±þېr¡Ø1"ý+Îhðÿ›@ÿoDúטÿ0çpÿgó|#Ò¿âü‡„ÿÏÎÿ}#Ò¿âü‡†ûèÿõìüOqþ÷ÿ&Ðÿë‘þ5úÏóÈÿ±îßÔZÿ«ôÿ¦á9ÑäÑÿÓuÌ6¡ï§àÿñ‰Hÿý¿çùÜÿِ#'€žè?èÌh'ÿþ?DõW›ÿÐtóM`þƒoDúWœÿРðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_qþCÃù¯	¬ÿ¾é_qþCKÿ—	ø¿|#;ÿS›ÿ;ú?LÀÿå‘þç?´èßü_¾©µþ×›ÿÐNóØÿ›@þ«oDú¯æÿº|ÿ/¡¡ÿÓÞÿ}#УâÿŠgÿWÆÿe¨þÕü_å:ÿ‹ç¿	7ñ#0Ljô¯™ÿÅûŸ	ÜÿúF¤ü¯yý'ÿÃò¿|#Ò¿fþþO”ï‘þó¿Èÿ°ó_ßÈÎÿó¿ð›>0Ð3"ýWó]­ÿmKþ‡	± ÏÔZÿ«ù¿âÙÿ…ÿÓæÿùF¤ÿjþ¯Ëù_%4èß„ñþÉûE ÿ¨“ÿ'ÿWÂÿe¨þšù_Üÿš@þ—oDú×ÌÿBÿ&àÿòHÿÕü_—ë;lÑ¿Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿ+Nþ/üß&ÿå‘þ5æ?Îù_œÿ›	 žY¥ÿÜ.µ|ýÁ¨ð¥þ¯&•Aÿ¡”ÿ—këÜ?íì~¯ùEX^ÿRR7îÿRnÈ3asýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸK$ÿÉ„qgÆþß/›õÿâý{êwßû‡ûÛÇ»¿}Æ»ú/úžû§÷ÿ6òþo퟾٬ÿÝþð–æ_³^ÿmÈøL ÿÉ72ý/Ùý¯:ÿÏ©œöÿ©cÿoBS8ûŸ¬Õÿtþ¿î3–ÿ„’B§þï8üó¶Õÿtÿ“T
 úS˜ú9ÿ5ATÿjý¿—ṵ̀"åB°cDúלÿ€ÿßú|#Ò¿Æü‡¹ÿ—üw˜ÿà‘þ5ç?àÿ3ð7߈ô¯9ÿûèÿõìüOqþ÷ÿ&Ðÿë‘þ5ú™ÿ`
-Ý?¾©µþWéÿMÃsbøsH¹+¼ÿ›BÎc	ðÿøD¤þ_æ?˜’#'€žè?èÌh'ÿþ?DõW›ÿ0¶$òü·€ù¾é_qþó¿mÀÿå‘þkù¿^û¿ÏëDÿ&|ê= ¿ˆô¯9ÿþOXÿ}#Ò¿æüú¿LÀÿåÙùŸâüú?LÀÿå‘þ5ç? ðù¦Öú_oþC;Í`ÿoù¯¾鿚ÿëòýŸùVðþïþÿW<û¿:ü_ˆê_ÍÿU®ó¿xþ›p?â sŒHÿšù_¼ÿ™Àý¯oDú×Èÿšò˜ÿiù_¾é_1ÿ«Áÿió?|#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÇ¿Žþ
-ˆ uM­õ¿šÿ+žý_ø?M`þŸoDú¯æÿºœÿUBƒþMïÿ‘¼_ú:ù_qòµø¿,Õ_3ÿ‹û_ÈÿòHÿšù_èßü_¾鿚ÿëzýèß„Ï?Ÿ‡_»ñ±Í“À!"ýkæqÿcë¿oDú×Ìÿâü×ü_¾‘ÿ)æÑÿiù_¾é_3ÿý›€ú}Ský¯—ÿ'ÿþoÈÿòHÿóÏù_ÜÿÙ	 žY¥ÿ›¥Ž¯?¾ÔÿÕ¤2è?”á• ÿ—+ëÜ?íì~¯úEX^ÿ’»8úS›#õ·`kýß÷ýÝíóã—áK{xû‹Y¾ÿŸëŸsâýß„¹§ýŒìÿ±Uÿ/Ö¿§~÷½¸¿}¼ûëg¼«ÿðý?ÆýCþ‹
-Üÿûf«þwûÛšÍzý7]Çû¿	¬÷¾éÑîÝþ¿
-ãûN‘ü'þØÿ­à<\±RÿÓñÿÊÏXvþJ
-]œú¿cóŸ9ÿÑgSýO×?iñ¯ÁšóßáŸqÿ†_êo€¤þÛ7ä?4]ÄÿoBÊ…`ÇHô¿°ýwËü‡’ñÿ˜ÀùŸo$ú_Øþ»nþÃÉÿÓt‰ù/&0ÿÁ7ý/lÿÝ2ÿþ?#óDÿÛ7ä?—®pÿoý¿¾ÿ-kÿÝ4ÿüèÿõDÿÛ·œÿ5ý›@÷o*­ÿoµÿ®êÿ-9þŸÿ¿
-s	NþŸœñÿ8C¢ÿ…í¿öÿ¹ãþφ9ôÌvýÿWÓžü_øÿlÔ¿žÿë2ÿ¡é"û?˜ÿà‰þUü_Sþ[Éèßü_¾‘迚ÿëµÿ{ö¡>õÇžG€_$úWñç¿dú?M`ý÷Dÿ*þ¯)ÿ±+ô™€ÿË7¢ó?
-ÿ×yþC¤ÿÃü_¾‘è_Åÿ5ÿ5ý›€ÿË7•Öÿjþ¯éþ7w‰ý¿	s	Èõ‰Dÿõü_—ïÿ¹ËôšÀû¿o¶ë¿QÊÿ:û¿
-þ/$õ¯çÿ*×ù_<ÿM¸‰q€9F¢Õü/ÞÿLàþ×7ý«ä×ÿDþ‡	äùF¢Õü/üŸ&4(ß5ý«æ‘ÿa翾ÿiæáÿ6!|èx 8F¢ÿzþ¯Ëõ¿k
-ù&Ä‚ü=Siý¯çÿŠgÿþOæ0ÿÏ'ý×ó]ÎÿÊ£]ý0Þÿ#y¿l×TÊÿ
-“ÿ+áÿ²@RÍü/îm ÿË7ýkæ1ÿÅü_¾‘连ÿëzýoп	Ÿ>¿vãs›'C$úWÍÿâþÇÖßHô¯šÿÅù¯	ø¿|#:ÿÓÌÿ¢ÿÓò¿|#Ñ¿jþú7õû¦Òú_1ÿkò$ú?L˜K@þ—O$úW™ÿxÎÿâþφ˜H õÌ*ý\lùúƒQáKý_M*ƒþC	
-þ/VÖÿ¸ÚÿØ?ü^õ‹°¼þ%w±êŸÚÌüO¶ÖÿøípßßÝ>?~¾´‡·¿˜åûÿ¹þ97Üÿ™ðÇþ?%öÿÎØªÿïßS¿ûÞ?Üß>Þýõ3ÞÕøþ‡ãùÓðþo÷ÿ¾ÙªÿÝþð¦æ_³^ÿMבÿ`ë½oDú_´û_·ÿoÃøþŸSdÿoÂûú¿Ý±RÿÓùÿÊÏXvþJ
-]œú¿c!ÿ߆Mõ?Ýÿ$¥ù§þÐFêo¤þõú/óšŽùŸ6¤\h vŒDÿÌø÷ÃùŸo$úW™ÿ0çàÿ5ù¾‘èŸùÿ~óDÿÌø÷Cÿ¯oDçÌø×Cÿ¯o$úWéÿç? èþñM¥õ¿Nÿoþ˜Oþÿ.²ÿ7a.ÁÉÿÓ÷øœ!Ñ¿Jÿï<ÿû?räÐ3Ûõ”æ?´Óüü&HêÏü‡?ÌðDÿÌø÷ƒÿË7ýWó½ö3ÿÁ”Oý±çà‰þ™ÿðï‡õß7ý3ÿáßþ/߈Îÿ˜ÿð¯ÿ—o$úgþÿü_¾©´þWœÿÐNóØÿ›0—€üWŸHô_ÏÿuùþŸ»Lÿ§	¼ÿûf»þ¥ü¯³ÿ«Ãÿe¤þõü_å:ÿ‹ç¿	7ñ#0ÇHô¯šÿÅûŸ	ÜÿúF¢•ü¯óúÏüOÈÿòDÿšù_ÿ§	
-ÊwDÿªù_ä˜Àù¯oDçšù_ø¿M: Ž‘è¿žÿërýïšBþ‡	± ÏTZÿëù¿âÙÿ…ÿÓ„¹Ìÿó‰Dÿõü_—ó¿r—Ñ¿	ãý?’÷ËvýG¥ü¯0ù¿ü_HꯚÿÅý¯	äùF¢Õü/ôoþ/ßHô_Ïÿu½þ7èß„Ï?Ÿ‡_»ñ¹Í“À!ý«æqÿcë¿o$úWÍÿâü×ü_¾ÿiæÑÿiù_¾‘è_5ÿý›€ú}Siý¯˜ÿ5ù?ý&Ì% ÿË'ý«Ì<çqÿgCL$€zf•þÛv±çë5£Â—ú¿šTý‡2öâÿÒgmýû§ýýÃï5¿Ëë?”=Å¡þ)'òßLØ\ÿã·Ã}wûüøeøÖÞüf–ïÿçúçÈ2áT‹xÞÿ°pÅfý¿˜ÿžúÝ÷þáþöñîoŸñ®þËþóðc<ÿo#ù/&dôîšÍúßíoiþ5ëõ߆Ìû¿	4ùF¦ÿ%»ÿUûÿÜ–Óþ?u俘0~ýcÛ7ûŸ¬Õÿt°î3–ÿ„’B§þïØÅÌùÛêº JK
-Öœÿætêÿ‘ó_Dõ_Ø |ºá[•ÿÐtþR.4 ;F¤ÿ…
-ÀïëÿjþC×°ÿ7þ߈ô¿°ø]ý¿žÿpîÿãþÏæ?øF¤ÿ…
-Àë×ÿ6’ÿhçÿ¾éaðûú¿Ê-÷ÿ&ÐÿëÙùß²à÷õ=ÿ¡ãþßú}#ÒÿÂà
-çm‹þM ûÇ7µÖÿ·€G…/ìÿíBwòÿޝè߀ÓíkÆÿã‘þ6 oØ
 ÿîÿlÈ‘@ÏôTü_M;ù¿ðÿ™ ª5ÿ×uþsGþ“	ÌðHÿþ¯)ÿ­kп	ø¿|#Ò-ÿ×kÿ÷ìÿBÿ&|ê= ¿ˆô¯áÿšôòM`ý÷Hÿþ¯iÿ?ü}ôoþ/ßÈÎÿü_çùý&àÿòHÿþ¯iýo[ôoþ/ßÔZÿ+ù¿Î÷¿eÜ Nµ ÿÕ-"ýWó]Í
-ýŸ&ðþïþÿW<û¿
-þ/Dõ¯æÿ*×ù_<ÿM¸‰q€9F¤Íü/ÞÿLàþ×7"ýkäMù?ã–ý@þ—oDú×ÌÿÂÿiBƒò]#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–übAþž©µþWóųÿÿ§	ã×Ïü?¿ˆô_Íÿu9ÿ«„ý›0Þÿ#y¿ôuò¿âäÿjðY ª¿Zþ÷¿Vÿå‘þó¿˜ÿbþ/߈ô_Íÿu½þGôoÂçŸÏÇÃ¯ÝøØæIà‘þ5ó¿¸ÿ1õß7"ýkæqþkþ/ßÈÎÿó¿èÿ4ü/߈ô¯™ÿ…þM@ý¾©µþ×Ëÿ:ÏÄÿm©ä¹E¤ùçü/îÿlˆ‰PϬÓZjùúƒQáKý_M*ƒþC)ÿ—këÜ?íì~¯ùEX^ÿRRLCýSNÌÿ4asýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸóßm˜öfìÿ½²Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿmàüÏ„ŒÞ]³Yÿ»ýá-Í¿f½þÛÐ’ÿdþßÈô¿d÷¿jÿŸÛ2ê?§Žü'ƯŸþo¿¬Õÿtþ¿î3–ÿ„’B§þïØÑÿiöúŸî¯9ÿÍ)Lý¿œÿš ªµþßËü‡¦#ÿ͆”
-ÀŽé_sþûxÿ÷HÿóæüîÿL`þƒoDúלÿÀü'óHÿŠó˜ÿký¿¾‘ÿéÍ(Üÿ›@ÿ¯oDú×èÿ=Ïhп	tÿø¦Öú_¥ÿ7
-oåäÿïXÿm8ݾfü?^é_£ÿwžÿÀýŸ	9rèþƒÎü‡–ù†ˆê¯6ÿ¡é:òM`þƒoDúWœÿÀü/ðùF¤ÿZþ¯×þïÙÿ…þMøÔ{~é_sþùo&°þûF¤Íùô™€ÿË7²ó?Åùô˜€ÿË7"ýkÎ@ÿ&àÿòM­õ¿Þü‡–ù†LÏfü_^鿚ÿëòý¿„†þOxÿ÷@ÿŠÿ+žý_-þ/Dõ¯æÿ*×ù_<ÿM¸‰q€9F¤Íü/ÞÿLàþ×7"ýkäÍë?ù&ÿå‘þ5ó¿ðšÐ |׈ô¯™ÿEÿ¿	œÿúFvþ§—ÿÕáÿ6!|èx 8F¤ÿjþ¯«õ¿mÉÿ0!äï™Zë5ÿW<û¿ðš0~ýÌÿó‹HÿÕü_—ó¿Jhп	ãý?’÷‹@ÿQ'ÿ+Nþ¯ˆÿËQý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿.×ÿv´„
 £>ÿ|>~íÆÇ6O‡ˆô¯™ÿÅý	¬ÿ¾é_3ÿ‹ó_ðùFvþ§˜ÿEÿ§	äùF¤Íü/ôoê÷M­õ¿^þWœü_ø¿M˜žÍø¿¼"Ò¿ÆüÇ9ÿ‹ób"Ô3«ôŸ?.µ|ýÁ¨ð¥þ¯&•Aÿ¡Œý_ø¿ôY[ÿãþiÿcÿð{Í/Âòú—Òœüÿ)·Ôß„Íõ?~;Ü÷w·Ï_†oíáÍofùþ®.‘õß„››©ìÿ}²Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿð¢ÿ<ü÷ÿ-ú·îoßlÖÿnxKó¯Y¯ÿ6dò_LÀÿã™þ—ìþWíÿsãù_n˜ÿaÃØûÍþß/kõ?ÿ¯ûŒeç?¡¤ÐÅ©ÿ;v©áüÇ‚mõ?Ýÿ$•þßtÊÿ‰ó?Dõ¯Öÿ{™ÿÐ2ÿˈ”
-ÀŽé_qþùo6ðþï‘þ5æ?œû#ý?&0ÿÁ7"ý+Î`þ§
-„¿ùF¤Åù-÷ÿ&ÐÿëÙùŸâüîÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_©ÿ·‹msêÿ‹œÿ›Ð÷S	ðÿøD¤þßóüîÿlÈ‘@Ïôtæ?´“ÿÿŸ	¢ú«ÍhGKϘÿà‘þç?´èßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_DúWœÿÐ’ÿhë¿oDúWœÿéÿ2ÿ—odçjóR ÿÃü_¾é_qþCFÿ&àÿòM­õ¿Þü‡vò±ÿ7üW߈ô_Íÿuùþ_óŸlàýß7ý7*þ¯xöµø¿,Õ¿šÿ«\çñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿiBƒò]#Ò¿fþù&pþëÙùŸZþW
-ø¿M˜ è‘þ«ù¿®Öÿ6“ÿaB,Èß3µÖÿjþ¯xöáÿ4ù¾鿚ÿërþW	-ú7a¼ÿGò~è?êäÅÉÿñY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×õúÑ¿	Ÿ>¿vãc›'CDú×ÌÿâþÇÖ߈ô¯™ÿÅù¯	ø¿|#;ÿSÌÿ¢ÿÓò¿|#Ò¿fþú7õû¦Öú_/ÿ+Nþ/üß&ÿå‘þ5æ?Îù_œÿ›	 žY¥ÿ˜—Z¾þ`TøRÿW“Ê ÿPJÀÿeÁÚú÷Oûû‡ßk~–׿äîäÿM¹IÔß‚Íõ?~;Ü÷w·Ï_†oíáÍofùþ®.ìÿm˜KpÚÿ/ì\±Yÿ/Þ¿§~÷½¸¿}¼ûÛg¼«ÿðý?Æý‹ÿ×îÿ}³Yÿ»ýá-Í¿f½þ[ò_Œ ÿÉ72ý/Ùý¯Ûÿÿ°ÿOûþØÿÍà<\±VÿÓùÿºÏXvþJ
-]œú¿c7æ?pþ£Ï¶úŸî’Îü‡îÔÿ;öP}Dõ¯Öÿ{™ÿÐtùï&¤\h vŒHÿŠóúLàüÏ7"ýk̘ó?èÿ1ù¾é_qþCÂÿoáo¾é_qþCÃý¿	ôÿúFvþ§6ÿ!îÿM ÿ×7"ýkôÿžç?4èߺ|Ský¯ÕÿÛ…©ÿ—ùO6Ì%8ùúÿ3Dú×èÿ=Ïàþφ9ôŒ@ÿAgþC;ù¿ðÿ™ ª¿Úü‡¦ë˜ÿmó|#Ò¿âü‡ý›€ÿË7"ý×ò½öÏþ/ôo§þØóð‹HÿŠóÎM`ý÷HÿŠóZú¿LÀÿåÙùŸÚü‡ØÑÿaþ/߈ô¯8ÿ¡Eÿ&àÿòM­õ¿Þü‡vò±ÿ7a.ù¯>鿚ÿëòý¿„†þOxÿ÷@ÿNþ×ÙÿÕâÿ²@Tÿjþ¯rÿÅóß„›ø˜cDú×ÌÿâýÏî}#Ò¿Fþ×¼þ“ÿaù_¾é_3ÿÿ§	ÌÿðHÿšù_ä˜Àù¯odçzù_Ìÿ±!|èx 8F¤ÿjþ¯«õ¿mÉÿ0!äï™Zë5ÿW<û¿ðš0—€ù>鿚ÿërþW	
-ú7a¼ÿGò~è?êä…ÉÿðY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×åúߎ–pôoÀçŸÏÇÃ¯ÝøØæIà‘þ5ó¿¸ÿ1õß7"ýkæqþkþ/ßÈÎÿó¿èÿ4ü/߈ô¯™ÿ…þM@ý¾©µþ×Ëÿïs×ÑÿaÂ\ò¿|"Ò¿ÆüÇ9ÿ‹ób"Ô3ëô¿Øòõ£Â—ú¿šTý‡’Éÿ2amýû§ýýÃï5¿Ëë_r7ì‡ý`~
-¨¿›ëüv¸ïïnŸ¿ßÚÛßÌòýÿ\ÿ\ïÿ&°ÿ÷Ífý¿xÿžúÝ÷þáþöñîoŸñ®þÃô?ü÷ÿ-ùß6pÿï›Íúßíoiþ5ëõßrÿoú÷LÿKvÿëöÿmßÿ‡×?öÿ&ü±ÿ§ÿÛkõ?ÿ¯ûŒeç?¡¤ÐÅ©ÿ;v¡ãüÇ‚mõ?Ýÿ$ùÝÔÿ›¨¿¢úWëÿ½ÌhºÂýŸ	)€#Ò¿âüòŸmàýß7"ýk̘ó?ðÿ™Àü߈ô¯9ÿügóHÿšó¸ÿ7þ_ßÈÎÿôæ?îÿM ÿ×7"ýkôÿžç?ÿlÝ?¾©µþ×êÿ-å<ÿÿ	s	NþŸ¾Çÿã‘þ5úÏó¸ÿ³!GN =#ÐЙÿОü_øÿl
 Õ_sþù¯&0ÿÁ7"ýkÎ@ÿ&àÿòHÿµü_¯ýßóüôo§þØóð‹HÿŠóç¿&°þûF¤Åùä?Ú€ÿË7²ó?½ù…þðùF¤Åù
-ú7ÿ—oj­ÿõæ?´Óüöÿ&Ì% ÿÕ'"ýWó]¾ÿ—ÐÐÿiïÿ¾è¿ÑÉÿšü_1àÿ²@Tÿjþ¯r•ÿÕñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿiBƒò]#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿ‡?¢bAþž©µþWóųÿÿ§	s	˜ÿç‘þ«ù¿.ç•a€þ-ïÿ‘¼_ú:ù_aÊÿjñY ª¿fþ÷¿&ÿå‘þ5ó¿Ð¿	ø¿|#Ò5ÿ×åúߎôoÀçŸÏÇÃ¯ÝøØæIà‘þ5ó¿¸ÿ1õß7"ýkæqþkþ/ßÈÎÿôò¿èÿ´ü/߈ô¯˜ÿÕ¢P¿oj­ÿõò¿Âäÿ¢ÿĹäùD¤ùsþçÿ&ÄD¨gVé¿Y<òñF…/õ5©úeøëø¿X[ÿãþiÿcÿð{Í/Âòú—ʸÿK95Ôß‚Íõ?~;Ü÷w·Ï_†oíáÍofùþ®.Ìÿ²áeÿß¶ÓØ
-¸b³þ_¼Oýî{ÿpûx÷·ÏxWÿáEÿyø1îÿÛÀû¿	ä¿øf³þwûÃ[šÍzý·¡%ÿÁôï™þ—ìþWíÿsÛ4ãþ?ü&¼ìÿÇÞoöÿîX«ÿéüÝg,;ÿ	%….Nýß±#ÿ߆mõ?Ýÿ$•þßtîÿåü×Qý«õÿ^æ?4ó?mH¹Ð ì‘þ™ÿð¯‡þ߈ô¯1ÿaîÿÅÿkó|#Ò?óþõþæ‘þ™ÿð¯‡þ_ßÈÎÿ˜ÿðo‡þ_߈ô¯Ñÿ;Ï@ÿ&Ðýã›Zë•þß4¼	4ñÔÿ[8ÿ3a.Á?9Oàyà
-‘þ5úçùÜÿ™#'€žèq3ð¨ðåóÚ“ÿÿŸ
-¢ú3ÿá_ó|#Ò?óþõàÿòHÿµü_¯ýßÌ0åSìyøE¤æ?üëaý÷HÿÌø×ƒÿË7²ó?æ?üÛÁÿå‘þ™ÿð¯ÿ—oj­ÿõæ?´Óüöÿ&Ì% ÿÕ'"ýWó]¾ÿ—ÐÐÿiïÿ¾è¿Qñųÿ+âÿ²@Tÿjþ¯r•ÿÕñü7á&~Äæ‘þ5ó¿xÿ3û_߈ô¯‘ÿ5¯ÿä˜@þ—oDú×ÌÿÂÿió?|#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ†übAþž©µþWóîK ÿ߆¹Ìÿó‰HÿÕü_—ó¿Jhп	ãý?’÷‹@ÿQ'ÿ+Nóþ/Dõ×Ìÿâþ×ò¿|#Ò¿fþú7ÿ—oDú¯æÿº\ÿÛñHýðùçóñðk7>¶y8D¤Íü/îL`ý÷HÿŠù_䨀ÿË7²ó?Åü/ú?M ÿË7"ýkæ¡P¿oj­ÿõò¿¦ùþoæÿå‘þ5æ?Îù_œÿ›	 žY¥ÿv±åëF…/õ5©ú%wø¿,X[ÿãþiÿcÿð{Í/Âòú—2”~¨ʉú›°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ%°ÿ7aúú‡ýÿ\v®Ø¬ÿïßS¿ûÞ?Üß>Þýí3ÞÕxÑ~Œûÿýېѻk6ë·?¼¥ù׬×Zü?&°ÞûF¦ÿ%»ÿUûÿÜ–Óùbþ—
-ã×?¶~³ÿ÷ÉZýOçÿë>cÙùOÞý»8õÇ.&Î,ØVÿÓýORéÿMaêÿåüÏQý«õÿ^æ?0ÿÁŠ”
-ÀŽé_qþù/6Ðÿã‘þ5æ?Ìý¿ä¿›Àü߈ô¯9ÿÿŸ	„¿ùF¤ÍùÜÿ›@ÿ¯odçŠó¸ÿ7þ_߈ô¯ÑÿËüSèþñM­õ¿JÿoÞr7õÿrþgÂøõ÷=þ¯ˆô¯ÑÿËüSräÐ3ýùíÉÿ…ÿÏQý5ç?0ÿ׿?øF¤Íùèßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_DúלÿСXÿ}#Ò¿æüú¿LÀÿåÙùŸâüîMÀÿå‘þ5ç? ðù¦Öú_oþC{òöÿ&L_?þ/¯ˆô_ÍÿuùþÏü+xÿ÷@ÿŠÿ+žý_
-þ/Dõ¯æÿ*×ù_<ÿM¸‰q€9F¤Íü/ÞÿL
 àþ×7"ýkäÍë?ù&ÿå‘þ5ó¿ðšÐ |׈ô¯™ÿEþ‡	œÿúFvþ§˜ÿ…ÿÛ„ð¡ãà‘þ«ù¿®Öÿ¶%ÿÄX¿gj­ÿÕü_ñìÿÂÿiÂøõ3ÿÏ/"ýWó]Îÿ*¡Aÿ&Œ÷ÿHÞ/ýGü¯8ù¿þ/Dõ×Ìÿâþ×ò¿|#Ò¿fþú7ÿ—oDú¯æÿº\ÿÛñ•ýðùçóñðk7>¶y8D¤Åü/òßm`ý÷Hÿšù_œÿš€ÿË7²ó?Åü/ú?M ÿË7"ýkæ¡P¿oj­ÿõò¿â4ÿÿ·	Ó׏ÿË+"ýkÌœó¿8ÿ7!&@=³JÿqñÈÇ?¾ÔÿÕ¤2è?û ü_¬­ÿqÿ´ÿ±ø½æayýKîâXÿ”ü&l®ÿñÛ᾿»}~ü2|ko~3Ë÷ÿsýs	ô›0—àŸi“Æþß›õÿâý{êwßû‡ûÛÇ»¿}Æ»úÿÑÿðcÜÿ·äÛÀý¿o6ë·?¼¥ù׬×Ëý¿èß72ý/Ùý¯Ûÿ·á´ÿO…û?þØÿà<\±VÿÓùÿºÏXvþJ
-ÃÛÿ©ÿ;vãû?ç?úl«ÿéþ'éÌè¦þßHý-Õ¿ZÿïeþC3ü"°þ[r¡Ø1"ý+Î ÿÙÞÿ}#Ò¿Æü‡9ÿƒû?˜ÿà‘þç?Dü¿&þæ‘þ5ç?pÿoý¿¾‘ÿ)Îàþßú}#Ò¿FÿïyþùÏ6Ðýã›Zë•þßFëÿ©ÿ·pþoÂ\‚“ÿ'gü?Îé_£ÿ÷<ÿû?räÐ3ý/n¾|þC{òáÿ³ATÍù俚Àü߈ô¯9ÿý›€ÿË7"ý×ò½öÏóп	ŸúcÏ#À/"ý+ÎHôšÀúï‘þç?ÿhþ/ßÈÎÿôæ?ú?LÀÿå‘þç?4èßü_¾©µþ×›ÿÐNóØÿ›0—€üWŸˆô_Íÿuùþ_†- ú·€÷ßôßèäý_þ/Dõ¯æÿ*×ù_<ÿM¸‰q€9F¤Íü/ÞÿLàþ×7"ýkä×ÿŽüÈÿòHÿŠù_	ÿ§	
-ÊwHÿšù_ä˜Àù¯odçŠù_ø¿M: Ž鿚ÿëjýoò?Lˆù{¦Öú_ÍÿÏþ/üŸ&Ì%`þŸODú¯æÿºœÿU†ÿCÿŒ÷ÿHÞ/ýGü¯0ù¿ü_ˆê¯™ÿÅý¯	äùF¤Íü/ôoþ/߈ô_Íÿu¹þ·Ã†þ-øüóùxøµÛ<	"Ò¿fþ÷?&°þûF¤Íü/ÎMÀÿåÙùŸbþýŸ&ÿå‘þ5ó¿Ð¿	¨ß7µÖÿzù_aòÑÿaÂ\ò¿|"Ò¿ÆüÇsþ÷6ÄD¨gVé?}\jùúƒQáKý_Mç?‡R2þ/ÖÖÿ¸ÚÿØ?ü^ó‹°¼þ¥„ñ凜òßLØ\ÿã·Ã}wûüøeøÖÞüf–ïÿçúçÉ2áeÿŸÒôv®Ø¬ÿïßS¿ûÞ?Üß>Þýí3ÞÕxÑ~Œûÿ6Òÿmù/¾Ù¬ÿÝþð–æ_³^ÿmÈøL ùË72ý/Ùý¯Úÿç¶iÆýbþ‡
-/ûÿ±÷›ý¿;Öê:ÿ_÷ËÎBI¡‹SÿwìÆüGÎôÙVÿÓýORéÿMSÿoäü×Qý«õÿ^æ?4]‡ÿÇ„”
-ÀŽé_qþþèÿñHÿóÎý¿‘üw˜ÿà‘þç?àÿ³ó߈ô¯8ÿ¡åþßú}#;ÿÓ›ÿÐqÿoý¿¾é_£ÿ÷<ÿ¡Eÿ&Ðýã›Zë•þß4¼	¤<õÿ²ÿ7a.Á?}?ýç+Dú×èÿ=Ïàþ
 φ9ôŒ@ÿAgþC{òáÿ³ATµùíøJÈóß æ?øF¤Åù-ú7ÿ—oDú¯åÿzíÿžý_èß„Oý±çà‘þç?4ôšÀúï‘þç?´ô™€ÿË7²ó?µù)Ðÿaþ/߈ô¯8ÿ!£ðù¦Öú_oþC{òöÿ&Ì% ÿÕ'"ýWó]¾ÿ—ÐÒÿiïÿ¾è¿Qñųÿ+âÿ²@Tÿjþ¯rÙÿ?üžÿÜď8À#Ò¿fþï&pÿë‘þ5ò¿æõŸþ?ÈÿòHÿšù_ø?M`þoDú×Ìÿ"ÿÃÎ}#;ÿSÌÿÂÿmBøÐñ pŒHÿÕü_WëÛ’ÿaB,Èß3µÖÿjþ¯8ù¿Èÿ·a.óÿ|"Ò5ÿ×åü¯ZôoÂxÿäý"ÐÔÉÿŠÓüÇ‚ÿËQý5ó¿¸ÿ5ü/߈ô¯™ÿ…þMÀÿå‘þ«ù¿®×ÿˆþMøüóùxøµÛ<	"Ò¿fþ÷?&°þûF¤Åü/ò?lÀÿåÙùŸbþýŸ&ÿå‘þ5ó¿Ð¿	¨ß7µÖÿzù_qÊÿÂÿmÂ\ò¿|"Ò¿ÆüÇ9ÿ‹ób"Ô3«ôß-u|ýɨð¥þ¯&•Aÿ¡ò¿LXYÿãþiÿcÿð{Õ/Âòú—Ü…Ñÿ›Úqþõ×gkýß÷ýÝíóã—áK{xû‹Y¾ÿŸëŸsbÿoÂËþú×
-»_lÕÿ‹õï©ß}ïîoïþúïê?üGÿÏqÿß$òßLà}ß7[õ¿ÛÞÔükÖë¿é:îÿM ÿÉ7"ý/Úý¯Ûÿ7ÝØÿSdÿoÂÅþÿëWž®X©ÿéøåg,;ÿ	%….Nýß±4-ç?lªÿéú'-þ5Xsþ;ü3îÿBÃùŸ	’ú/lÿݐÿÐtôÿؐr¡Ø1ý/lÿÝ2ÿ¡dòŸM ÿÇ7ý/lÿ]7ÿáäÿiºDþ³	ÌðDÿÛ·Ì-ç&þæ‰þ¶ÿnÈ.]æþßú}#:ÿ[Öþ»iþùÏ6Ðÿë‰þ¶ÿn9ÿk
-ú7¿¯o*­ÿoµÿ®êÿ-íØÿ“»†þæœý?}ÏóÀý/lÿݰÿÏ÷6äÈ	 g¶ë?èø¿švòáÿ3ARÿzþ¯Ëü‡¦‹ä¿šÀüßHô¯âÿšòßJFÿ&àÿòDÿÕü_¯ýß³ÿý›ð©?räã‰þUü_çù/ä¿ÚÀúï‰þUü_SþcWèÿ2ÿ—oDçþ¯Iÿ1Òÿaþ/ßHô¯âÿšÎÿš‚þMÀÿå›Jë5ÿ×tÿ›»Äþß„¹ä¿úD¢ÿzþ¯Ë÷ÿ<ÚEп¼ÿûf»þ¥ü¯³ÿ+ãÿ²@Rÿzþ¯rÿÅóß„›ø˜c$úWÍÿâýÏî}#Ñ¿Jþ×¼þ“ÿaù_¾‘è_5ÿÿ§	ÌÿðDÿšù_äØÀù¯oDçšù_ø¿M: Ž‘è¿žÿërýïšBþ‡	± ÏTZÿëù¿âÙÿ…ÿÓ„¹Ìÿó‰Dÿõü_—ó¿r—Ñ¿	ãý?’÷ËvýG¥ü¯0ù¿"þ/$õWÍÿâþ×ò¿|#Ñ¿jþú7ÿ—o$ú¯çÿº^ÿú7áóÏçãá×n|nó$pˆDÿªù_Üÿ˜Àúï‰þUó¿8ÿ5ÿ—oDçšù_ôš@þ—o$úWÍÿBÿ& ~ßTZÿ+æMþDÿ‡	s	Èÿò‰Dÿ*óçü/ÎÿMˆ	Å{f•þÓò̯׌
-_êÿjÒ8ÿ9œîÿñé³¶þÇýÓþÇþá÷š_„åõ/e|öƒ9áÿ3asýß÷ýÝíóã—á[{xó›Y¾ÿŸëŸsÇúo«ýÿÍÍøv®Ø¬ÿóßS¿ûÞ?Üß>Þýí3ÞÕxÑ~ŒçÿmàüÏš?|³Yÿ»ýá-Í¿f½þɲ‚ü'ßÈô¿d÷¿jÿŸÛt:ÿOÌÿ³áÕþÿëWöÿîX«ÿé`Ýg,;ÿ	%….Nýß±‹‰ó¶Õÿt”–þ¬9ÿͧçç¿&ˆê¿°øt÷*ÿ¡é:òßLH¹Ð ì‘þ6 ¿¯ÿ«ù]ƒÿÇú|#ÒÿÂàwõÿzþùÿ/Ðÿgó|#ÒÿÂàõë™ÿk÷¾éaðûú¿Ê>ÍÿDÿúÐÿëÙùß²à÷õ=ÿ¡pÿoý¿¾éað†ó¿¶Aÿ&Ðýã›Zëÿ[
-À£Â—öÿvíØÿSÆ#AôoÀ\‚Bèûñ<\!ÒÿÂà
-ûÿÀýŸ
-9rèþƒŠÿ«iOþ/ü6ˆê_ÍÿuÿÜ‘ÿhó|#Ò¿†ÿkÊëôoþ/߈ô_ËÿõÚÿ=û¿Ð¿	ŸúcÏ#À/"ýkø¿&ýGæ¿ØÀúï‘þ5ü_Óþ?´ô™€ÿË7²ó?ÿ×yþCGÿ‡	ø¿|#Ò¿†ÿkZÿÛý›€ÿË7µÖÿZþ¯éþ·ý[0—€üWŸˆô_Íÿu5ÿ14ôšÀû¿oú_<bTøbÿW<û¿ü_ˆê_ÍÿU®ó¿xþ›p?â sŒHÿšù_¼ÿ™Àý¯oDú×Èÿš×ò?L ÿË7"ýkæáÿ4ù¾é_3ÿ‹ü8ÿõìüO1ÿÿ·	áCÇÀ1"ýWó]­ÿmKþ‡	± ÏÔZÿ«ù¿âÙÿ…ÿÓ„¹Ìÿó‰HÿÕü_—ó¿Jhп	ãý?’÷‹@ÿQ'ÿ‹ù–ˆê¯™ÿÅý¯	äùF¤Íü/ôoþ/߈ô_Íÿu¹þ·ã+!ú7àóÏçãá×n|ló$pˆHÿŠù_ä¿ÛÀúï‘þ5ó¿8ÿ5ÿ—odçŠù_ôš@þ—oDú×ÌÿBÿ& ~ßÔZÿëå÷¿¹ëèÿ0a.ù_>é_cþãœÿÅù¿	1‘ ê™UúÏ‹#¿þ`TøRÿW“ÆùÏ¡æ?š°¶þÇýÓþÇþá÷š_„åõÊ^†¿—Rnðÿ™°¹þÇo‡ûþîöùñËð­=¼ùÍ,ßÿÏõÏ%²þ›0~ùçýÿ»WlÖÿ‹÷ï©ß}ïîoïþöïê?¼è??Æý
 ¹ÿ7öOßlÖÿnxKó¯Y¯ÿ6dòM ùË72ý/Ùý¯Úÿç¶û¿sêÈ1anûfÿúŸÎÿ×}ƲóŸPRèâÔÿ»ñýŸó}¶Õÿtÿ“TúÓÔÿ9ÿ5ATÿjý¿—ùMבÿjBÊ…`Ljô¯9ÿÿŸ	ôÿøF¤ùôÿšÂü߈ô¯9ÿÿ¯	œÿûF¤Åùä?Û@ÿ¯odçzó:îÿM ÿ×7"ýkôÿÎóп	tÿø¦Öú_¥ÿ7
-ωØMý¿äÿ˜Bߏ%Àÿã‘þ5úçùÜÿ™#'€žè?èÌh'ÿþ?Dõלÿ€ÿÛæ?øF¤Íùèßü_¾é¿–ÿëµÿ{ö¡>õÇžG€_DúלÿÀù¯	¬ÿ¾é_sþý_&àÿòìüOqþý&àÿòHÿšóп	ø¿|Ský¯7ÿ¡=ù?ûÈõHÿÕü_—ïÿ%4ôšÀû¿oú_<bTøbÿW<û¿
-þ/Dõ¯æÿ*×ù_<ÿM¸‰q€9F¤Íü/ÞÿLàþ×7"ýkäMù?ã–ý@þ—oDú×ÌÿÂÿiBƒò]#Ò¿fþù&pþëÙùŸbþþo‡Ž€cDú¯æÿºZÿÛ–ü"@]Ský¯æÿŠgÿþO˜ÿç‘þ«ù¿.ç•РÆû$ïþ£NþWœü_
-þ/DõWËÿâþ×
-ò¿|#Ò¿bþó_lÀÿå‘þ«ù¿®×ÿˆþMøüóùxøµÛ<	"Ò¿fþ÷?&°þûF¤Íü/ÎMÀÿåÙùŸbþýŸ&ÿå‘þ5ó¿Ð¿	¨ß7µÖÿzù_qòáÿ6ü/߈ô¯1ÿñœÿÅýŸ
-1‘ ê™eúÿ¹¿»_êöºfTøBÿWÓ…ÑÿB&ÿË„õ,öü½fyýK—J3Ô?†ÒQV×ÿ¿ßÿ÷ÇŸ_÷k>ãÝý×¼Ô¿	£ÿ;µä?ÙðÿŠú_ñ¿þï÷ÿýÿµ?ö?þ÷ÿŠ¡½É]ù¯ïÿçÿíüßý_=Üÿ?û‡ûçÛÿËáþ~ü©ÿëÿ£ÿ§CVëx
-xë]ÿÆò÷ÿÒ…<îÿS¢ÿÛ†¹ÿ|ý:5‚!kW¬Ôÿâ™ï¯YµÿKí´ÿ£ÿÄÕõWÞÿ¥ÓùOj™ÿfÃiÞØÿöÿ+³Zÿêû¿Óû_*ìÿLxÙÿ?Æ= ²vÅJý'ýó¿rÚÿuìÿLX]õó¿fÚÿqÿgÂi—ÞØÿ%öÿ+³ZÿÚû¿.Nû?òŸM˜·}ø|²Rÿ‹g~½fÕþ¯Üÿ²ºþÚû¿x¾ÿåùoÂi×¼±ÿkØÿý¯Ìjý+ïÿ†Oû?ú¿M˜¯}Ùÿ     ü¯ÍÿDˆH À+ 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/64fake-4n2s2ca2c2t.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,174 +0,0 @@
-Machine (phys=0 total=4194304KB)
-  NUMANode #0 (phys=0 local=1048576KB total=1048576KB)
-    Socket #0 (phys=0)
-      L3Cache #0 (8192KB)
-        L2Cache #0 (256KB)
-          L1Cache #0 (32KB)
-            Core #0 (phys=0)
-              PU #0 (phys=0)
-              PU #1 (phys=4)
-          L1Cache #1 (32KB)
-            Core #1 (phys=1)
-              PU #2 (phys=2)
-              PU #3 (phys=6)
-        L2Cache #1 (256KB)
-          L1Cache #2 (32KB)
-            Core #2 (phys=0)
-              PU #4 (phys=1)
-              PU #5 (phys=5)
-          L1Cache #3 (32KB)
-            Core #3 (phys=1)
-              PU #6 (phys=3)
-              PU #7 (phys=7)
-    Socket #1 (phys=1)
-      L3Cache #1 (8192KB)
-        L2Cache #2 (256KB)
-          L1Cache #4 (32KB)
-            Core #4 (phys=0)
-              PU #8 (phys=8)
-              PU #9 (phys=12)
-          L1Cache #5 (32KB)
-            Core #5 (phys=1)
-              PU #10 (phys=10)
-              PU #11 (phys=14)
-        L2Cache #3 (256KB)
-          L1Cache #6 (32KB)
-            Core #6 (phys=0)
-              PU #12 (phys=9)
-              PU #13 (phys=13)
-          L1Cache #7 (32KB)
-            Core #7 (phys=1)
-              PU #14 (phys=11)
-              PU #15 (phys=15)
-  NUMANode #1 (phys=1 local=1048576KB total=1048576KB)
-    Socket #2 (phys=2)
-      L3Cache #2 (8192KB)
-        L2Cache #4 (256KB)
-          L1Cache #8 (32KB)
-            Core #8 (phys=0)
-              PU #16 (phys=16)
-              PU #17 (phys=20)
-          L1Cache #9 (32KB)
-            Core #9 (phys=1)
-              PU #18 (phys=18)
-              PU #19 (phys=22)
-        L2Cache #5 (256KB)
-          L1Cache #10 (32KB)
-            Core #10 (phys=0)
-              PU #20 (phys=17)
-              PU #21 (phys=21)
-          L1Cache #11 (32KB)
-            Core #11 (phys=1)
-              PU #22 (phys=19)
-              PU #23 (phys=23)
-    Socket #3 (phys=3)
-      L3Cache #3 (8192KB)
-        L2Cache #6 (256KB)
-          L1Cache #12 (32KB)
-            Core #12 (phys=0)
-              PU #24 (phys=24)
-              PU #25 (phys=28)
-          L1Cache #13 (32KB)
-            Core #13 (phys=1)
-              PU #26 (phys=26)
-              PU #27 (phys=30)
-        L2Cache #7 (256KB)
-          L1Cache #14 (32KB)
-            Core #14 (phys=0)
-              PU #28 (phys=25)
-              PU #29 (phys=29)
-          L1Cache #15 (32KB)
-            Core #15 (phys=1)
-              PU #30 (phys=27)
-              PU #31 (phys=31)
-  NUMANode #2 (phys=2 local=1048576KB total=1048576KB)
-    Socket #4 (phys=4)
-      L3Cache #4 (8192KB)
-        L2Cache #8 (256KB)
-          L1Cache #16 (32KB)
-            Core #16 (phys=0)
-              PU #32 (phys=32)
-              PU #33 (phys=36)
-          L1Cache #17 (32KB)
-            Core #17 (phys=1)
-              PU #34 (phys=34)
-              PU #35 (phys=38)
-        L2Cache #9 (256KB)
-          L1Cache #18 (32KB)
-            Core #18 (phys=0)
-              PU #36 (phys=33)
-              PU #37 (phys=37)
-          L1Cache #19 (32KB)
-            Core #19 (phys=1)
-              PU #38 (phys=35)
-              PU #39 (phys=39)
-    Socket #5 (phys=5)
-      L3Cache #5 (8192KB)
-        L2Cache #10 (256KB)
-          L1Cache #20 (32KB)
-            Core #20 (phys=0)
-              PU #40 (phys=40)
-              PU #41 (phys=44)
-          L1Cache #21 (32KB)
-            Core #21 (phys=1)
-              PU #42 (phys=42)
-              PU #43 (phys=46)
-        L2Cache #11 (256KB)
-          L1Cache #22 (32KB)
-            Core #22 (phys=0)
-              PU #44 (phys=41)
-              PU #45 (phys=45)
-          L1Cache #23 (32KB)
-            Core #23 (phys=1)
-              PU #46 (phys=43)
-              PU #47 (phys=47)
-  NUMANode #3 (phys=3 local=1048576KB total=1048576KB)
-    Socket #6 (phys=6)
-      L3Cache #6 (8192KB)
-        L2Cache #12 (256KB)
-          L1Cache #24 (32KB)
-            Core #24 (phys=0)
-              PU #48 (phys=48)
-              PU #49 (phys=52)
-          L1Cache #25 (32KB)
-            Core #25 (phys=1)
-              PU #50 (phys=50)
-              PU #51 (phys=54)
-        L2Cache #13 (256KB)
-          L1Cache #26 (32KB)
-            Core #26 (phys=0)
-              PU #52 (phys=49)
-              PU #53 (phys=53)
-          L1Cache #27 (32KB)
-            Core #27 (phys=1)
-              PU #54 (phys=51)
-              PU #55 (phys=55)
-    Socket #7 (phys=7)
-      L3Cache #7 (8192KB)
-        L2Cache #14 (256KB)
-          L1Cache #28 (32KB)
-            Core #28 (phys=0)
-              PU #56 (phys=56)
-              PU #57 (phys=60)
-          L1Cache #29 (32KB)
-            Core #29 (phys=1)
-              PU #58 (phys=58)
-              PU #59 (phys=62)
-        L2Cache #15 (256KB)
-          L1Cache #30 (32KB)
-            Core #30 (phys=0)
-              PU #60 (phys=57)
-              PU #61 (phys=61)
-          L1Cache #31 (32KB)
-            Core #31 (phys=1)
-              PU #62 (phys=59)
-              PU #63 (phys=63)
-depth 0:	1 Machine (type #1)
- depth 1:	4 NUMANodes (type #2)
-  depth 2:	8 Sockets (type #3)
-   depth 3:	8 Caches (type #4)
-    depth 4:	16 Caches (type #4)
-     depth 5:	32 Caches (type #4)
-      depth 6:	32 Cores (type #5)
-       depth 7:	64 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,49 @@
+Machine (phys=0 total=67108240KB Backend=Linux)
+  NUMANode #0 (phys=0 local=16776592KB total=16776592KB)
+    Socket #0 (phys=0)
+      L2Cache #0 (1024KB line=64)
+        L1Cache #0 (64KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+      L2Cache #1 (1024KB line=64)
+        L1Cache #1 (64KB line=64)
+          Core #1 (phys=1)
+            PU #1 (phys=4)
+  NUMANode #1 (phys=1 local=16777216KB total=16777216KB)
+    Socket #1 (phys=1)
+      L2Cache #2 (1024KB line=64)
+        L1Cache #2 (64KB line=64)
+          Core #2 (phys=0)
+            PU #2 (phys=1)
+      L2Cache #3 (1024KB line=64)
+        L1Cache #3 (64KB line=64)
+          Core #3 (phys=1)
+            PU #3 (phys=5)
+  NUMANode #2 (phys=2 local=16777216KB total=16777216KB)
+    Socket #2 (phys=2)
+      L2Cache #4 (1024KB line=64)
+        L1Cache #4 (64KB line=64)
+          Core #4 (phys=0)
+            PU #4 (phys=2)
+      L2Cache #5 (1024KB line=64)
+        L1Cache #5 (64KB line=64)
+          Core #5 (phys=1)
+            PU #5 (phys=6)
+  NUMANode #3 (phys=3 local=16777216KB total=16777216KB)
+    Socket #3 (phys=3)
+      L2Cache #6 (1024KB line=64)
+        L1Cache #6 (64KB line=64)
+          Core #6 (phys=0)
+            PU #6 (phys=3)
+      L2Cache #7 (1024KB line=64)
+        L1Cache #7 (64KB line=64)
+          Core #7 (phys=1)
+            PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 NUMANodes (type #2)
+  depth 2:	4 Sockets (type #3)
+   depth 3:	8 Caches (type #4)
+    depth 4:	8 Caches (type #4)
+     depth 5:	8 Cores (type #5)
+      depth 6:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,35 @@
+BZh91AY&SY†%)Ç D“­ÿøVQïÿö=oÞ€ÿïßð@B   "ø`ÿ>¾ñöä½#MÙ¡x-{€h %$¼        
+4ÓA¡¡¡‘  hh
+4d  ÂbB)‰·êª¦‡ú© @  @     
+S؉ª  ¦        õA)é"i&“"dÓL€        Ð"”HÐ    †@    *HA4 ÐB4§´§š§Šz™22mC&Qé=&LÔ`Ÿž$#ô‰øÄþ_ÀŸP¤L‚[àô>¢ãB‡Åíù>?—åþŸ›Y&Ô|Ãh‚3TXE±l/¤E •PGz	M¶Ï“XÞÆ1Xµ•ŠÊAÒm#§iHé‘Ërõ‚I¬I5‰*ε«<«Z³ŠÖ¬âµ«8¤ÊfffU­Azç|ï2Z÷½É³;ÖeKÚ¶‰„#8˜˜BÖµ)jQJ)E(¥¢f&&&&&€3UU‚N1Œb°flÉÀQBm…,81ƒv0ÇFèÃc£ÓSZÞŠ h‰â$,RL¤I¦šÕV¹BŠ‚L&ㆥµ—òeJE3!$ÍÜ»»»»»’I$Sj °(”Z(¢Š*XM
+(¢Š-(Lò¨TD‡Ã°U‚Ib¢
+„‘BFEˆ€…ˆ†!Š¢¨¥U!E¨Pª%J‚AU";‡êXîXÌ÷]‹- ñ1¸È¡›=–\U
+ô
+Bù‹H òûŸwÏÇ´«GH´e1F(ÅÆ-¨Á°{€};ªªª®­UUUUUUUga¥¥¥¥¥¥¥/g…bÐÆ¥:òèmYBªÐ­4+l¡_¬©^Í3£ì¢Z‹Q-E¨–¢Õ&i¹¸x‹ƒ`ו_8À`P¹Ã_[Ö3ÝÝlö×NÐ:I¦yíkÞýoËv{iÃ!ÏÝQUK¤Ed"Qly…§¡I,‡)`ΤC³ÒV$R¤^½W߯’%fƒ9…'%G¡ÉÎ7zåà’ð‹Â‚’Iµ 
+àLÌ$¢‚”´ 	o®^øµ¯u^ö«ß¼`Pîàæ6¡õŽ ÀÀïcõŽÑÈh=—*ªéóͪå¸Ä:.{™µ£±Ë޾ ;bBvu6-šÙ勏x{ä¤s!Ì3øýBàýcaÐ7|\pǘö
+Gæ2a¨ô	넏|l,'`ûDHtˆ°ñ ë;ª©ØnI$’I$’Hô€çÇukZڝÆëQ®Ñ×í©MŒ±ŒcÆ                           
++ZÉ$’I$’<À¥ށ@e(¥Ôƒƒƒƒƒ†Ye—$Æ1ÌQX¸’I$’I$I&7¢«!Uœç7jªª«`HÉ$’I$’I#À
+ÎË™$„„„’IUUVœe–Qe1{ÝŒc  ­kZÖµ­kY`5@ª¢ª¤€PUVµœœ­÷LIo	90Þ-LgTQTfʪª‚P¦
+pÀ	qÖpV+1&CVC8tù,öòÆ4cÅíkpÁßÙXX¡J¢ƒM{3’I$.*I$ðˆù‹€r€O´~Eœ|â|ãüCð	øD°Ì5
+(~Zü^¡Ú>œ¾£¼îO§êÜ>üžU	E°‘hD‡œD‡ÉðÏŠ’ áîWÁ;u[%­Jª¥PÖ"B‹¯¾ðCùÄ (ZÁݝZgRD^Æ´i}؁tYƒ¾ßYÁƒ[¸KQ¬Vlî¦6ÕmïN)#\ëJj=ãuD—÷dzŒIab…(Š¶?ÐPè5œ!AB¸ñ4ã3žÒG2D2¾e÷Aí¨’v;6ÙÌ=·¾VêîáÅjF©­iîÅ^ªD‚ÒÔ®;àÏ=ÄîÏ]N1Óª¬0^gŒkGXÎí¸çø­mùIv
+'h×ohÝ•T‘»„¯Œ­íøIqR¢$)kKWUós“§~8SŽÕF-RÒ¥×™åjËZ¦Ê ŽÓY˜u¢sMÖˆð<*´¬¬ÈgÚ4ê‰,,P¥ÑA¡Ç°Ò7Ôª®®Ì4áÀ7kˆ·nQ0”2ì– Ò8Nü[·¦8Úéq/kÛ\|ôÒ…ÒÖªGã©T‰Œ	ZÕÓ4ë½øŠ¶rEU(KDeS*·}ueáŸõÄHtì¾é7xnŽÛ)¬—XÎoiȳ¬ uLg¡Eûøñ‰)*2¹µHlðãl°U¤/k^;±žXʦþY1Q|¯”ºËÞ^^Dƒ!S†'VñlL-,†/Ç]¹-÷ÝY^Û5-ynYy…ã<oª’Xë
+ß´¦ƒ1ï¸b°áuU¢$8 Ï[Ά£F°Î+~sÔßÊÕ[Y¿¥°‘pk6½VXbvá![•B
+¥xc:î	&ÖEâÑCÅ`Q$“Ìra¥§´•z’ƒ:¬]uëÖ;7댵¸Ð4š"CºÒ$×»=*×¶­K^ô߉fL˜Îת[+È“\çÈ,.8í[Ðmº"Bµ…iÔW@¸ÄÖS±ÂV1*
+#HÒ@•)́œJ9dH(^’S}¸iÝ”×ZÏ)j98a,¥«bg“[k}U
+T„¨4Ö·«±½È]m%bJ\”§FùmÉÍ6ËÍð7¼JÍâçÃ%dµS:Å’ à(jË>
+üô¾kVìZõC‚
+ݾbÛvåhv•Ž[Af³RÙh²ª‹¬ÖIv¼öS»l×S5¶’k˜a׏숐ÜNM8Ô‘¨g7G(6ËZ‘¦s£ÚŒKáQYJ=7ÉË«ž¸Ð]Ž~
+bKÔ+¦sAµ`ã7(¼ˆdÞaÅ5Ê’šÍ7u(’¥ u{‹Æ*”‰í0ç"Kg|•Ÿ6Æu2¬®8ÞÓ=ùn;³çÔÖûo½«-ÅL‡¤f8qú/n
+:†î'@~ôx#µã—nn}ùiäκ~°/l)ü¿-væ[Î\˜3?Òª³N³ …º‚Þ%Ƀ3eUZud²P[Ĺ0flª«N¬‚Bêx—&Í•UiՐBÈ]AoäÁ™²ª­:²Y¨-â\˜36UU§VA!u¼K“fʪ´êÈ!d. ·‰r`ÌÙUVY @ÿEç9Ã
+¤à6Td–––Ó,´ô
+%¶TFˆ5[œ«ø hø÷ëÄhºl«dFRŸðvjþ˜/+â˜PŸúÄ&à>‘û϶?hz…Éö°Þ¸ÌQ˜ó‡øœ,I÷D4°ª;'ÞU(X~â‡þ”e˜Èâq8
+K—4<†ÇòÌO¼?Q‚Џ=Ñú¬OtMÃQ7n5™•¼J†Âz¯¨š²"CÝ޲jT¹^Ië:‡ûaà0?)ïÅÅÀ£`¡ÄX‡ˆ¡Ò"CQØ:ÆePñ¢ÑXœDØLÌ°à‡—ëÐ\ÔO(‰!‚h'A¼Xn>ÏmQ¡˜üà’…ÄdPÌv™Š?Ìb	ƒ`’ga,N#€Ü(6‚Ã1q.ˆƒ˜–Œ¤öUK…ƒ€›Äl(N1€à˜¨Ct	”,=cÞ`žAB‡¤¡8‚2±Àd<ÇpPµ	‘’‡¹:Å´lZ5&ƒ†áÄJ%"Çï;†ó¬À›PÐ(ØN"…
+Á!î€ë31`Ôl4‡¨`÷ĵ„Á2ˆÔv‡À&è$-9U*UC!pÌL” =#xõ1æ'!BX;‡¨nÜ\d(P\x‡€õ2FѤD…†`P°Ž±à’t%ÄÈqðšÔK†BÁ<`Ð4
+Ǽ‡#¬|G˜ä/!î	‚\ÝÈ\6¡ÚuÌ`1cÄè<ŒÄè	`wwàPìÌ(r$Ÿ	Þ3‡‰Àðâf3
+ÃÑ!˜LĸÈ\wB7†ñÄ9ŽaÖ(ž±°ØK‚¬âI
+Qä5pë@ÈNÊ؉
+?y¼h(ê8	¨‘(RDyà6‡\$ö€ÈpƒqC™ñ”jIÈxG“Ä ô	ò$OHRI<˜Nȉ@ÔGâ09ˆÞ7‡ ïÀl'QCå§î9ãª=žÁ¨ñCAÔ:	CàbÀ¡â
+áqîÈi‘°Ñ甝¡¨ú†ƒ´u	B‘P¨†Ñ0:C!‚KŠÔ\øî5à3‡þ%ÎÔ|ÂÃÀTD†¢s%Á郮"Bƒ ÐP:Œ‚…x!!DBx\XxXd3({Çh÷â$5ƒA,#pK	q2¢<ÇÄGu‰`è`á!ƒ!¼$8ÅÆô$(PHd\hnP¸ä<Bã‰ÐQ˜¨С$24fၘ™Ü%
+„à?øj#¸v#°LÆð¡â(oDà„Ü=£þÆ!ÔJ(“¬þ1ÀþQ yJTRIí#¸æ!PHs¡;E†c°JƒAÜ9
+Á‚„(P¸õ…„ï¬d¡,&ñ,'$9	CЂC¼u„}´‰	ÿâîH§
+Ä¥8à
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,10 +0,0 @@
-‹ SÖ9K í[sãF’…ûuô+ð¸1ãE
-úÍÞÇ8¼žX»ch’æ-HHnͯßÙ’A at 2QÙÔÙ¦ò|1žV‹Õ„ÄÄ
-™§*‹r9ÏÜßÜÊÎþãÝ+{ò4mÿ4yïÿnœÛÿù™wÆØØ¦qìLò.6Ö¤æ]”¾ÖÔån×”Û(z÷ñf}³¨W2®Úî?–¢ÿÍvý*'Á¸ø›$Mb“ÄÖÇ?1&eüâ?ÛÜÕ«ëõ9Ñ8;Äû™øë’~ü]'ï¢øœ?ÄK(ój·[oÿòm_ÝW«ùz;­çþoßÝ5·Õª©gßýüþÊŸÑu¹¬þ“^-×ójñÿuöùëhU.+ÿ÷÷wåâoÿ¹ÞV‘ÿgÑošj»^ý[³ü÷蟏GŠ
-kŠ«]Sm6õêÆÿ»ûŸÿþ¯ö
-mÇߘÌ\ÍÊÙmíêµokb뢟¾¿ÚÜ>ìêY¹ˆö?b|µ«?ú ÝìïÒÖ¿°¥}Ëö‡—®7wí·ª]ûå´ú4«6M½^}þ^{ÒÏ£Euï)°«ß7O£¥wÿÿÏ¢ûeÍ«h³«¢f7‹–»m´)«h9«¢Ù§"*7õ,ÚU›hÙlý+7í+e4[®ïý°¦ýgIÍ׋»Ým´\~Š®?ùwØùwóÿÙ趉v;ÿËùóSûzõ©Ù™®7M´ûCn¢Å2Jæ«õïíkû/¢ÍªöG7Y´(o¯§þõÙr3]T7åì!ÚÝ/#?rÿƒÍ¶Åço_}\߬—õ¦ýhRÛýÆš«_ÿëû£ÏÚýäæ›ö£ùüó~~1s‡ÀLËE}³ZúäðÍr>÷Ÿõn?¬}_Gëf=쯑+ß¹¯·?I®6þ—ØFËråӾϷþ3®}îýM³‰še´kfWWÝSÔ\Ú)jxŠ~ñ)j&“oÒ‹9Eí¥¢–§èYNQw1§hri§hÂSTÙUÔ]Ú)úò\Ôð}“§hzi§èËsQž¢A7úìRNÑìÒNÑ—ç¢<Eßæ)š_Ú)úò\”§èÛ¹Ñÿÿed±tóÿþDx•`@ý'vÆ´õ¿<YÿAЏÿ¼º¯ýó¬çAxü3–ñGðRüý×Mµ<Ïiÿ4O2ÆÁ‰øû9Ê—ŸañÏ|ü³4¡þ!Œˆ¿ÿ/û¢“`lüM’gqæÇ™ÜYÞÿ!Œ³Þ¬ë›ɉ¬kl–0þ‚ãßÜn«r>}|sŒ6ÀîEÿÿÚôãï’$¥ÿÁcþú%_¸XÍóò[#Xÿ¹•馜ýVÞTÓz~ê§ôǶ§ÿÔO¨–ÊUM°þÛôöÍw	×›§þê_52ý‡ÌþEóÿØÿAý8Ïüßñ*r¡ŒÕÿ¾þ*̶§HPþÏÆŽùañ¯Wóê“
-=
-ÆÆ¿“ÿËãAÿÖopŒÓóÿ¬?ÿß×xÿ}ZßÍO¼{«E¤ÿ§ L5ݔۦn}m/#üù?s9Ÿÿ!ðù_7"ý7›³ÞÿÏÿþþï¨Võu]ÍyPŠHÿ{Ïúøc„ßÿm–qÿ¬ÿéF¤ÿÙú¶ÚV«ÙÃáàT:à´þ“~ý?Íéÿ1u¯‘þ/vÓõõ´ÜíÖ³ºlêûºyxùáúÏLNÿ“Qÿš‘åÿoËm5Ÿú¦Ërsò§ôÿLý?µ¬ÿCèUòéÿU†Hÿ«»åÇjÛÎ vU
 sZ§ïÿé@ÿ¹¡þ´õ?ŠW/ýÇÿ÷ÿ† ŠÿÙýnPÿáüCF÷‡jDúø?2êýºéÿÜþÁóŸMêÂû²)y	ЋHÿÿó?xÿ׍Hÿÿý_èÿЍHÿg÷žÿMNÿ7ú?u#ËÿüÔ?„ž“ƒþeˆôvÿG¿þçRæÿ1¤†3 Íôo þîÿ
-A„ÿƒþôèF¤„ÿƒú‡ÀúnDú?ûþÃû?÷ÿÆðãj×lïfíå›W…ˆôðpÿ?¼ÿëF¤„ÿƒõôèF¤„ÿƒûÿ@`õG7²ü?ÀÿAýCè99èÿP†HÿÿóèÿÐÍ8ý·|9¢Uxhÿoãèÿ@06þèþßiÎø#Ž?ªÿ7×B8Ëü?fñR	Ö?ªÿ7×Bàì_7ÁúÇôÿfý3wº‘éÐÿ›þg™ÿ³ÿ÷Å2VÿèþßÌÿ`‹?®ÿwÂøCÅÐÿ›û?c`ÿo݈ôXÿÇçôÿëF¤Dÿï˜úGÀþߺé°þ/¥ÿëºé±þþ\ÿ§‘þý¿éÿÀþߺ‘åÿëÿXÿ‡Ð«äÓÿ«‘þý¿3®ÿ…ÀþߺèÒÿ;Iéÿ@ Š?bÿgÎÿ pÿg݈ôðPÿèÿЍHÿˆþßÔ?öÿ֍Hÿÿó?xÿ׍Hÿ ÿ÷Ã@ÿ‡nDúGìÿLÿ7ú?u#ËÿüÔ?„¾“ƒþ]ˆôØÿ™ù?ÜÿY7ýCú'ýDñGø?èÿ‡@ÿ‡nDúGø?¨¬ÿèF¤DÿoêûëF¤„ÿƒûÿAàý_7"ý#öÿ`ýýºéáÿàþ?Xýэ,ÿðPÿúNú?t!Ò?ÂÿÁüú?t3Nÿ)¾ÿ7û¿@tÿïÖÿÇø¿>ÁñGõÿfÿg™ÿ[v½T‚õêÿÍúÖÿt¬Tÿo®ÿ†@ýëF¦@ÿoîÿá<óæ/•±úG÷ÿfþCXüqý¿ãA@ÿï„õìÿ­‘þëÿøüÏÿºéÑÿ›þìÿ­‘þëÿ¸ÿfît#Ò?býý?¸þO7"ý#úÓÿý¿u#ËÿÖÿ±þ¡WɧÿW"ýúsÿìÿ­þ!ý¿]LÿQüû?sþû?ëF¤„ÿƒú‡@ÿ‡nDúGôÿ¦þ!°ÿ·nDúGø?˜ÿÀû¿nDúGø?èÿ‚@ÿ‡nDúGìÿLÿ7ú?u#Ëÿ
 üÔ?„ž“ƒþeˆôØÿ™ù?ÜÿY7ýCú;CÿQüþúÿ!Ðÿ¡‘þþêë?ºéÑÿ›ú‡Àþߺéáÿàþxÿ׍Hÿÿë?èÿЍHÿÿ÷ÿÀêndù€ÿƒú‡ÐsrÐÿ¡‘þþæÿ Ðÿ¡›qúOðý¿Sú?Œ?¼ÿ7÷Tÿo®ÿ‚p–ù\pq¡ëÕÿ›Ïÿ*W5ÁúGõÿæúÌÜéF¦@ÿoÖÿ!œeþ_pþ©ŒÕ?¼ÿ7ó?ÂâìÿÍøCÅÐÿÛ²ÿ/öÿ֍HÿÜÿùÍ@ÿ¿nDúGôÿæúìÿ­‘þ¹ÿó›î?݈ôÏýŸß\ÿ§‘þý¿éÿÀþߺ‘åÿ¹ÿó[¡WɧÿW"ýúsýöÿ֍@ÿþßíþô¼>¢ø#öæü÷֍Hÿÿõþ݈ôèÿMýC`ÿo݈ôð¤Ìÿ@àý_7"ý#üôA ÿC7"ý#ö¦ÿýŸº‘åÿþêBßÉAÿ‡.DúGìÿÌüîÿ¬þ!ý¿“œþ¢ø#üôÿC ÿC7"ý#üÔ?Öt#Ò?¢ÿ7õý¿u#Ò?ÂÿÁýÿ ðþ¯‘þþÖ Ðÿ¡‘þþîÿÕÝÈòÿ ÿõ¡ïä ÿC"ý#üÌÿA ÿC7ãôlù8¢Uxpÿï„þcãîÿrÿÁñGõÿæú/ç™ÿsq©ëÕÿ›ÏÿXÿÓM°þQý¿¹þûëF¦@ÿoÖÿ!œeþo9ÿ¿TÆêÝÿ›ùañÇõÿæþÏDñGôÿfÿ_ìÿ­‘þ¹ÿó›ù?݈ôèÿm¹þûëF¤îÿüf`æN7"ýsÿç7×ÿéF¤Dÿoú °ÿ·ndùîÿüVèUòéÿU†Hÿˆþß\ÿý¿u#Ð?¦ÿ·£ÿ(þˆýŸ9ÿƒÀýŸu#Ò?ÂÿAýC ÿC7"ý#úSÿØÿ[7"ý#üÌÿ@àý_7"ýüý_èÿЍHÿ€ýŸ3ú¿!°r«Yþÿõý†ú‡ÐwrÐÿ¡‘þû?3ÿû?ëF Lÿï”þ¢ø#üôÿC ÿC7"ý#üÔ?Öt#Ò?¢ÿ7õý¿u#Ò?ÂÿÁýÿ ðþ¯‘þþÖ Ðÿ¡‘þý¿¹ÿVt#Ëÿöÿ þ!ôôèB¤„ÿƒù?ôèfœþ¾ÿ7û¿@tÿïÖÿÇø¿>
 ÁñGõÿfÿg™ÿv½T‚õêÿÍú*W7ÁúGõÿæúo¬ÿëF¦@ÿoîÿá<ó^E.•±úG÷ÿfþCXüqý¿ãA@ÿï„õìÿ­‘þëÿøü3w݈ôèÿÍõØÿ[7"ýÖÿqÿ'tÿéF¤Dÿoú pýŸnDúGôÿ¦ÿûëF–ÿ¬ÿcýB¯’Oÿ¯2DúGôÿæþØÿ[7ýcúçô űÿ3ç¸ÿ³nDúGø?¨ôèF¤DÿoêûëF¤ÄþÏÌÿ@àý_7"ý#üôA ÿC7"ý#ö¦ÿýŸº‘åÿþêBÏÉAÿ‡2DúGìÿÌüîÿ¬þ!ý¿]LÿQüþúÿ!Ðÿ¡‘þþêë?ºéÑÿ›ú‡Àþߺé±ÿ÷ÿƒÀû¿nDúGø?Xÿ@ÿ‡nDúGø?¸ÿVt#ËÿüÔ?„ž“ƒþeˆôð0ÿþÝŒÓð–G´
-îÿméÿ@06þèþß~8ã 8þ þß–ë?!œeþ³Šp©ëÕÿ›ë?!ðÉ]7ÁúGõÿfýõ¯™þý¿éÿp–ù?û_,cõîÿÍü†°øãú'Œ?Qüý¿¹ÿ3öÿ֍Hÿˆõ|þ‡À™»nDúôÿ¶õ€ý¿u#Ò?bÿgúÿ Ðý§‘þëÿØÿ×ÿéF¤Dÿoú °ÿ·ndùÀú?Öÿ!ô*ùôÿ*C¤Dÿo®ÿ…ÀþߺèÓÿ;¡ÿ(þˆýŸ9ÿƒÀýŸu#Ò?ÂÿAýCà“›nDúGôÿ¦þ!°ÿ·nDúGø?˜ÿÀû¿nDúGø?èÿ‚@ÿ‡nDúìÿœÑÿ
-þOÝÈòÿ¯ïÿ0Ô?„¾“ƒþ]ˆôØÿ™ù?ÜÿY7ýCú'Žþ¢ø#üôÿC ÿC7"ý#üÔ?>¹éF¤DÿoêûëF¤„ÿƒûÿAàý_7"ý#ü¬ÿ@ ÿC7"ý#üÜÿ«?º‘åÿþêBßÉAÿ‡.DúGø?˜ÿƒ@ÿ‡nFèç•?Ÿ.gÓÍúw¯ú]y?¾õמVáYÐü?1ôa`ÿ?ÝŒ»ÿçÂÎ_Z…õÿ2¹ký?ô½>cãÿÔÿQpŒ±ñïøÿlFÿ„àø7·Ûªœu <ÿ'	óÿÎòü_pq©ëÿÉû·)g¿•7czŸ~þïÏÿSã8ÿ‡P¹ª	Öÿ¾ÿ÷iÍw	׿Íbæÿ 0s¯™þCfÿ¢ùÌú†óÌÿ^E.”±ú?ÔÿdÇhO‘ üŸó?Ââÿ¹ÿCà1ÆÆ¿»þ×1þDñ?ûúßl¸þ‡û?Bhûp°^Dú¬ÿeÿ?|þ׍Hÿg_ÿÛŸÿùû?÷…ðaU_×ÕœW¥ˆôXÿ›qý/ºu#Ò?`ýoNÿ®ÿՍHÿg_ÿÛ×fcú ˜Œú׌,ÿÿúë-ëÿz•|ú•!ÒÿÙ×ÿöû?º4·Ô?‚¶þGñêE ÿâÿ°ô űÿ;ç¸ÿ»nDúGìÿNýC ÿC7"ýŸÛÿ1xþ³iBýCx_6%/zéáÿ`þïÿºéáÿ ÿýºé°ÿ{Nÿ7ú?u#ËÿüÔ?„ž“ƒþeˆôØÿù?Üÿ]7ýˆÿ#¡ÿ(þ ÿGBÿ?ú?t#Ò?bÿêë?ºéÿìûïÿÜÿÏ«]³½›µ—o^	"Ò?ÂÿÁýÿ ðþ¯‘þþÖ Ðÿ¡‘þþîÿÕÝÈòÿ ÿõ
 ¡çä ÿC"ýüÌÿc ÿC7'ô¿ZÏ¥]þ UxXÿï,Ùÿ˜ø·ÿlúé06þO×ÿô×>ÿ1þ¯Ïøøûi€0 ûøçù‰ø'&óg€ñmœ¦ö]d¿9ïïú,ŒÿÈøûI_é?«&ü'Ÿÿ\Þ÷ÿ¹”ù_mT§·u¥yêò̸«ýw–õnŇ¯¯×Ûª¾Yù¿Ö«¦Ú.ªò¾ÚÿëC–_-Ö­¨=GÚ÷hWngWëæÖ?ì¿gã	ÛC~½Œ×ÿ²ZÖ«ëµà'ôï¥ßßÿÃXGÿ?„«´"5ÑÏÕò×uS.¾Zü<ϭɢ߾ïøa[U‡×ý€$™¸Ìø°«æŸD‘Kr9èønÖÔ÷ÕÓëþMÒ¼˜tü¸*{CrW$ïëmóÐyƒý›tñ¿Ûº©>–³ßºƒâ΀êEõÏò¦Ú=(üõª;àçr³éü{²î€ïVëÕÑ;DY‘v?¨öÅ_ˏ‹îˆ¤;à?ü2ý°ò§ó4¤{ˆï×w«YÕû=»~Y”_Îó¢‹_þ§š-ÊzùÇ!ìäè×üåÃj{òø>®8ŠæßïnÔ´sZÄÃW;ç“€HÐüßÈŽ!™ÿ»Œóãã?¯ý'å¯KáÇ8™ÿø?‹¹ÿW0±Ÿ¤ûÿñò­ ëÿ˜bï3œ|þÔMÌý0ô*¹²/,kH—ÊXýoúÞa?ÿÍÿ§Ìÿ#ÿ×Ìÿò?.åþžò¿ya¬+’É—äÛ÷H&EÚÍÿ)Æ_1ãõÎÿÒÿáÑ‹ŸÉÿféäÔj<Èÿ7é¦wãAþ7³Yáâ΀Aþ×e¶È:ù_k]\t<—ÿºNäãAþ×öÈgò¿Îv1Èÿº|b]gÀ0ÿëŽ?ÉùßøTþ7æmj~‹Aþ×äù¤ûQó¿¹WhgÀŸåcæßã¯ÿþùßÉŽ!ÉÿúaÌÿpþ—ë!<&™ÿÕIÐõ_(HÉõß¿Ìë?€ ø#óÿ¼þCø’´ÿÓ†»H\*cõoÑùÿœùããï¯ÿ™ì¢ç?Þÿ!ÅßÊŽÁçÿ¯—ññ¯ÿ`þÂSýÏYÛÀú_Ö­ÿ9Oâ8IŽÖ˜$›pzøµ2^ÿØú_Êõÿ{jý‡í×ÿÒ<Îâ´7 [ÿóðÆtVNØAýÏØ$vygÀ þ—6M:ž«ÿeEgÀ‰úŸÔÿ²¤(\÷ž[ÿÑ)ŒÙgÖ¤ÝÒš}¦þ×®kï8Qÿ³§êvPÿóÚéJí þg|¨:ÅZû\ý/?ŠæŸÕÿ,ëo†ñ
 ×pý‡ë!Š?†õ¥=ÿ#óÿÔ?„/Iû?}áhñ¼TÆê?Áæÿsÿ-æÿŒ?8ÿÇý ü‘ÿ3y‘N’Àü_–åÿLž¹,6½ü_ÂòðWËxýûù_";ÆþúÏý¿¾JÆÇœÿ5¼þ#8dô’Sùßdÿ-ò|ÒÙs&¬ÿ(&›ØÎ€ÁúÔ™Ôtò¿©+Š´3à™ü¯uÝŸáDþ7䝿ì¤G¿f?ÿkŠØýýü¯µ“¢èæmšuœÈÿ&§ò¿Épý‡ÿ ~‹ÁúÄ«û[ò¿mñ¯ûIþYþ7aþ÷Í0þúÎÿ²þáÑüÊW#Aódþ—ú‡p–ü/7x½X‚ôŸËŽ!zþçþ„B!„B!„B!„BÈhþðáZo ˆ 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8amd64-4n2c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,49 +0,0 @@
-Machine (phys=0 total=67108240KB)
-  NUMANode #0 (phys=0 local=16776592KB total=16776592KB)
-    Socket #0 (phys=0)
-      L2Cache #0 (1024KB)
-        L1Cache #0 (64KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-      L2Cache #1 (1024KB)
-        L1Cache #1 (64KB)
-          Core #1 (phys=1)
-            PU #1 (phys=4)
-  NUMANode #1 (phys=1 local=16777216KB total=16777216KB)
-    Socket #1 (phys=1)
-      L2Cache #2 (1024KB)
-        L1Cache #2 (64KB)
-          Core #2 (phys=0)
-            PU #2 (phys=1)
-      L2Cache #3 (1024KB)
-        L1Cache #3 (64KB)
-          Core #3 (phys=1)
-            PU #3 (phys=5)
-  NUMANode #2 (phys=2 local=16777216KB total=16777216KB)
-    Socket #2 (phys=2)
-      L2Cache #4 (1024KB)
-        L1Cache #4 (64KB)
-          Core #4 (phys=0)
-            PU #4 (phys=2)
-      L2Cache #5 (1024KB)
-        L1Cache #5 (64KB)
-          Core #5 (phys=1)
-            PU #5 (phys=6)
-  NUMANode #3 (phys=3 local=16777216KB total=16777216KB)
-    Socket #3 (phys=3)
-      L2Cache #6 (1024KB)
-        L1Cache #6 (64KB)
-          Core #6 (phys=0)
-            PU #6 (phys=3)
-      L2Cache #7 (1024KB)
-        L1Cache #7 (64KB)
-          Core #7 (phys=1)
-            PU #7 (phys=7)
-depth 0:	1 Machine (type #1)
- depth 1:	4 NUMANodes (type #2)
-  depth 2:	4 Sockets (type #3)
-   depth 3:	8 Caches (type #4)
-    depth 4:	8 Caches (type #4)
-     depth 5:	8 Cores (type #5)
-      depth 6:	8 PUs (type #6)
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,38 @@
+Machine (phys=0 local=16468292KB total=16468292KB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag=)
+  Socket #0 (phys=0)
+    L2Cache #0 (4096KB line=64)
+      L1Cache #0 (32KB line=64)
+        Core #0 (phys=0)
+          PU #0 (phys=0)
+      L1Cache #1 (32KB line=64)
+        Core #1 (phys=1)
+          PU #1 (phys=4)
+    L2Cache #1 (4096KB line=64)
+      L1Cache #2 (32KB line=64)
+        Core #2 (phys=2)
+          PU #2 (phys=2)
+      L1Cache #3 (32KB line=64)
+        Core #3 (phys=3)
+          PU #3 (phys=6)
+  Socket #1 (phys=1)
+    L2Cache #2 (4096KB line=64)
+      L1Cache #4 (32KB line=64)
+        Core #4 (phys=0)
+          PU #4 (phys=1)
+      L1Cache #5 (32KB line=64)
+        Core #5 (phys=1)
+          PU #5 (phys=5)
+    L2Cache #3 (4096KB line=64)
+      L1Cache #6 (32KB line=64)
+        Core #6 (phys=2)
+          PU #6 (phys=3)
+      L1Cache #7 (32KB line=64)
+        Core #7 (phys=3)
+          PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 Sockets (type #3)
+  depth 2:	4 Caches (type #4)
+   depth 3:	8 Caches (type #4)
+    depth 4:	8 Cores (type #5)
+     depth 5:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,38 @@
+BZh91AY&SY+Xw? oæçÿô*zÎÿóïÿÀÿïßô  @  !;ø`þûßwp :uC¬:ôƒÝð{ƒÝ»ïô÷‡˜ªˆ´®±k+,›h¼à/{À @       hCDhSÊhd›S=Hi£#i‰ M È14j= ÿõT£@#A 4 š      iˆÒš”Òhš 4Ð4 õÒ†€É   ™ h$ҁ$i¤j&š™¨ô€ †CÔ     A M&©ˆz™2 Ð Ð ™¤ hh   $@&†FMFL“ÑêOÕM4ÁBoT™4ÄÂhý$òö°°¼@  Nü,\üâb%Aaüßöüô1 ~ Ù *ÀgJÀýTÀúÍ÷¿rï\‰ÅÂ/¿ºØŽøé‡q+?H@?
+Ь‹"¬‹"Ȳ,€ÁWDˍÑA‹!‘H
+€u‰	$}TJ…ó>oŠùÀÕØ~,>#®G¶wV7#¥«Dˆ‹ˆŒ+vDÝVҺ겴ËËšÝÄ­&žãoqinf–ÔÅ©53vîö,g,#y“7e¶w»¹¬äVë@ƈ4A½‘É&É$‘+IÞÍԐÜIjIjIjID’Ô’Ôæe4`‚	7·d•$’LV-XšL'IÒt'vI$†Ý»Ý݁b³³1<—aî!È™˜™12714æµpœÖ®šÕÞµÍtÑ Bd!+B‚0RDˆ Í£Õ*¬U¨+-´«KJVDIR¤#Aˆ,‹$D‚ÈÆE‘XÂ"Aˆ¤bE‘dA „B”ÏMWT–cœ1¨i2ç3äÆLæ™(h:LbÈö½9]6Me“™ëà"Ž­ªëÆ1‹m¶Õ7!7&d b²dÒ(¢³2eQY™)&B(¢Š*!
+ãÕë:Þq™²@„üÈ’X ¤ˆ0ÒR at E(#Q3EH²‚ ±HB@`¢‰0@‚$‚RZ´I<ÀTþ¡RtCÌdŸuQñÒ¨^€Á8HVð	Œcã g9·äùŒ‡°Ë,l0ƒ—§Yç^ù+Êeü¹—†õfõfófó§ê”ù¼/ ú¡ë¯•ùZÖµ­ñëûYãjªª«ô;ó^ô÷¦Üªe2™L¯OÒÜ4Á`°X,œÿHSž¨§|ðeÎlyŒe¹-:¹A!ÚÞ^H»
+ÏG$f!fj„$.u{;E7ºgXÎ({ò LEI'vHàÖ8l.8ßl+
+¨PÓ‡o{ßÞ0ñT0DZÏMtg¦™åž™­‹dÜl/ç&Û^ÕUU_môÛ³ß1ÍòIîHD¡X'ýI;]¨Ê…û÷$!—FU)ÖÄ—ñ²‹*‚*ªÔAhˆ'}$C•#wÔ-QŸ$MύF+Mlfˆê¨dÊq€1QV…¢s{Åg¾$ž0²88ékUV¼Ûç—	ŬWVæÂDÚ‡j¹þȯƒ	§-/"¨:T‹`ÑŸ
+Æ1û™ŠObÃ1æ0‰ˆñ1ÿq˜¸ÀX|Ãú†£€ò<ôé~! îƒ˜õåÔéKø^þ7½Â·–í"ÑL]–í®ÍݶG³»ò@P¸G ê5#ïŽc(d?¬v!C¼pŽÂãaqä.;†caC ÔXb<‡à<„ö“Àf?”(¹‚0ªHHy"œ‹=Çbï‘v}Éží 79!ò<¿=ZÛm¶Ûm¶×ð@É ÐÖ¾i/å…Œ,+X–…&v §% UUU:ªª{Þ÷¼                               ÝÝÝÝÝÔŠI$’I$’=Pî *ìÚI%m¶Ûmµö{î$‡±H{¹9Ï<xñæzI 'd	O|@€óæùÚ¶Ûm¶Ûj^þ¾rL›UUU]Ë|xñãÇn»v{[m¶Ûm¶Û_P5®ãè9‡Šªª«À-m¶ÒÒÒÛm­ªªª­Xb‚&<ÒÇxñãÇŽyçžyçŸÓM4Ò      Ͱ8—µÂªªªä¥ $1×]n¢k­§Ûd$€5o[¤Émé†^…k¤d®… @‹+¤@y557¦ñ¦y}ù#êôŸVúFb’$5¯Ã{óÊI6úÿ×Ý]ÚÖWǽoóc]èûÃÛºA`²ÕaJ
+¡-
+ÝzíÅ$ü—ët“8PG»àáQ«n~––ˆv©ZVMI,Ç·73&°)ÓÉ¢S ¹‰Á¨êƒbØ	um±ű-p9–âìõn£têÚYfÛbâeЍ]™P‘1 dV}A’ $KxifjJO·ss2$TÄŠ$QDÃ_6¶ë‰½‰ ¤Œ€€‡¡¶ø ŒG<ÅÅÞgV]o˜”IÁB7Ík$‘d‘dHH>Ü0@€ BOºó†È–BB¨
+Þ8>‘ÝæŽ…×G»œíÙ3€•YfXÞÜÚ•(Š (V)¥p ¢íõ:Ä;:àˆáNò¬ªÈ/
+à{
+¶Y˜_†‡š!=Äw *¾uPðô9˜+Â1PUP*xqWØ\Ïxk^¸SøíjÃòZÕ+im÷ÙÞíŒaºB%4ÊÏDžYÎ|üçG»­CË8›$FJ"Gªü(÷᝝ƒ·Zën¼¹ØWG]tíåܐ!;}G¼|Ï9ç;yìڏ–í)¼ç=	£È²Î:Ĭ´Õj]«ƒÏ¨Òdxòߦ3{KF×]xãéŒjPPÛ:Îyé:ßô÷YîΓ+o¼"%4[÷Ëüîûgµ:ç†÷ìßN;Ùj³9ÇZ7s—Jip3]èóºÎð¼rÀç“,%)!2³›­ü"r,¯
+y[n<¶Ã
+Âõ‚°úÇìy¼ÿSqè8H(*‚¨
+
+æÝyÇ["=%z&0ú'­¤ëLjÚö½T0¯2@„øYpÎüëçlÚ0Mï WRò©‚MÖ]zØžp!ÖúÞ¶˜hгWX•C6P–Ë$×Åïá­i”çÁÖ
+Û°	Ìz`¬à	mÍÆ_˜í†áô žzÏ^»sžÞ· 
+ at 5±ì	£ L E‹žf.µbsWžšèêÐ"DÍ ÌlMŒÐˆÌ¡Ñ®ØyÒ›ö›ïוòå TXÙÓëŠô…mÅ1álôµîy'ƒN0f¦œÖKp:uŠãܤ€Â¢E«?ÌgÌÖª×ÛÚ°ßè÷›>3¢Hsã<>·ä‡Œoúz©Ñ…뚐D™ID’8 }­yìooZ÷ç@|Æè^Þ _zÕ¾t<°lŸu˸k–µikFU3æ¶ÃáKÉÂà“l©¯C›à8mÖ7邨
+ž®—;f{¥ÜNõ×lÐ@<}u¼#6ó–çVäI™œêïzµËÉ ÚLõ,’ÒZ"ÃàÆ«³Qò‡ACe¤k•°Ã¶ÛÕéË;Õ®½e
+Œð•0g5ܶ}‡ÀPÍ›«ZãRøY‡e¼jùuµÕ~	œ ‡¡«îôø9Ôš‘o bw~l´7«çŠ
+# öÛæ	TDQ0Ò 6îÞk9‡Ñá Br
+gÚï8zM:Î…ÅÂY­jÆüí”AâmQ,x:Íwf+1§‡,·é–Æã4‘¦Y!M¸çá
+—ªsŦO]›9Õ£Œzx˜9Êi÷¾Y4¿LĽHîÆùÌö×9†L¶²ô¦Ä'Axæ6;uC
+ù˾‘£Ö» ¦]’G€„`œÐá¾”E•§š PtˆŠål-•eŽèï7Ät™íÁ¥B­~þ7çÇã½.0bHv³ã®s /’=YÓ2Vá˜fÎuˆBÆ&˜fñÛœÁ¶xg–W8lʱ´ÏˆŒC]}†ü Há©÷R7Ó,
+Ü1㺲Ï5ZÐp©4ÒŒ2••Úª€¡H`WÍäêhܤ rÆf0]uÖ+¡*[¬gSvåãÍæûýáó„OtÔã#>î¼·ä0IãÆa)Ý…ÙáŠB%+0˜¥°3>ùãX5;@žY×»¯¿]ßlæv B\ã4˜`i8Á­ÈÔ8ëÑÁ Bt÷„×kåÕÈ/gJHŽ>^^~¼°á¾š³rªß a®Õš÷­rÇî†UZKid¯Š•€S at F„:v†)¸8ÍÂúcˆWÁè¨$3þ¬§ìÀä¸_Ë­?©r÷+ —˜èÄE3ºÖÑyªãV0Iÿ”½ÞýÞo®Ã¤™%›&q‹Î®a‰8¥îòï7Ž$É,Ù3Œ^uslIÅ/w—y¼té&O-á;l^uslIÅ/w—y¼té&IfÉœbó«˜cbN){¼»Íã§I2rÞ8Åήa‰8¥îõw›ÇN’d–l™Æ/:¹†6$◻˼Þ:t“$³dÎ1yÕÌ1±'½Þ]æñÓ¤™%÷]v	×®×^ŵ]}â1¦-—G¶µõmrÀ5¬y0 1‡%
+Q3¶\í…ëÔÓ0Œ-AÆ¹å‡ ãÊ·F¶©.´`>#ì}<&Òím0ŒÉö
+9“=¿	!ñNçó>³ÍïYe<ÏW†¾¢¾?¿óÿïý¹©U]a'÷]­…½?ñgÛÀŸº.ʳŸ²9Oµ˜™r|\4ì1­•UO˜}ƒø/‚ª¨÷ÇÀ\}Ô,6ýÿ½l0àÖõW©e|%‘8ýƒïÙRgf߯3àíͶÕ_jÖÁSw½w›ÏÝùFzt2Ó#*¨}?£&n×ÿà–E‚UÄòýÑù9‹ázý€Ÿ€MF¢PÜXL7­v¾¸gý¢„¸—Â`;°Æ³¶{	€°ÌP bÐ(eíkcKU«Ù!s²D‰ß?pÕ˜—c‰þ,Đø?Lð‡¦iÐ<Ç€Ènõ{ÆEt#íõž‚‡@Õ(Nµ
+/p¸¼Ý¢÷|Š„ù›ÏÔP»„KËá;„çg¼u„è¼Pœ5f?먝¡=³è'½ÿ6£>)Ÿdꉲ PŽXG€ØVCc€f<ÉáôÒŠ¨*q‡At„MFá
+1PÒh)ù@˜Ã°Î9¢Hi€˜…ÉiÈÆÜq…Å„°¡”d3k©RDRARARARRHªII"©$\%…’hèÕî7”>ób”¦š37‚i	5CaRGÉð¡ÝPJp
+eËQØb0$¸©	 MIJf%ø'øõÈšŽñžÂl~Q>q
+6²`§¦6·Ã °ÇiÕöè.:‹Ž"Âb>CØy
+Cb`+E, P`4P`òáRʦg!|á¨1°Üaˆ–
+ƒð	~gAƒþª`'˜úy¸,ͦa0¤à'ACaC‡Ý%’úÒ>ˆè;O16br¬êýAùÆ#žÃÄiôÄéè%¬'Q¬Îáßž	Ÿ£cl‡¨à?™ñ’Äe<Õ&UCu"o>÷œ'œ¡â9üDî&Âÿ‹L=ÃðHË€tgFⅸ¼…8É‚D␉Ɖ–CH1%ĝDï$ú;`%C5Ä~A6>•Ý2wŠ#A=¤,7î©TªRQTR\\s’-ià8Ÿqsçæ;Ž«’B&â#aA2µsàèO$j'qAã4;1LcÌL4„[Ùwcq°”66cBk~¿fžP’Ñ;»û	R„¡Ì °°ê,.’ℵ"~7ÐitDëìs¡K¥ë¥"q1˜mŠB'1½z„ÐEóæf(TÔ`:O<þ‡¼I¸tC¨°à%…$"~š#£”³¬šsÄÅT%X:#/AàǼl>ÿdMÝFZû.ÜmØ<ÆžõcQ¨›$"QtG{g«žâ¡,:7%ü‰¸D¤
+¿úÂñQqãq¸Æ¡Ä[ƒ¾Csñ·Ã”75†£‘‹‡ááÚ¸Ân8xÏtXö*-,ä;x~²%`Àï	¿ŠB&ÃQ' žBLÐï$l;ǰÚÇÀIî;……†xƒ­i´à¸žä¡ãÔ?3A ã¸Õå•ë	íøGx»v«K!ê*Ô%„ý(J®,9ЁÎ	°ú˜p“&bšhØy¾¡cÈj
+üÅBP ’E
+I'øt„Mì.=!Ü,.ù…LEBUb5DÀx	B}!êæÄ'ߌuƒ ¸ßÐc#ó–¶ÊvÊCˆruÆDDâ'$`3ÐÖâ{ê3䐉qp¡¸°õù‹
+·¤”%’úÒ*&•'á϶Âc”Æöµ	Ï€`<ÜG1ACçqñNô„L¥„°qÁ`õî0‹‰ˆš´0¸}cž¼%ƒ!{º*$°Àc°õZ‡$„Lvâ'!ˆýo6("l) N1ZËPÙLj˜Aý$„NÍ‹,§E…™Šd®­RðH˜fvÌ0I¬G˜® Ð3´'˜Üy	Dà' î
+D™ŽáqÇÈsè3…cAnÌrž]ÈLúC•B:C/¹ù‡¦r4©U	Å·Ž·Üü.oðHDý ÿòB&ÚÝäðÜžál2Àº ˜ö‰AäàÕÍuÝWl;t”%’qù‡€ä6$P¡ób„áÞ>BK³-	Ý&âT;¤<ÃÁ8Š¢ÿrE8P+Xw?
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,55 +0,0 @@
-‹ eÖ9K íooãF–îóvý)ørp2¬*þ‘¸ÀM¦7;Ý̤ӻûN )Z&Z"’ê´çÓß*ÉrK¢Ýd³N;SÏOHZ%QÒáSŸ:5+6IÔ}/[™g2ÿËw.5i›E‡û¿Eíÿ}à;!d˜¦¡JRý¸‰ß±“OsÁ®í²&¾»YÕ«uY}åyEÓr| ^fçñß6õô}üUGˆ?OÅ?ßîÊê¶žì&ÀÉ!ÞOÄ_()/ã‹(ü.'û_Á󸛀m[7ÿö&¯>Õ²nåRÿõE¥/ƒâ]Õë+}I·Ù¦\ßë#ÉÕ¦^ëÓwE|¸TÙ¦ÐïŸý§_ÿüoQWæß¿þãCð…UÁÿ
-äJýÇßþyÕvÅv[V+ýÒt’_þöOó¾RÉô‡X©«<Ë-ÿiÞ=
-çIðŸ?]mïîÛ2ÏÖÁþƒ†Wmy£C·jÍS®òº)́ýó–æÃ¡l[æÇ#eUv¥~‹‡ÇÌC·Û9v_´æî¢øœÛ®¬«‡ÇŒ,–Áºø¤¿ºþæáÕïÛǧ¯3}vý‡~]ðiSË"ضEеy°i›`›Á&/‚üól -¶Á¦kô‘•9’ù¦þ¤ŸÖ™—©$È×·ë]{,»6Èòml6ŸƒÛÏú­Zý¶ú?©ÿÜuA·	¶7ú‘ûVÿ:ŸƒõFãJ_ÕU·0çÏšün±-šÛM]Ûâ¦
-nô›6Åv±ªëe°­J}–¢M¢@?¡ìê&X¶‹|»ÖßãsP´æædúcé/’às·Õ{™o‚¥þÜëìîv¡O©\´wÙ²þýê¦^Õ›r»ÿÉ“8þ!L®Ž_ç!ŽItˆë"[—«jSTÝáÁl¹Ô¡j÷O3/×?ÄM©?ì1Þ×A4;<ò©lº]¶¾ÚÖ¿M°ÉªlU˜÷ysuuzE‹?æ-WtÔ¿¢#\ÑŽ®èô›]ÑòyE?_FËg¯hÙ¿¢%®hGW´úfW´úc^ÑÏ—ÑÏ_ÑIÿŠNpEÿË•ÑÑóŠ~¾ŒÏ^Ñ¢E\ÑŽ®èè›]ÑñóŠ~¾Œ~þŠŽûWtŒ+ú_®ŒNþ˜Wôóe´zöŠVý+ZáŠþ—+£Ó?æý|ýüö¯èW´£+:f½¢ùGÀýæ©ùŸM±aœÿ	eÉÞüL1ÿÃÁ/Åæ·ºËÖoÊx‘DÉLÎeðñ§+}ìç¦(އtuÍgRÎ̱Ÿv··úyó¥vPRHšc5¥Ãòä.n•Pû÷|ÿ{¶íö¯û1ïÊOÅéãJ¥*Ü{We—GçÉ\1¯ûSVÕÕŸŽ¡Ryúº³£gçûÓm¹.Ž(Ïßïñu_Ž>žïCU|*ó.»YŸü6é,Úÿfë:ÿxñåÄ,ŒŽßýìÇNg"ŽgáñØÙ}rì­..ïÏÞÑ|ÁÃ÷ûŸ¦ìŠ›,ÿx~üðýôWþ‡.ZO¢$ÄÃ{þ’m·3HE¼ÿ~ï×ÙÍù‘(Vq´ÿ]ÞÿZäë¬Ü|ùò‘‰<|¿Us8úøj%æ‡cæsüf^túaæ³ý{þýç÷‹¦Î;ýA¾ÃOõ®Ê‹‹/ÿpìñ»ÿ¶Ù^¾î¯õfSvÿUêÿí‰$Œæé᳎uÅrñãûãõ’èÊûˆëü1L*Rñ<U3]0þÐ>þvú:{øŠÇþz·«>>¾T%*Œçæðßv«bÅÙ5ž8» NüÚ~Z>yàý®Ù^Øšº
->>¬‹×ÙÃUT䝎{ôåZQê ôÇcò—‡_+Mæáák}ë
-¸ä©ú_+±›ò_¯ÿu¥‘ª‹ú?Šâõ?¦‹‡3!ƒ¹éß)]D¡îÃéÒrE*J¤I0Óõ˜ÍÓ¹._÷³Ða ¢$Ñe[¬æºâ#Èy’Ìbó’8™é×éw‰Tz|Ð/˜Gq$‰
-”>ááó8tõ™$ºršéDgÐ'ŒC5›©>«
-͹ö/HâдSôt	%•>ÕÔ9ƒ.tuåïÏððS§ëÏ®‚¹>ŠÕñùú¼º‹£ÿ³XêÞÉ\>R¬?ÔÃBó‘Dt|…yXšê\ĺ=¥ó(1¯ÐíýRS‰èW˜ß.z|EbÞ(MÌ+ôÑ(Õ?Ôþ3¡dKóËÒ´¸^êˆ™4Ÿm¶Š÷/ˆô7Ð/æCéG”8|í²êš ŠD¬koý†¡þ5Ì[‰pÿ¹‰‡ÍGJã‡?7}öù¦[fJÎØOk‹ç3¥¾ù§xéM_š‰¾¶Lm¦‹×oþypÃ
-7ÜpÃ
-7ÜpÃ
-7ÜpÃ
-7ÜpÃ
-7ÜpÃ
-7ÜpÃ
-7ÜpÃ
-·Ü®òîsÄqšH‘$W7]¹)ŒFÉ™˜ÏÃãR’¢5n y«ý#í¢ÙUUY­ñð÷ÍÁàªßð[[—À\øÿÚûvúpvù¿”ÉÿÉù¿8x"þKãn/&¼ìâ/Íú0J¾}¿+6\öúOTŠü,Ç?ßî^x
-ØÇ?ÕW âÏÁ¸ø3ý"°Ž¿C“ÿñwEü»z[¯ëÕ½õ…`]  ügÿî®)²åâ¸nðëÃóü¯&þQª›XÿÃÀ1ׯáN„An(ú?&tXl³üc¶*åò«çÒ¿..ôÇÐ?PœßPôoRòiþ{ý+©ôρ‚þ½†¬ÿÑ­Rû?Š¡^C³ÿñN£4bf‚þÿb]¶_Íb_ÿ'º	 ýs@q^óâúPý#ô/.ëÿ8¡Âky]£ðýוÖGA8‡}ý/¤BþO”ï56õÿ]Ñl²õB7ÿë®[£çÂíæU$±ÿ+/‰^ïª1‰"íËÿ(J"”ÿ`þÇo,ôŸ7Y{·¨ê®°ÔÁ°þ/Ë)ýs`“¶â´¯ÿ…áÿdÁ:þeµ,>K«ËÀ>þRÂÿÍ5þ&ÃüØs—ÿÉeû_$1Ê̦Lÿ‰6 ·Põÿè4c‚‹mÖt¥ÙlëÉsØ÷ÿRù?0þç7Týv€[–­Ù´gàƒú—QÏÿ¡ÿÇÂÏEÖíš"ÐÝú ¨L0—(<‚ªÿî~;]û¿7ÿ¯Ûÿ˜ÿcáCUޖм·Põ¿ßHwä9ìÛÿJ Ð?Ê÷rû¿¾+š¢Êï _Ö¿ºôÿJBÿ$
- Ÿ!ÿßeM±\èÃàaý_öÿc…ù_$¼¿^CÕÿïÙ}»¨oYÛÖy™uå§²»æ„ú?QXÿÏ‚€ü½f‚ú“m¿~Ž!ý÷×ÿÆûüoп{Ž1xë#tF¸¡ê¿ÚmnŠÆ´ Ú¢ÐÅpý_ê_Jø¿Y0þˆÎ_húÝû?%üŸPã?­ÿórüG	Œÿð $ÜŸ>CÕ¿sÿ'ôÏüŸ~CÕ¿kÿ'ò?ð ÿ§ßPõ?©ÿ³7þ£DŠúŸ…·Y—AðþBÕ¿sÿ'ÆY@ûßoÈíÇþO	ÿ7ðú
-yüRÿgoÿ#ÿ˜üõªþ§õöò¿'ã,Ì ¯™ þwãÿÄøÇ¼ÿ'²‘rCÕÿ´þÏËþlŠèŸôÿý†¦áÞÿ‰ü¯,PãïÜÿ‰õ,Àÿé7Tý;÷Bÿ,`þ×o¨úwžÿý?àÿôªþ§ÍÿÙoÿ§¨ÿYxWµ]³ËMÛ
-º÷ªþû?áÿ`í¿!·ÿ]û?áÿ`ó?~Cÿwíÿ„ÿ›ø?ý†ª×þOäÿæþO¿™ þwãÿÄøÇÀÿé'Tý;÷ÂÿÍúÿ~3Zÿv[¾ŸançÿÔ%ögÁ"þ]½­×õêÞúB°¿HEˆøs@‰w×ÙrÑ–7ú[
-ÿ(Cõ¿ý¥	ÆÿXàoäí#ÜPôÿèýÝfùÇlU,ÊåWÏ1¤ÿ'ÆÿcèŸô¸ý†¢ÿ¼n5нþæÿ™Àþ¿~CÖÿèÖ?©ýEÐ?¯¢Ù¼Ç(˜™ ÿ?h ²¯ÿýDèŸÔÿ~óâúØþ7býOoþ?J¡Âkyapo±Ð]«?áöõ¿
-ûÿ²€õ?~cSÿßÍ&[/tó¿îºu1zØ(ÜnþWEfýæÝó’øçõ®húí±/ÿ£(ÿ›Ìÿø…þó&kïUÝ–:Ö?ÿòÿó`ÿ½ÿ—pûú_„¦ÿúß=Öñßû¿íÌ öñ—2…ÿjü§Íÿ™`ÿ÷oDÎd õªþ]çÿÄüÿóªþïÿŽþÈÿé7TýO›ÿ³7þ/Ìÿ±ð¡*oKhÞ[¨úwžÿù?X€ÿÏoÈí×ù?#èŸäÿðòøÿ¤ù?/ûÿØÿ	ï¯×Põ?mþÏ^ýŸH¬ÿgA@þ^3Aýï$ÿgŒù?Ž1xë#tF¸¡êÚüŸ1öÿFÿDç/4ý‡ÎýŸ&ÿüŸî¡Æßõþïÿáû¿û
-UÿÎýŸÐ?ðú
-UÿÎýŸð± ÿ§ßPõ?©ÿ³7þ£D‚úŸ…·Y—AðþBÕ¿sÿ'ÆY@ûßoÈí×þOø¿Y€ÿÓoÈãÿ®÷Gþ°þÃo¨úw½ÿ»ÄøØÿÝo&¨ÿÝø?1þÇÂ1¯Âÿ‰ýÙ¡êßõþïë?Y@ÿßohúîýŸÈÿÊ5þÎýŸXÿÇüŸ~CÕ¿sÿ'ôÏæý†ªçþOôÿX€ÿÓo¨úŸ6ÿg¿ýŸ þgá]ÕvÍ.7m7èÞC¨úwîÿ„ÿƒ´ÿý†Üþwíÿ„ÿƒÌÿø
-yüßµÿþoàÿôªþû?1þÇüŸ~3AýïÆÿ‰ñ?Ž1€ÿÓO¨úwîÿ„ÿ›ôÿýf´þc+ËçFávþO]"ÀÿÉ‚Eü»z[¯ëÕ½õ…`‘
-…øs@‰w×ÙrÑ–7ú[
-ÿ(Cõ¿ý¥)æÿXàkۏ¸#C4F˜¡èÿÑû»ÍòÙªX”˯žcHÿOŒÿÇÐ?˜ÿ÷ŠþóºÔü)öúWúýs ýû
-Yÿ£[ÿ¤ö„ù^C³ÿñN†T´ÜLÐÿ4 Ù×ÿIˆü<ÄPœ×¼¸þ¶ÿXÿÓ›ÿCèŸq­®ã륀§Xè¿®ŒÕŸpûú_HÿèÿûMýW4›l½ÐÍÿºëÖÅèy`£p»ù_™ý1ÿëž—Ä?¯wÕ@Óo}ùE	Ö±€W¿±ÐÞdíÝ¢ª»ÂRÃú"ÿöÿaÁ&þ{ÿ/áöõ¿¦ÿúß=Öñßû¿¥óüŸ)ü,Pã?mþϤŸÿëÿXˆÂy‚ þBÕ¿ëüŸ˜ÿãã~CÕ¿ëüŸú, ÿ§ßPõ?mþÏÞø?ò2ñ¡*oKhÞ[¨úwžÿëÿY@þ/¿!·ÿ]çÿL¡ÿÃoÈãÿ“æÿ¼ìÿÇ
-ó¿<ˆk¬ ðªþ§ÍÿÙ«ÿ…õÿ,ˆò÷™	ê'ù?Ìÿ±pŒÁ«Xÿ+1Á
-UÿÓæÿŒ{ù?±ÿÆÿÑùMÿ¡{ÿ§€ÿ“jü]ïÿŽñ°ÿ»ßPõïÜÿ	ý³ ÿ§ßPõï|ÿwø¿X€ÿÓo¨úŸÔÿÙÿQ"EýÏÂÛ¬CÒE¡êß¹ÿã¿, ýï7äö¿kÿ'üß,Àÿé7äñ×û¿#ÿpú
-UÿÎ÷ÇøØÿÝo&¨ÿÝø?1þÇÂ1¯Ãÿ‰l¤ÜPõï|ÿw¬ÿdý¿¡é_¸÷"ÿ+Ôø;÷býðú
-UÿÎýŸÐ?˜ÿõªþû?ÑÿcþO¿¡êÚüŸýöŠúŸ…wUÛ5»Ü´Ý {¡êß¹ÿþÐþ÷rûßµÿþ0ÿã7äñ×þOø¿Y€ÿÓo¨úwîÿÄøðúÍõ¿ÿ'ÆÿX8Æ þO?¡êßµÿùŸx@ÿßoÆéÿcÑTÅZ×ôŸ)çÖÿéüŸÔúRbüŸ…X`ÀgÆé¿®Ì(?õöú×ÿ"ÿá÷)ôï1£ÛÿÊjÉÇFávë?t Æú,âßÕÛz]¯î­/ûø‹T ÿ;”øwwM‘-my£°Õð2Tÿ÷Çÿ¢4Áø?“ŒÛMv³ÜPôÿ¸ög›å³U±(—_=ǐþŸ˜ÿ¡Ðû÷ŠþóºÔü)öúWRaüŸì¸ç7dýný“ÚÿQý³ð*šýÇ;RÑs3AÿÐ l_ÿ'!æÿyPPœ×¼¸þ¶ÿXÿÛóÿÅ!ôÏ‚¸V×ñ5æ }ÅBÿd€}ý/¤‚ÿ‡ŒÿùMýW4›l½ÐÍÿºëÖÅèy`£p»ù_‰ó¿¼$þy½«š~{ìËÿ(Âú°âÂo,ôŸ7Y{·¨ê®°ÔÁ°þûùcä`Á&þûõ?„sØ×ÿB˜þ?ê÷XÇ¿þKºÏÿ
-ÿÔøO›ÿ;éçÿ–(ÿ9ˆÂy‚àþBÕ¿óüßÿgã~CÕ¿óüßèÿ±€üß~CÕÿ´ù¿{ãÿ"Áüªò¶„æ½…ªçù¿±þŸøÿý†ÜþwÿùY@þ/¿!ÿOšÿû²ÿ+Ìÿò àýõªþ§ÍÿÝ«ÿ‘ÿ›	‘@þ>3Aýï&ÿ7æÿX8ÆàU¬ÿ!ÿ7TýO›ÿ;îçÿ†ÿ›ãÿèü…¦ÿйÿÓäÿ‚ÿÓ=ÔøOëÿìïÿŒñ”„ûÓg¨úwíÿÐ?ðú
-UÿÎýŸð± ÿ§ßPõ?©ÿ³7þ£D‚úŸ…·Y‡¤‹C
 Õ¿sÿ'ÆY@ûßoÈí×þOø¿Y€ÿÓoÈãÿ“ú?{û¿¨ùX@þg¿¡êZÿg/ÿ{‚ýŸy€ãÊo&¨ÿø?1ÿÏÃ1¯Âÿ‰ýÙ¡êZÿçeÿ?–ë?Y@ÿßohúîó"ÿ+Ôø;÷býðú
-UÿÎýŸÐ?˜ÿõªþû?ÑÿcþO¿¡êÚüŸýö‚úŸ…wUÛ5»Ü´Ý {¡êß¹ÿþÐþ÷rûßµÿþ0ÿã7äñ×þOø¿Y€ÿÓo¨úwîÿÄøp\ùÍõ¿ÿ'ÆÿX8Æ þO?¡êß¹ÿþoÐÿ÷›Ñú/—ëÂÊõù£ðñþO©õ&!ò²`ÿ|×4EÕ-–Mù©hÆžc°üò"þ*Fþw²|[.LlQ
-x	Mÿ«ZË¿ª›ES8Çpû/¾Ð”(蟅MQí }§ÿmS´Z÷Äsë?ºlÿÅÿá!üû¿ùÌHý×m[½Ÿ ÿë?x€þýftûßnÉïvã?fü7•Âøñïêm½®W÷Ö‚}üEŠñ?(ñïîš"[.L‹ ¬VÃ?ÊPýߟÿÒþ.g`¿í‰¶3ý?®ýÞfùÇlU,ÊåWÏ1¤ÿ'üŸ1ôÏÖø
-EÿyÝjþ{ý+)áÿ`!„þ½†¬ÿÑ­Rû?Š ^E³ÿx'ÃVDÜLÐÿ\ f_ÿ'!üŸ< ýï7/®ÿ‡—ŽðÿõÖD)ôÏ‚¸V×ñ5æ }ÅBÿueR=ÎaWÿ›ù!öÿcõ¿ßØÔÿwE³ÉÖÝü¯»Îb5ˆQ¸Ýü¯ŠD„ù_^ÿ¼Þò„Ú÷ÿ¢þO0þë7úÏ›¬½[TuWXê`Xÿ—ëÿ¤Dþlâ¿_ÿM8‡}ý/BÓÿGýïëøï×ÿKçû¿$ðÿ±@ÿ´û¿$ýüÏXÿÇBÎì ã/Tý;ßÿãÿ,`üÏo¨úw¾ÿò?³€ý_ü†ªÿi÷éÿ‹û?°ð¡*oKhÞ[¨úw¾ÿæÿYÀŠ;¿!·ÿ]ïÿ‚ùÿÕoÈãÿ“îÿrÙÿUŒþ?â:Fà1TýO»ÿK¯þÇþ/Lˆò÷™	ê7û¿`þ…c^Åú_‰Ñn¨úŸvÿ—¸¿ÿüß,ÿDç/4ý‡îýŸ1üŸPã?­ÿó2ÿ³ðÿó $ÜŸ>CÕ¿;ÿ§<ø?¡àÿôªþû?áÿbþO¿¡êRÿgoÿ7%Ôÿ,¼Í:$]ôªþÝù?÷úW!æX@ûßoÈígþOyðbý7ðú
-
 yüRÿgoÿCÿ, þ÷ªþ§õ^¶ÿ“Dbý3èßk&¨ÿ'öʃÿã,cð*üŸØÿ‘ªþ§õ^öÿc)0ÿÇúÿ~CÓ¿ÝfðFáÖþOäewþÏCþŸëÿX€ÿÓo¨úwžÿúgã¿~CÕ¿sÿ'ÆX€ÿÓo¨úŸ6ÿg¿ýŸ þgá]ÕvÍ.7m7èÞC¨úwžÿþÐþ÷rûßuþOÌÿ°€ù¿!ÿ»öÂÿÅê¿¡êߝÿó!ÿ'ÆÿX€ÿÓo&¨ÿÝäÿÄøÇÀÿé'Tý»ó>äÿDþÐÿ÷›Ñú¬,Ÿg…Ûù?u‰ ÿ'ñïêm½®W÷Ö‚}üEjüÿˆ¿{(ñïîš"[.ÚòFÿ`«áe¨þï·ÿ#}õ?|mûwDˆÆ3ý?z·Yþ1[‹rùÕséÿ‰ñÿúçŠóŠþóºÔü)öúWRaþÌÿù
-Yÿ£[ÿ¤ö„ù^C³ÿñNŒ½H¹™ ÿ?h ²¯ÿ“ùŸxÀð¿ß¼¸þ¶ÿXÿÓ›ÿC蟅ðZ^GרÐW,ô_WÆêO8‡}ý/¤‚ÿ‡ôÿýƦþ¿+šM¶^èæÝuëbô<°Q¸Ýü¯ŠÌþ¿˜ÿuÏKâŸ×»j é·Ç¾ü¢ë¿XÀüßXè?o²önQÕ]a©ƒaý÷óÿÅØÿ›øïý¿„sØ×ÿB˜þ?ê÷XÇïÿ–Îó¦ðÿ±@ÿ´ù?“~þ¬ÿc!
-ç	2€úUÿ®óbþŒÿù
-UÿÎó¢ÿÇòú
-UÿÓæÿìÿ#ÿ'ªò¶„æ½…ªçù?±þŸdÜðrûßuþÏúç ù?ü†<þ?iþÏËþ¬0ÿËCxÀg¨úŸ6ÿg¯þOÖÿ³ `ý÷š	ê'ù?Ìÿ±pŒÁ«Xÿ+0É
-UÿÓæÿŒ{ù?±ÿÆÿÑùMÿ¡{ÿgÿ'Ôø;ßÿã?,`ÿw¿¡êßùþïÐ?èqù
-UÿÎýŸð± ÿ§ßPõ?©ÿ³7þ£D‚úŸ…·Y—AðþBÕ¿sÿ'ÆY@ûßoÈí×þOø¿Y€ÿÓoÈãÿ®÷Gþ ¿¡êßùþïÿcû¿ûÍõ¿›ýß1þÇÂ1¯Ãÿ‰l¤ÜPõï|ÿw¬ÿdý¿¡é_¸÷"ÿ+Ôø»ö&XÿÇüŸ~CÕ¿óüŸÐ?˜ÿõªþû?ÑÿcþO¿¡êÚüŸýöŠúŸ…wUÛ5»Ü´Ý {¡êß¹ÿþÐþ÷rûßµÿþ0ÿã7äñ×þOø¿Y€üý†ªçþOŒÿ± ÿ§ßLPÿ»Éÿ‰ñ?Ž1€ÿÓO¨úwîÿ„ÿ›ôÿýf´þíR~ža>Þÿ)µþu‰ ÿ'ñïêm½®W÷Ö‚}üEƈ?”øwwM‘-my£°Õð2TÿŸ·ÿåÞÿ“`þþFþ×î`6’Šþ½¿Û,ÿ˜­ŠE¹üê9†ô>þgôÇÐ?èqû
-EÿyÝjþ{ý+äbú÷²þG·þIí
-ôÏÁ«höïÄ1J#f&èÿ€ìëÿÄ,	€þ@ýï7/®ÿ‡í#Öÿ\Öÿq”Bÿ,„×ò:ºÆ€¾b£ÿ»¢Ùdë…®þë®[£çŒÄíæTdò¿cþÇ=/‰^嬨¢}û/Šb¬ÿ`í?¿±ÐÞdíÝ¢ª»ÂRÃú¿,ÿ¥Œ±ÿ6ñßûÿç°¯ÿEhÚÿ¨ÿÝcÿ‡ýßmÎa)øX ÆÚüÉeû_ÄXÿÃBÎd ôªþÝåÿ“‡ýŸ1þÇw~CÕ¿»üÿ¯Bÿäÿóªþ§Íÿ×ÿÇú_&>Tåm	Í{Uÿîòÿíõ¯B¬ÿeABù^Cnÿ;Ëÿ'ùÿôÏÖÿû
-yüÒü—ýÿXaþ—‡ð€ÏPõ?mþ¿^ýŸH¬ÿeAÀúë5Ôÿçÿ“‡ýŸ1ÿÇÂ1¯býŸÀl$7TýO›ÿ/¾Ô¿ð³`ü?¿Ðôo—Ð(ÜÚÿ©àÿä€wû??ø?1þÃ
 ööªþû?¡Ðãòªþû?áÿbþO¿¡êRÿgoüG‰õ?o³.ƒàý…ªçþOŒÿ²€ö¿ßÛÿŽýŸØÿ‰ø?ý†<þïlÿçƒÿ3BþÿËo¨úw·ÿóƒÿã,`ÿg¿™ þwãÿÄøÇ¼
-ÿ'öc‡ªwû??ø?±þ“ôÿý†¦áÞÿ‰ü¯,PãïÜÿ‰õ,Àÿé7Tý;÷Bÿ, Çå7Tý;÷¢ÿÇüŸ~CÕÿ´ù?ûíÿõ?襁kv¹i»A÷BÕ¿sÿ'ü, ýï7äö¿ëüŸð°€ù¿!ÿ»öÂÿÍüŸ~CÕ¿sÿ'ÆÿX€ÿÓo&¨ÿÝø?1þÇÂ1ðú	UÿÎýŸð³€þ¿ßŒÓ}{k†ùˆçÖÿåþßaŒüÿ<̾‘uÛcÆé¿Õ5ÿr±ÉÛúw]ë·Ù§²ZVðþ{ó‰Àø?ÿó›ÑíÿÔjÉÇFáã×(Sÿ‡‘Àú,âßÕÛz]¯î­/ûø‹Ôìÿ€ø»‡ÿî®)²å¢-oÖ£šCõÿùøŸÚûS´ÿY˜fÜn¢;3´F¸¡èÿqíÏ6Ë?f«bQ.¿zŽ!ýŸ·ÿþãúç}¿¡è?¯›AÍŸb¯%öÿcAAÿ^CÖÿèÖ?©ýaÿO^C³ÿñN†TôÜLÐÿ4 Û×ÿ‰Yý3Bq^óâúØþ?býïeýÇ!ôÏ‚¸V×ñ5J_±Ð]=@öõ¿æÿYÀøŸßØÔÿwE³ÉÖÝü¯»n]Œž6
-·›ÿU‘”˜ÿåà%ñÏë]5ÐôÛc_þGQ‚ý¿XÀŒ«ßXè?o²önQÕ]a©ƒaý_–ÿRbÿOlâ¿_ÿC8‡}ý/DˆüÏ,XÇ¿þK:Ìÿ}Ð
-ÿÔøO›ÿ;¹lÿ‹ù¿XˆÂy‚àþBÕ¿»üßjŸÿó<`üÏo¨úw—ÿûàÿÐÿcù¿ý†ªÿió÷ÆÿEŠù?>Tåm	Í{Uÿîòïõ¯ èŸ	å{
-¹ýï,ÿ÷Þÿ+±ÿÈÿå7äñÿIó_öÿc…ù_¼¿^CÕÿ´ù¿{õ¢°þŸ‘@þ>3Aý?qþï}ý/Ìÿ±pŒÁ«Xÿ;ÃnÜPõ?mþïøRÿRÂÿÍ‚ñÿ@tþBÓèÞÿ©àÿä€ÿiýŸ—ã?J`ü‡%áþôªþû?¡àÿôªþû?áÿbþO¿¡êRÿgoüG‰õ?o³I=†ªçþOŒÿ²€ö¿ßÛÿŽýŸþoàÿôòøÿ¤þÏÞþ/*Fþàþôªþ§õöò¿'
-ã,Àqå7ÔÿnüŸÿcáƒ×áÿD6Rn¨úŸÖÿyÙÿ¥ÄúOÐÿ÷šþ…{ÿ'ò¿²@¿sÿ'Öÿ± ÿ§ßPõïÜÿ	ý³€ù_¿¡êß¹ÿý?àÿôªþ§ÍÿÙoÿ§¨ÿYxWµ]³ËMÛ
-º÷ªþû?áÿ`í¿!·ÿ]çÿ„ÿƒÌÿø
-yüßµÿþoàÿôªþû?1þÇüŸ~3AýïÆÿ‰ñ?Ž1€ÿÓO¨úwîÿ„ÿ›ôÿýfXÿU½,¬ìž=ŒÂ­üŸ"UÆÿ
-ÿ§{FÆ¿®Ì0/ñöåÃÿÏZ\~3RÿævIŸO°.ÿe¨d‚òŸ«øënÀà`ÿ—ÿ—þ‘JÌÿ³~ Ÿ±Ò¿îôgZ.¶ÀþEt™ÿQŠùßX0!]Ü•] ÓP¦2É«ýC›²mƒðpÿ¶nŠrUé?˪+šu‘}*ö¯i"“«umց˜+ääMêî®h¢‰ùбÒÿ¦Ø”Õmm{Žý‹¤×þiÿWßK4ø¥ØüVwÙúMp@$ijšáÁÇŸNžòsSÇg"Žæ35›?åC[,Ÿ™*ú“§ü˜wå§/o¢Q*M“ðä)ïªìòIó$'½wùSVÕÕŸž&ÄììDÇw9{R„ýw¹-×ÅÔŒç"yê]¾<éò³|¨Œ`:³vâËo“ÎN?Ë/ºŒüxú»˜§ÌÂÓ§¼-›îþì	ú)a|€ÿiÊ®¸ÉòçO;ýF?ëOùlU´O‰d$ÅY³íö⣩<‹ôú;ýëÎÏbdÿf¾òésäÙÅð÷Ÿß/>TíùsþqªwU^\|ëó§<~éß6ÛgÞåý:»9(Vç?Ýû_‹|•›/ŸÅü*ga|ÿ¡jOz|/¥‹«Ó§üm·:üº‹­„ý£'2yâèû]³}<ú­õoUþ·yV-v_.÷ÅÖ|¡Ás÷ÿ.ýQŠýßxøöW ø–XéYj±èÛòöãÿºåý_Y( ¼ÆvüwÐìõCúïû¿DŒõ<cð*ü_··(Œ˜©ÿmݶåp¦‡§±¯ÿuÇíPýûÍHýße­ñzÓÎa¯ÿ0Áú/ ¿±ÐU7›l½Ø›ºyn©×“Øë_š§Aÿ@ÿ~ó„þóuÖ¶/s|ŸcnçÿŽb¥àÿãàÙø/7åT×€}üc"ÿ3_¹œä°‹d⟆XÿÁÂPüsÝòkËv¡¿}™MøuÁpûï"þºÿÂÿËÂPüoʺ]|*ªeݐÏ1q9ÿ¯Áøo‹õ:x
 Wå? à%#õß´Ï%wÁpùŸô×ÿ ÿÏ‚üAý€þ2¨ÿ:k–‹*ÛPÿ~7FÿéEû?MôÏBø÷_åL¢ ð•qúY`XÿÑeÿ/Š‘ÿ……CÌ øÌþ·M½ÜåÝb·+—Ôs؍ÿÚÿóÿ,Œêÿ-³îÍ¿ã?ê2ÿOaü…0ú‹œÿE†!zÉØñÿ—´ ‡ËqÑþ¡Àø/P½ßŒmÿñéÿàÿVhÿ± ýûÍØú_ÿ¿è]¶"œƒPÿ«ã?,@ÿ~3nü÷%î’ÿGF˜ÿaa(þ›z™­ËìEß|(þ"½ôÿ¥‘Àþ,è0¿¹ùTqéûÍÞðæfùehèM{òŒmõú÷¢ù÷媐ó8|³ýÔ¼iNŽ7ÕaNQ?Øü†oò“cy'•~ yƒjç•0¶ÿÇçÿ<¬ÿÃú†â¿+>•uÆßs†â//ûÿ"Øÿƒ‡_þßÛÿëݏïÿ*/[þ¿Ä6<ÿ—öæCìÿÀ£„£a¨Ñ7ÆŽÿu÷[wú?[ÿüèÿ± 4ï3ãÆÿ^2úOÿSääê÷›ñþúÐáö¿ì­ÿ•˜ÿgë?ýfìú—, 'è_&èÿ³ ýûÍàøŸza#q»ü/úNŒü/Œ‹ÿïÙÇbgŸøûBÿOFÿažßé_?ðÒô?”ü?&% ôÏ Ú      øÃÿ¬Ý“  @ 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s2ca2c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,38 +0,0 @@
-Machine (phys=0 local=16468292KB total=16468292KB Dell Inc. 0NR282)
-  Socket #0 (phys=0)
-    L2Cache #0 (4096KB)
-      L1Cache #0 (32KB)
-        Core #0 (phys=0)
-          PU #0 (phys=0)
-      L1Cache #1 (32KB)
-        Core #1 (phys=1)
-          PU #1 (phys=4)
-    L2Cache #1 (4096KB)
-      L1Cache #2 (32KB)
-        Core #2 (phys=2)
-          PU #2 (phys=2)
-      L1Cache #3 (32KB)
-        Core #3 (phys=3)
-          PU #3 (phys=6)
-  Socket #1 (phys=1)
-    L2Cache #2 (4096KB)
-      L1Cache #4 (32KB)
-        Core #4 (phys=0)
-          PU #4 (phys=1)
-      L1Cache #5 (32KB)
-        Core #5 (phys=1)
-          PU #5 (phys=5)
-    L2Cache #3 (4096KB)
-      L1Cache #6 (32KB)
-        Core #6 (phys=2)
-          PU #6 (phys=3)
-      L1Cache #7 (32KB)
-        Core #7 (phys=3)
-          PU #7 (phys=7)
-depth 0:	1 Machine (type #1)
- depth 1:	2 Sockets (type #3)
-  depth 2:	4 Caches (type #4)
-   depth 3:	8 Caches (type #4)
-    depth 4:	8 Cores (type #5)
-     depth 5:	8 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,34 @@
+Machine (phys=0 local=16468292KB total=16468292KB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag=)
+  Socket #0 (phys=0)
+    L1Cache #0 (32KB line=64)
+      Core #0 (phys=0)
+        PU #0 (phys=0)
+    L2Cache #0 (4096KB line=64)
+      Core #1 (phys=2)
+        PU #1 (phys=2)
+      L1Cache #1 (32KB line=64)
+        Core #2 (phys=3)
+          PU #2 (phys=6)
+    L1Cache #2 (32KB line=64)
+      Core #3 (phys=1)
+        PU #3 (phys=4)
+  Socket #1 (phys=1)
+    L2Cache #1 (4096KB line=64)
+      Core #4 (phys=0)
+        PU #4 (phys=1)
+      Core #5 (phys=1)
+        PU #5 (phys=5)
+    L2Cache #2 (4096KB line=64)
+      L1Cache #3 (32KB line=64)
+        Core #6 (phys=2)
+          PU #6 (phys=3)
+      L1Cache #4 (32KB line=64)
+        Core #7 (phys=3)
+          PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 Sockets (type #3)
+  depth 2:	3 Caches (type #4)
+   depth 3:	5 Caches (type #4)
+    depth 4:	8 Cores (type #5)
+     depth 5:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,53 @@
+BZh91AY&SYÅP“ ];ÿçÿ÷Ör÷ÿÿöïßÀÿïßô  @  !;ø`7Ÿ``‘ìë´9
+|çwŽŸw¶«uãÇM·c®æ®Ø
+u×U»œ÷          ‰ŠxÒ˜š Ðh6‘ˆÈj3H  @Ð=A©²i¨¢(OSÔ24£A  Â4d
+2
+€õÿÕU¡  h  š h       j at HL¤Í"d   
+=@      J™SóU=ªmGê§”h
+
+¡‘¡ ?T ò€A£F4 
+’"`44SM!‰6˜¦G¤Ð 2 4 b@3SG¤þàûÁý÷Qý4*JO¶>è`‡Üü¹¤„}ÀÜŸåQ•D}A¨ÚÀX£èl×ÕzÒ zý—W×Ö=¢aXyBûcÀKm‡A)žþHB|H**¤X,E"ÁdP‰$<éÙ¢H@’R*#
+ƒƒ† >mÎnq5©çê:úµb—R–Pàµ
+xm]xmb17nÁ‡,¤ðÊK&]Ba·XÌTìw“!()™x­ŠÃ"ÀãblÝ˼»‰%“$¹PÂI€á„“
+Æí`¶Ã…UËÄÞf®ÒeeÕeUºuY.Ò¥eLx
+™[™…d±{o1á½Õ•C1•f®Åêɬ⬚Æ+8Ʊ°€h’- BAR	:G4R¬U¤
+ŠÊª¢–Š¢®²Õ%’’‘"$P‘E‘Œ‹"¢H²"H‰"$‹"Ȳ"H‰"$žBÜ4—¨Q–ÒÉ–÷-2\¤¡	kT¶ë†¦	’¤Õ÷`…X4¨âšSÚ–Š3fKÉ@X’¡Ì*±——Uc/%\‘QV*$˜*­aÝnøÍíyhÜ’ñµY$"¶‹¬‘I!HFKDT@PDU I#H‘#"€!@Tˆ¥BK;“¸Tü¤æ<ˆÜŸ=Qãeª‹f.‹Õé«d%ï€Ã-oA¸z†íØØ`.=@À5oí›çÎ÷¦ý%7a7I¤áRqõz¤9€FP×”;y3äiªªi®½¾¼Y×"ª¯¡ÓXBjÓèøau`°X,kùBvE ÁìGU
+@‘³”*‚²-'n…R¨Z#u’´Šg%_[(¦sEñjCԝá/¤”¤áRG ü#†¢ãö°ª…û;ZIw  î *€Þ9¾ls{™7ÐÜØj/å&ºÞÕUU^Ám³×rÛ!ÉÌ’		è’BOï$ëvƒtyyni
+z­ßxû<+Ë—k·<)I$˜)%ª	ÛIãHƝµTeÅ“xå´Q€î¾ˆ®š¥•^6Ž9Ö+]UÕ“²Ã½váf¬½°/º€R–Ä6îÔaeqY!åB5HW±Ö†Ž_dWlI0™ñÎò*ƒH¶ÙoØcº)¤õ„LGxî󌇸? Ðoâ‡pûãïŽàø†c°XoŽCϏ@=µîRðR@Úv¬šFŠt•š&î®í*pôzÆñÐoƒAÞ>ä1
+‡áE‡°PíÆC¨¸Ô\xŽÁÀXPÜG€Þ;‡€ž©Ä`2l00-#_Ÿ$‰'ì8”ô:—{²ìIôÌïB#
+ÃtÊG ÄqmªÖµ­kDCæ4';1»jûv÷wvr6Ù¢ïJ g–ZS^š “‚            wwwwym¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶Ûm¶æa¢I$’kzt°ÃU­kZÖµ­]è9À‡DH9å2ˇóÏ$’\ÀPh’F3ÁáâBWNÝBjK™UUÉ5Uׯ^½xßqMUUUUSØc ö
+
+YÒª®‰UT44ÕU5Jª´N¹I!Çwwwwvµ­kZ×p½ï{Þ÷$’I$’I$’I$’I$’I­kZÖµ‚f‡/
+YUVäô`ïh¼šÒf­|,Å›Ysɽ°6µ@ƒ•‚Þ†Ð,,S0ŠªeÎÏ'fÛ%M%LË®eR ØÑ`HI žæ2ž×T’¿¡æt4z\ë*m–úø×h÷£ÕØ%‘eªÑJET’ФrÎW´¹5ÁTÁ‰‰0ŠªnEA20vmc_çYgPíÉ)%$—TM'ÅÅÏìùÔD¸@;0ÎÁ×ë•ˬºÞ1Ì-,…¥k’²Y!k,/×s½@!¬¶Þ-£ÀÌTl/­·¸‰_ˆäïÆ‹x{^WËë[]Ž;RÔ-KãàpíÒ›Ç@¤D@‚/ÂB1}ŽP·Á4|?N|82e“6UC ãZÅÊ`Iï’
+$Æ&ïžúÈÝB”PWÅ`Å”cFZåX½
+Píò‚•Âj¹¤¹ªç:±ÛZÖ‰Ð0ašr;€æåîóW¹½MÁqh
+¡qÝ!°4(!Óí‡J\&r¸Aštô(ºlÙ»¬¦¼}’ÆãÌHàÀÆ”(„Ä6!°C@ÄMgŒg‘Úé+±Äù¹CwàËÙ¹!*½ÔÚ!Y„ñ‚2ƒ
+Ö·`Ñm“EúåˆÄ Ep+Q7|ãY5UO>ýÃŽ|BmÄüùb¯Àl€Á™5ay;§JÙ¨W=bÙ´å™ß¥ÐÙFJ¥iL®:õÊê_	±$«š[ÜùCÀ2Pð%õ^ëØúôÙ陞âìRt4W¬_TÝI!ç’É jŒöy÷Àê=ìÞ‹óÎùÍÎNcŸDLP`º† o‹&	²U	P¢k´âƒÊ»=’¼ºÙÏìîV8iä¶¾|[³kÒS^m­³Yh®‡8\³vÚ)ˆ¨1‚9ñø8´ÉáÖ€¾mkR
+¨
+sG”¬óÀ8ç¾;um¾u²jÔ k'N»2òÍQ  IU at h’ ±l=næÞó¨n†ÔPjK˜½@H1ÅÝË×Vm*ãmû
+À-ÃÓ@ŒµjvÅï
+t‰ÅîZ°˜ÕcøÛ@õª«ØØnàiUkëãXmÓ˜ó5zLÒFþ\½|F
+ãPµAú»7(½ˆgÏ⫌Û8͏3Ì«ªr}!"ØrFƒ¿TmS…+ÜqìÇ–û×%g[ìu|:…N\õ+;¼Kk¯ CV¾èê߇hvf÷Øö(ÄNÊ&f²·	D#Xo+/y$ˆc!Ñ/‚бd–“Jͤ@ìHo{øøäÙ;µf¬YÌ45x
+ku»NxN: 	3¼®ûsÜœÕCÑ’ðñ¯~äãn‹‰bê_à’/ €t-]±•îðسNUÇw8qžX`fZËUOHfäbA/³i~1SgZ¤Á‚ת5}Û:³ŒRHô6I„“]8.í,îÂãŠ[Œ©MUí˳–î3›ÞNö4‹Îܶj+!Ÿw-Ûû7jl2<'—M\’8ç›yø…]œÑim¾¶aœ70z±~X”–V)j®WÔ¿\•^ëUbîmJïð=.¬…{„
+‚MÝiš¸½	-ÐêÌÁf(³“fêæfñk„ITê³x+– Áïè[¸®Zæpš[½Ìv
+¥/j©¢Öµ²åÍü@xƒ™dðMë¡¶köï¿,xl8Á\wÙkÜh’3ËFìó´Ê˜ Á*š¢¢g7–¾lr«kqÏŒªô!,kÞ-Cº3³Z©ó’B,׏mguWé½!~yԐ8ƒ !L‰‚×Þ¸ÍäèdVœ•xSQ!U+£±2“UÏMpc5ª,’1Ók±bH–YCndVh BÕ]<ëÕ÷'$5m絸€qoîAä눕ªÌÜæÒ7p©Dˆ•~—±$^BLøa$¹–s7Z-Ê¡)lï;±ÆÐ„SrøùÝ›
+ùë£'­¹£
+5«	IÝZwÀT
+·j‹w–¥®¶—ó"dÓ)’«¡FèjÅàVËlŠÁqÐË·²?VÏq~ßäÍ¿Þ;œì¨[rÕDåWü´/¾ïºÌBóÿ µÞ7UHC½÷×o"ÒÑ*ª³$»y–‰U\´ê¥¡owޱ!™Ã—'.ÜâÒÑ*ª•]Vq{9u˜…ç–¶n«–7|ã»y–‰UTªê³ˆ[Ýã¬HfpåÉË·8´´Jªå§U-{¼u‰ι9vç–‰UTºôKˆ®ò;ïØßsÝ÷{¾öü5t<M{îêE—e÷y±dqMW¿ÒUë­ÞU`ÔØé|¤î.çœô¾©ñ³€ç8?ŽÛŠPnœ|eYn “™ÆAò'w8‘º´>c¢QÅ6ÅâF-à7Pj~ÖRAh/È	M9 Eße§Ë¾`]º¿hqš|¬ƒw¶ßÔa
+UUOp~!òßUQí
+cÖ.=ÔóE‡ð{׸Ývwª½K+×,‰¿ñŒ/¯UI•ŸÎÓÖïâÓFûDƯ9Dã{“ýeº…‰i[jm‰â¥a¼Zÿˆ,‹®~Èÿ~Bø^ƒØ>´ h4
+VšßL2ÿaAp¸ÚfÖVËPÀXd(P˜³
+¼ílijµ|ôŒ#PíŸ`ѐ]Œh‘‘=oŒîG–IÌ<GpÜ6y½C!…Ñ\Èü~sÈPæ%J…‡ ¸¼Ùb÷½…Aî6Ã ¡v)!,vƒ°9Y퐜׊
+ú2tÐ:Áê˘{L¶ÐbÚHGڝ ÕP”#ŽÜ5¸jo‡È’äNù8C˜Ðl$ŠÃ,…?ˆa$ˆc£(ä‰<¹-8˜Âq
+âÂáBâÂXPÝPõâ&!T‚¨J¡*’ET‚¨J¤‘T’.$ÍÍ£ÐÚT{ÍJR™æÈØ9†p“I"†¢¤bÿõC² SxSwQˆÀ’â¤ä‘
+‚GÚ™÷”'üôÜMhËQ5>Põ‡	EE'¹¤˜)卭ëÜë"Z¿bã ¸à,`õCÀjLcH¥‚E5
+õ,ªdoqÊ	†ÃBÁAAðùÆìS ñO“zÌ™ä)7‡1CaCÏ%’D>ºHG»ÇY↤Á$#±ùÃæÒB7F[ñ§¿ŸZÁÐi2¸våtŒB?2æ¸1¼|BeÂIÄnž*“uP£szHEü„÷¼d‘’‚G¶9ûa  Ô_âÏDø|nÞÇ	¿°¡Cç0‡N`‡‹X–Iá$‹
+aœŠâN‚vŠî¬	:àÖ’Ípq!
+Ú%t›‡nðâˆÄPI$BÁS`齺•J¥%E%ÅÇ9"֝éÁ=Ý…Ïwì9|›’B6	Eu«Û åBx£@ì*'Y˜÷Y
+cA†p-軩°Ô(jj
+!'ÃÕŸ„$´NÎÞ¡R„¡È °°è,.’â‚Ô‰õ1œIÍž‡!jº^¹Ò!kbHG!µyƒ1FB…MœñËÞzÄ›1¸q†ô‘
+IøÐb´q–tƒÿ§!È1UX9£wîcÚ5TLÅÝí=K¶õáqŸpú«‡! Ð5I¨<hŽÖ"Ï7-ƒôÒÛar_¹ˆl(”„ÖÉ!‘†Atï¸ØcPà-½Û!±õ[ðâ64cAčÃzðîë\ Øoïž‘cÔT=°´³ˆëÝò"QÐmdŽôF‚O ð`=×l
+GhÞ–C1õ‰=Áaa– éBÙë7®‰C¿°>ó1É$#AÇxÕZWœ¯ˆf.Ù¢ÒãÀyе„ø`¡¢âСÔNPÌMÂÃäb=›™
+g›QàF>ÕBÇ€Ð7
+¼EBP !B’Fõ÷“d¬.<‡Ø,.÷LEAUˆÐgÜ'¾nLAô£{˜¸ÛÈc#æ-l(;ëºBÉ!‹ ¥ä"8afipõª2â’qp¡°°µ¸{Å‚…ÛË…E„´HEÒD?E$"¢iRqïì8ñlî˜ÞÖ çÀ0.#˜ ¡ô;Æs±$#t°X8Á‚Áæ(5ØaC0Ò†z®9`1BX7ÝÍQ`Xy­CŠHF:ðIâ1­âōE$ˆo#;Yj¸pÜ>šHGVc5–SšÂÌ¢›•Ñ¢^#޹	šHFáâ+€4ǝˆßDà°4d;ÇÎ9‡1â(r‹sCˆrÀ.âs‡„Ìo7Fïó,¤f)Rª
+{ô¸ìÞ“™$#è‡åI××´Û	‰è-†ì¡!QˆPx7´r]wEÚŽ¼å’px‡pâ’&¢(Pú» ßÚ=‚K²D´„l¢)$CÄ;¡'Å$„OÿrE8PÅP“
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,39 +0,0 @@
-‹ 9ÑÁJ í_sÛF–Åó:úxÌT)t7 ]µUëÄ“‰kÆÙTïì!	e` lͧßnR”I‚	ðöµ’>?TŠ 	’ýïôíQ>£ö;ÙDÙw·y›×ÕM^æÕ²ùÛ7d„†Dkû‘èpõ·ˆ¢ÕÿøF&I¨âÄ</´yüM é>ÂÓ,›6­ƒà›«›êfV”Ï—×
-Çâeôdüu•Ñ\ý㇑Dü98ÿl±,Êëê¼sØ Çëxˆ¿PRîÇ?‰düMÒ|Åçñ<þ6ÊyÓTõ_^áÅ]^N«zRLÍ_ÿÈKûümÙæ³s×鼘ݛ=ñÅ¼šæ³¿˜‡B¯e:ÏÍß«£¿ýí¯ÁÿåUiÿÿ㯂/ü]«HÁò{¥þñó.š6_,ŠòƼ4YäÝÏÿ±ï+•L¾×J]div›MñûîQ8Žƒþp±¸½oŠ,«^4Å•	ÝMc¹Èª:·;V{ì[Ú'Ö»ÒE‘möeÑæ-ž³O]/–vß}ÞØ‡“üs–/Ú¢*ž³Z˜³üÎ|uóÍËO‹ÇÃg©9»ùü.¸›çÁ4M´MÌ›:X¤y0Ïò û<Z0hòE0ok³çÆîIƒl^Ý™ÃZû2Ùìz¶lnƒiÛi¶(‚ùüspýÙ¼UcÞÖü'Í?Ám´ó`qež¹oÌïaÂð9˜ÍÍ7.ÍU]¶{þ´În'‹¼¾žWe°È¯šàʼi/&7U5
-eaÎ’7q˜жªƒi3É3ó=>ycOaOf>–ùø">·ó±§Ù<˜šÏ=Ko¯'æ”æÉIs›N«OWÕM5/«Ÿ<Öúû0¾Ø|‡8ÆÑ:®“tVÜ”ó¼l×O¦Ó©	U³:̾ÜüW…ù°›x_ÑhýÌ]Q·Ëtv±¨>åu0OËô&·ïóêâbûŠÌ+Z¸¢£îáŠvtE'_튖Ì+úé{´|òŠ–Ý+ZâŠvtE«¯vE«?æýô=úé+:î^Ñ1®è?Ý=:úc^ÑOߣœW´è^ÑW´£+:újW´þc^ÑOߣŸ¾¢u÷ŠÖ¸¢ÿt÷èøyE?}VO^Ѫ{E+\Ѻ{tòǼ¢Ÿ¾G?}E'Ý+:ÁíèŠÖ¬W4¸ßÿ™çs×ã?¡´ƒ}ûã?Bcü‡ƒwùü÷ªMg¯îñ"Žâ‘ËàãfßOužov™â"¤Ù}?,¯¯ÍòêKé ¤2´û~´w‡éÖ.s»UB­Þóý§tÑݬ^÷:k‹»|ûy¥®
 ö½-Óý½ãxln1¯û6-«ò¯û…P‰Ü~ÝÎޝó}{]Ìò‡=Jêñúû=¾îËÞÇó}(ó»"kÓ«ÙÖo“Œ¢Õo6«²{_NŒÂhóÝw~ìd$´…›};?öÖ¾7ævy¿óŽö®¿ß¿ë¢Í¯Òìãîþõ÷3_ùWskÝŠ’ïù.],ö>f½ú~ïgéÕîžH+­~—÷¿åÙ,-æ_¾|$E,×ßïCY¯÷>¾Z‰ñzŸý¿Ûm˜ñhõž¿üô~òÁ–yÛ?èÃwø¡Z–Y¾÷åö=~÷ßç‹ý×ýXÍçEû¯Âü³Úe-ãdýYÖûÚ|:yý~s½Äæe÷ýïÜÄUö&)=NÔÈܘ¶vh;s=|Ň}?Þ.ˏ/U±
-õØîþyy“¯¢1Ù¹­;ÀöŽßš»éÁï—õboÇÂî0Eðæis{=\EyÖš¸G_®¥ÖJÜ'ß=üZI<×_ëkß¡€KŽ”ÿF”íÙçx¾ü7…F¢öý?‰ÙòŸÛÄ
-„ÔáHÈ`lÛwÊ”QhÚpæn9Ž"%’8™òFŒÆÉØÜ_W£Ða ¢86÷6­Æ¦à#Èq´}‰ŽGæuæ]"•l^ ÌÆ‘N‚8V2'\¿`¬“ÈŸql
-§‘yAôxsBªÑ8HÌYUhϵzA¬C[O1g0w(©Ì©^ ìÌMמzu†‡Ø2Ý|vŒÍ	”V›ãÍyMÇü-FZšÖÉX®?’6êá¡ýH"Ú¼Â>-mq.´©ÏDÉ8Ší+L=żÔ"æö·‹_Û7Jbû
-³7J̵zÅH˜YhiÙ@Ú×Ãó1’ö³V/Pzõ‚È|óa?”yF‰õ×.ʶ"S_6¥·yÃÐüö­D¸úŸÝÄÃÿíGJôÃëÍœ=dÞLÍLÉûiûoz<R꫊s7siÆæÚ²U´‘¹½~õσ
-6lذaÆ
-6lذaÆ
-6lذaÆ
-6lذa;c»ÈÚÏm uKÇWm1Ï­FÉ‘ÃÍT’¼±n q¢Õê™fR/˲(oñð÷ÕÚàjÞðk[— Oûÿš{ªpýò)›ÿ-òqð|ü§Ö螟{ô‹¿´ó?”Òˆ?§Åß<nóùÐË ·þeÇÈÿÇB¯øg‹åk üE¤âÏAïø[KsÏ‹ ü¥²ù÷‹[-ªYusÚ…Ð?þ‘qÿgáÌø··užN'›)ü‡Ïqdþo¸›ÿÕÆ?‘qˆù?lbpùDèTàæLýor;Liö1½É'Å´{Žcú7w€]ý+s<ôÏç7gêßfç9¨ùmzë_j-ôρ‚þ½†BÿÏ×þ‡Ôÿã$‚þYx	ÕþÇZãnÄmû2+šn¾Þå¿
-•€þYˆ¡8¯¡,ÿ«ÿý‹Nÿ_’@ÿ,„—ò2ºÄ]ÀW†é¿*TòSÏÑ»ü—JKäÿdA@ù^3°ü¿Íëy:›˜êÕ¶³üùq`«ð~ã¿:	±þ+DñϪeùd¢Èþ÷ÿ8Ñ÷0þã7ÃôŸÕis;)«6?EÇõßñÿè(þ9›Áýd`ÿò_©þOΉQNóÏòøeÐ?þ‘†ÿ›‚øÛdóÏžãøý?Þ¯ÿGZáþρ]”韨zþ=€¶Op²Hë¶°ën}9Gÿñ?aüôÿù
-þ׋ÁM‹Æ®ßsèGõ/£Žÿ_¢ýÇÂOyÚ.ë<0mù /m§¸#xþÛûÅ™õÿÎø¿©ÿcü…eq]@óÞB ÿÕšºÏ£ÿøŽC¬ÿÅ‚„ò½†¢þ_Ýæu^f÷ë€nwàqý«}ÿ¯1ôÏAáà3ýÿ·iO'fÇàãúï´ÿcŒÿò áýõýJï›Iu=I›¦ÊŠ´-îŠö~ûýËûôρ€ü½†¶üŸ§‹ç8¦ÿùVùß ÷lbð"æÿFhŒpC ÿr9¿Êk[hòöDŽ—ÿz_ÿZÀÿÍ‚õÿ@tþr¶þCGþÏþOâOàÿÜïÿÑúxPîOŸ!пÿgý³ ÿ§ßèߍÿþ/àÿôýŸïÿìôÿèH£ügáMÚ¦¼¿èߍÿý¿, þï7õ'þOø¿Y€ÿÓo(úÿÏ÷î—ÿI!ÿüõýø?;ýÿB ÿ…ôï5´å?ÿãÿ<lbð2üŸÈFÊ
-þ	üŸªãÿ1ÿ“´ÿýælýGþOäe þNüŸóÿX€ÿÓoôï&ÿ'ôÏÆý†@ÿnüŸhÿ± ÿ§ßèŸ ÿg·þ£ügámÙ´õ2³6èÞCôïÆÿ	ÿ¨ÿû
-Eý߉ÿþ0þã7ýÿNüŸð³ ÿ§ßèߍÿý,Àÿé7´å?aþOôÿ±°‰üŸ~B 7þOø¿Y@ûßo†èÿ„%ßw°
-ïçÿ”Jbýw†Å¿­Õ¬º¹?íBèÿH$1âÏÁ™ñooë<NšâÊüv7Oü>ÇÊÿõ©ÑÿÇ%ÿ¹¨Œps¦þ½¿‹4û˜Þä“bÚ=Ç1ýwûÿÂúç-n¿9SÿYUÖü6½õ/5Æÿ™Àú¿~C¡ÿçkÿCêÿæ_蟅Qíß<Ðw#fhÛÿ‡
-@½Ëe€Ð?(ÿý†²üÂþwÂüŸNÿ_Cÿ,„—ò2ÂàÞ2LÿUi­þ§ž£wù/•–Xÿ—Ìÿñ›åÿm^ÏÓÙÄTÿ«¶åϏ[…÷ÿÕ‰ÿ‡ñ_÷Å?«–塪ߊþ÷ÿ8‰àÿfã?~3LÿY6·“²jóS$q\ÿÝüÈÿÏÃÀø¯ü¿§žãÄò?•6J[ÿWå?çÄåÿ>ÁÚ¿þi
-ÿñ'Èÿcý÷¯DŽcd õý»Yÿýÿ, ÿÏoôï&ÿ'Ú, ÿ§ßèŸ ÿg§ÿ?ÒÿcáCY\м·èßMþOäÿ`þ?¿¡¨ÿ;Éÿ)¡ÿÃo(úÿÏÏÿÙiÿcýw&$¼¿^C ‚üŸûå¿óÿY¿×Жÿ„ë¿cü…M^ÄüߍnôOÿScý÷¯„õÿ@tþ2Dÿš#ÿ§†ÿ“ƒañwžÿS†ñçàÌø»Ëÿ	ÿ/ü•ügHÌFãæLý»Ëÿ	ý³ ÿ¯ßœ©gù?%ü?,@ÿ~C¡ù?#蟅—Pí|¦¸1CÛþ§Ëÿ) q×o(ËÊüŸ	ôÏ‚¸T—ú2Á]ÀS†éŸ!ÿ'ü, ýï7Ë÷ù?‘ÿ‰¢ø“çÿÄüo0âê7ÃôϐÿþOÆßYþOs¬ó†(ÿ98'þ.óÆðÿ±@'ù?5æÿ³€üŸ~C 'ù?1þÇúÿü†@ÿnò¢ýÇòú
-þÝäÿÄøÈÿé7úw“ÿù¿X@þO¿¡¨ÿ;Éÿ‰ü?, ÿ§ßPôÿ;Éÿ‰ö?â3 |†@ÿnòbþ?Èÿé7´å?]þOñ?61xó%z#¸!п“üŸþoÿÓozëÿc^—ùÌ”ôŸO>Çqýo·ÿåjþÖÿáÁÜh!é­ÿ~SWô׿Œ1ÿ‹‡ð;Ìý÷™!õÅ‘ÿ[aþÃâï<ÿ·HÄŸƒ3ãï.ÿ7ÆÿY é·#{0B]„™3õï.ÿ7ôÏZÿ~s¦þåÿðÿ°€7¿¡Ð¿‹üß
-úgáETû‘ÿû«AÛþ§Ëÿõ?yPPœ×P–ÿ”ù¿cèŸäÿö›aúgÈÿ
-ÿèÿó›å¿ûü߯9 Š?yþïó¿X@þo¿¦†üßÈÿÄÂÀø»Èÿ½]ÿW1Öÿ`áœø»Ìÿ­áÿc þnòcþ/Èÿí7úw’ÿã< ÿÏoôï&ÿ7Ú, ÿ·ßèßMþoŒÿ±€üß~C 7ù¿1ÿŸøÿý†¢þï$ÿ7òÿ³€üß~CÑÿï$ÿ7Úÿ,(x½†@ÿnòcþ?Èÿí7´å?]þo¬ÿÁÃ&/bþïù¸!п“üß!üß, ÿ·ßœ­ÿБÿSÃÿÉAü	üŸûý?:BÿJÂýé3úwãÿ„þY€ÿÓoôïÆÿ	ÿðú
-þÏ÷vút¤Qþ³ð&m‘tÑcôïÂÿ©ôÿ²€ú¿ßPÔÿø?áÿfþO¿¡èÿ?ßÿ¹_þ'q„ü, ÿ³ßèŸÀÿÙéÿXÿ™8®ü†¶ü'ô¢ÿ…M^„ÿë?²C ÿ§êú?1ÿ“´ÿýælýGþOäe þnüŸ˜ÿÇüŸ~C 7þO蟌ÿú
-þÝø?ÑþcþO¿!Ð?AþÏný_£ügámÙ´õ2³6èÞCôï&ÿ'ü, þï7õ'þOø?XÀøßPôÿ;ñÂÿÍüŸ~C 7þOôÿ± Ç•ßЖÿ„þOôÿ±°‰üŸ~B 7þOø¿Y@ûßo†è¿˜Îòã®Ï/X…Ÿîÿ”FÿÊÿ'ƒãŸ-ë:/ÛÉ´.îòúÙs½ÿ¹ÿ8DþwÒlQLl at QxÉÙú¿©Œü˪žÔÕSç8^ÿÓ{úO„€þY˜çåÒ÷—Þú_ÔyctßçÇõuêèÿá!üë¿ùLýWMS<aô~‚ú—˜ÿÁôï7Cêÿ'LùÝ¡_ÿíÿ57 þ†Å¿­Õ¬º¹?íBèÿH ÿ‡3ãßÞÖy:ØAQÞ<ñû+ÿŒÿJ
-ÿû#°_÷D]„™3õÿ8÷{‘fÓ›|RL»ç8¦ÿ®ÿ+¡0ÿÃoÎÔVÕ‡5¿MoýK­ü,„п×PèÿùÚÿú¿ùúgáETû7R,EÄ
-mûÿð°Þå¿2ôÏêÿ~CYþ?1ýóÿ_§ÿ/‰¡Ä¥ºÔ—ô•aú¯J›êáÔsô+ÿWãÿZ`ý?PþûÍÀòÿ6¯çélbªÿUÛ›
-bÞoüW'æ–€ñ_ˆâŸU˧=¡½Û2Nàÿäý¿~3Lÿ
 Y6·“²jóS$q\ÿûóÿ"ü?<Œÿjþ÷©ç8±üC¥CsØú¿²ë¡üwÏ9ñ_Íÿ—ŽÖÿ‚ø¬ÿw×Áü?¢pc!п›õ_ÐÿÏúÿü†@ÿnÖAþg°þ‹ßèŸ`ý—Nÿ¤±þÊ⺀潅@ÿ.ÖÑ	ÆÿYÀŒ;¿¡¨ÿ;Yÿã?, ÿ«ßPôÿŸ¿þK§ýGhÿ³ .5n C ‚õ_öˬÿÂ…ˆ!Ÿ¡-ÿ	×Áø›¼ˆù¿½ÜèŸ`ýÝ]ÿþo¬ÿ¢ó—!ú8òÂÿ˰ø;Ïÿ)ÍSˆ?gÆß]þOøYà¯ä?ó@`67gêß]þOèŸ(ÎoÎÔ¿»üŸðÿ° ÿ¿ßPèßIþO蟅—Pí| áEà†¶ýO˜ÿúgö?¿¡,ÿIóBÿ,„—ò2ºÄ ¯Ó¿ËüŸj•ÿSÂÿÇÚÿ~3°üwŸÿùŸX Š?yþOÌÿæã?~3Lÿ.ó®óÿ!ÿ/ãï,ÿ§íXåÿDùÏÂ9ñ_ù¿CGù?cÄŸ‚øäÿÜŸÿ«#ÜÿyPÙ?}†@ÿnòBÿ, ÿÏoôï&ÿ'úÿY@þO¿!Ðÿùù?;óu¤Qþ³ð&m±è¶ÇèßEþÏ8Äø¨ÿû
-EýßIþOäÿcù?ý†¢ÿÿüüŸûåcýG ¿!Ð?AþÏNÿ?ò21‚þ½†¶ü'Ìÿ‰þ?61xó‘ÿ‡ýäÿTÝüŸÈÿËÚÿ~s¶þ…#ÿgÿ'ñwãÿDþ7àÿôý»ñBÿ,`ü×oôïÆÿ‰öðú
-þ	ÖïÖÿ‘ÿ™‡·eÓÖËÌVØ {!пÿ'ü, þï7õ'þOø?XÀøßPôÿ;ñÂÿÍäï7úwãÿDÿðú
-mùOèÿDÿ›Àÿé'úwãÿ„ÿ›´ÿýfˆþOHù¹ƒUøéþO¹Zÿ]Àÿɰø»\ÿÝÆ?¦@ü83þÖ—ëõß1þÇ%ÿ¹äæLý;Xÿ]®×‡þY@‹ÛoÎÔ¿ƒõßåzýwŒÿ± ýû
-…þi×—ëõß¡^Dµë¿5hÛÿë¿ËõúïÐ?(ÿý†²ü§Yÿ]®×‡þYÀúï~3Pÿ×–ëõŸCŒÿp@ÂõŸ×í¿ó?X@ýÏo†éßåúÏr½þ3Öÿ`a`üݯÿ,PþspNüݬÿ¼Ö¿FüY ˆ?qþ?¹Îÿ‡û?Èÿç7ú'Îÿ'×ùÿ à¸ó
 ýçÿ[ûæÿ±€ü~C âõŸ×õòŸ¬ÿì7ú'Îÿ·öÿ&ÿaõ¿¡¨ÿÓæÿ[ùÿ0ÿŸ	Ìÿ÷ŠþÚü«ö¬ÿ‹ø?ü†@ÿÄùÿVýÿëÿð€ü~C[þSäÿ“ëüèÿcaƒ1ÿù?Ø!Ð?qþ¿µþ“úç í¿9[ÿäë??ø?%üŸÄߍÿùŸX€ÿÓoôïÆÿ	ý³€—ßèߍÿí?àÿôý¯ÿüàÿDùÏÖöý»ñÂÿÁêÿ~CQÿwâÿ„ÿƒŒÿø
-Eÿ¿ÿ'üß,Àÿé7úwãÿDÿðú
-mùOèÿDÿ›Àÿé'úwáÿÔÈÿÄÚÿ~Ó[ÿÕõµíæësŽãú÷ô¯BòŸ…ÑwZ Ôõ—ÞúoLÉ?Ì³É¢údJý&½{né·ÇõßÉÿ&èÿgý~3¤þŸœœù}Uøéó?”Ñ¿T2Áü†Åÿqý¯“ÎÑ?þ‘4MBÄŸ3ã¿·þãás+ÿwûÿÔÊÿ£þÏM¿уj#Üœ©ÿǹ?‹4û˜Þ^þ˜þwëÿÊúB蟴ýýæLý¯Ö=¤ùmzë_j-±þ+
-ú÷
-ý?_ûRÿ“úgá%Tû¤HEÏ
-mûÿ°¸wù¯B% (Îk(Ëÿ'ìÿ'Ìÿíôÿ%	ôÏ‚¸T—úw_¦ÿªìãê]þK¥%ÆÿY@ÿŸß,ÿoózžÎ&¦ú_µíìÈRðVáýÆubªÿe€(þYµ,UýVô¿ÿljÆú_,`ÄÕo†é?«ÓævRVm~Š$Žë¿ãÿÑXÿ“‡ñ_Íÿ9õýË¥äfáœø¯æIêüßkýÇðÿ±@‚üßñ~ý?ÒÈÿÅBŽcd ÷ýçÿV«üßÿãý~C âüßkÿ¿Bûäÿöýäÿîôÿ› ôÏÁ‡²¸. yo!Ð?qþï•þãù?YP¾×PÔÿió¯ü¿ëÿð€ü_~CÑÿ~þïNû?Æø/
-Þ_¯!Ð?Aþïýòßü…ùÿ,ˆò÷ÚòŸ"ÿ÷ªü4ÆÿXØÄàEÌÿa5nôOÿ[ïë_ø¿Y°þˆÎ_ÎÖèÈÿ)àÿä€ þþÏýþ¡ÿ‡%áþôý»ñBÿ,Àÿé7úwâÿDþàÿôýŸïÿìôÿè(FùÏ›´EÒE!пÿ'úY@ýßo(êÿNüŸð³ ÿ§ßPôÿŸïÿÜ/ÿ{8ôÏ ÜŸ~C ÿg§ÿ_ôÿ± Ç•ßЖÿ„þOôÿ±°‰ÁËð")7ú'ðªŽÿ3ÄüOÐþ÷›³õ/ù?‘ÿ•‚ø»ñbþðú
-þÝø?¡0þë7úwãÿDûø?ý†@ÿù?»õÿå?o˦­—™­°A÷B 7þOø?X@ýßo(êÿNüŸð°€ñ¿¡èÿwâÿ„ÿ›ø?ý†@ÿnüŸèÿcþO¿¡-ÿ	ýŸèÿcaø?ý„@ÿNüŸÈÿÄÚÿ~ÓKÿe5͏Û=;X…÷óŠØú¿áÿtOÿøW¥íæísŽþ÷ÂÿÏj\~Ó_ÿöŸ’>oÑÿþ/cáþÏÁÐø›fÀáÎþ¿ÿïû")0þÏBøF |f¨þM£?5Ê9épLÿ"ÚÏÿ©ùßX°qœÜm k»NFòbõÔ¼hš \?¾®ê¼¸)ÍŸEi®YžÞå«×ˆ$–ñŬ²“?ìe±õ&U{›×ë'QÅ|ÁÕÿ<ŸåuuÒ9Žèß4ö;ó?Eÿ¿¬$¼Ëç¿Wm:{¬q’ÈPÉàã[‡üTçùæˆ@èh<R£Ñî!š|úxH d¢Lè·yµÅÝ—71(•$q¸uÈÛ2Ý?h'ã¸ó.ߦeUþõá0!F;'Ú¼ËÎAAvß庘å(©Ç">ô._Úÿ,J«’ÖΝøòÛ$£íÏòÎÜ#?nÿ.öQ¸}È›¢nïw0‡„z; ÿ®‹6¿J³»‡m£ŸÌ§ü5½É›ÇC"[™Þ	cºXì}” ‘;‘~m~±Ýw1¿îx'Fv÷ïö+o#w.†_~z?ùP6»?ÌîÇý¡Z–Y¾÷­wyüÒ¿ÏO¼ËûYzµû‘V»?Ýûßòl–ó/ŸÅþ*;a|ÿ¡¬×=¾—2·«íC~^Þ¬ÝÉ–VÂîÞ-™Øû~Y/÷~mý½ÿ7YZN–_®üÉÂ~·Ãç8Þþëø¿$Öãáë_àk2TÿÓÂèÆÜ»O9GÿþÿHI¬ÿÊ‚À
-ÀkÎèÿ=lö:À1ýwý_Qˆù<lbð"ü_×׸
 1Ó_ÿ‹ªiŠ'2=¦ù¯T„ú?(þý¦¿þoÓÆz½{œc€þæñ ýûÍ0ý—U=Og“y>¯êû£çè¯-êÿ,@ÿ~ó¼þ³YÚ4ß»X…÷òÿ‰$”þ?N‰ÿt^œu
-ˆ¿Nÿ™…Sã_L‡_ýâož—¡ˆ1ÿƒ…ñÏLͯ)š‰ù!ŠôÙ„_{¯ÿíÇ_…	ü¿,ôˆÿUQ5“»¼œVu¿s¿Øÿ—Æÿyx“ÏfÁÛ2ûí /é¯ÿºÙIî~ÇïÿqgþOˆö?ò{õ=r@úKýWi=”é¼×äßoNѲWÿ“"þYùMŽ$n ¾Ò[ÿ* Çõíë?‰ÿ……×!F |¦‡þu5]fíd¹,¦½Îѯÿç¡þñú¶ÿ¦iÛ·úwBÿÏþø¯úÿX£¿Éñßd"¨—èÿï]<~ÿûýÿ*Dÿ/P½ß¨ÿ9ÖÿÚÿ-Qÿcú÷›å¿ù7o'mzsê9”ÿ:Aÿпßôîÿííþâÿ‘Zbü‡…ñŸWÓtV¤ý„cñÉ~üÍ3XÿÛWWw¥µYy\¯,¯®¦_º†^5[G,Ê_«Oyý÷éM.Ç:|µ¸«_Õ[ûër=¦hž¬_‡á«lk_ÖJež¨_¡Øy!hÿ9ö®çÿaþ?=â¿Ìïòò´Œ¿»‹¿ì´ÿE„õ?xx÷?o^ÿëíë÷ÿ…‚ÀKÜÿ{;ÀŽÿ%ûã:Æú,<J8°†}c@ÿ_{¿ ÖÿÎüïhíÿ@û© yŸéÝÿ×»÷Pÿ¿DþG ~¿äÿé9ôxý_îë_Œÿ³€ùŸ~3`þGï	àýõ/u„ö?пßôéÿ³]EC²ÀX‰÷Ëÿ"”TÈÿÂAïøJ?æË?пý'µBÿ¸íûMý›'¥ÿ’ÿG&hÿ±€ú                þjN-ô   
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-2s4c-heterogeneous.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,34 +0,0 @@
-Machine (phys=0 local=16468292KB total=16468292KB Dell Inc. 0NR282)
-  Socket #0 (phys=0)
-    L1Cache #0 (32KB)
-      Core #0 (phys=0)
-        PU #0 (phys=0)
-    L2Cache #0 (4096KB)
-      Core #1 (phys=2)
-        PU #1 (phys=2)
-      L1Cache #1 (32KB)
-        Core #2 (phys=3)
-          PU #2 (phys=6)
-    L1Cache #2 (32KB)
-      Core #3 (phys=1)
-        PU #3 (phys=4)
-  Socket #1 (phys=1)
-    L2Cache #1 (4096KB)
-      Core #4 (phys=0)
-        PU #4 (phys=1)
-      Core #5 (phys=1)
-        PU #5 (phys=5)
-    L2Cache #2 (4096KB)
-      L1Cache #3 (32KB)
-        Core #6 (phys=2)
-          PU #6 (phys=3)
-      L1Cache #4 (32KB)
-        Core #7 (phys=3)
-          PU #7 (phys=7)
-depth 0:	1 Machine (type #1)
- depth 1:	2 Sockets (type #3)
-  depth 2:	3 Caches (type #4)
-   depth 3:	5 Caches (type #4)
-    depth 4:	8 Cores (type #5)
-     depth 5:	8 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,31 @@
+Machine (phys=0 local=1016272KB total=1016272KB Backend=Linux)
+  Socket #0 (phys=1)
+    L3Cache #0 (8192KB line=64)
+      L2Cache #0 (256KB line=64)
+        L1Cache #0 (32KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+            PU #1 (phys=4)
+      L2Cache #1 (256KB line=64)
+        L1Cache #1 (32KB line=64)
+          Core #1 (phys=1)
+            PU #2 (phys=1)
+            PU #3 (phys=5)
+      L2Cache #2 (256KB line=64)
+        L1Cache #2 (32KB line=64)
+          Core #2 (phys=2)
+            PU #4 (phys=2)
+            PU #5 (phys=6)
+      L2Cache #3 (256KB line=64)
+        L1Cache #3 (32KB line=64)
+          Core #3 (phys=3)
+            PU #6 (phys=3)
+            PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	1 Socket (type #3)
+  depth 2:	1 Cache (type #4)
+   depth 3:	4 Caches (type #4)
+    depth 4:	4 Caches (type #4)
+     depth 5:	4 Cores (type #5)
+      depth 6:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,163 @@
+BZh91AY&SYLEˆ± Û4¯ÿöþ_ÿÿ÷ïÿþÿÿÿô ‚  
+ ÿø`bþûé–ø    ê…W¯ Ç É‹»På/` ‚’”’ÛJ6ÞÙDN­•^¶Áôøûk€ï¼àÎu\Mö_E|;:4tnî·ºÍl:ÝÁ븛v.×sÑç·§TmÞìãÝïpk{ÜõÞ^ÜN÷s½mÇ—=íïöï-žÞî÷nõ§x
+U[×»ºsŒîÛ£l±È
+·9lj“èJƒ¡GA«³@jE4W@»€s5¶Tèt
+4NØ( £±”Ðh ´­)ÒîàZ[  6ÀÔ„  ! &ÈКi“MI꟪zy	”õ?SQê
+=@õ6¦Ô E5SÞ£ÿÕJ2(õ               jx"Š
+SÔPõ¤            ò “Iˆ!2jy&ž§µ4ž˜(üŠ< iê¨z€  õê   @‚hMDÊi°DÉ´)íM=!¦ž ÉôšSjhõ0™¢ hhiêI ÓMÔðM?§¦©ú5CõG©“M2êÊhõ €4Óð'Æ L§ËDDò'å %>â|@Ò#ûEâP?çiIR” þÈOí†á€Xu7‚(õh°Q…Š•R©P?¬þÀa`‚[퉨 i@×mq¶¢m˜Éa÷}ÿ‡èú>wégòF‘´Ì	ׯL~
+?QN å…UìsŽ”DDeˆA‚Š0‘êDt©$„à‡ø€ž¼ö9ëê»Úñ}ñ¼\™½»™Ü…«3bÞ,'vnd²îË^šòBæ—0¹¥Ìhy	1E£7V‹µGXÖ5än5Vá“+0ëÚÜ2mn5Va×µ¹‡0ndÌÛ¶…«ÌX4‘A¢‹iÍÇ$ׯ1¼[æQm¶Ô.äÍÖ®ªÆnLÇ2ܵB¶,¹·u•EPÚÝÝǹ˜ôæƒ,Ñnn[BÕƒFîºò-ÜqKmz^»veÌXSw«½,ë[nÖ+1àÔ´$´$³ZZ[©-!î5\jª75h¦5­Ùwh·mÚ4e8±G›¶Ü˹h»nÚÞ<Ý¢í¶ÑrÝ´]·mmܶI&ÓnÙ¶›%£FîÇLau\Idëœɵõ×]N
+¡¶ÓnÍÒFfÝ†ášw6„eÓqâÜ'1n=9¤æ.±î¾ŽôNcÌ8ºðñÇxx¼ðñÎÎ5° HŸ¾°„ª"AaT²ŠÙLb™µ¤Ë8.êa¥À’è¸¬,²ÂÂ]"ÀÅ™!T…P,
+™Kib1Ë-lQ­Ë´¬Ée-)d*e-¤ÄTÉBÙ%EŠˆÁIX*#¢’¬QimQ0ÀÄX£¶
+‹,…RdÌÃJXTQEj(+JYe,¡s&LEBË
+°¥VÕÈTÊ[dÅS TËQ´©ˆªÙ
+™kP1fK)e”´¥–RÒ–bÀ¹iP1fR”%\m²b©…
+å¥@Å™JZSé†FoGÎÁäzJf]Cz;j&ƒˆÆdáðSJŽ[MͤŒïÊŽXŒDêÚ^TS\L—•£’îÚ,àâhņµ5Ûà ààPác âeœf (©Æa'ÔÈ’N!Êœ)QËi¹±‡¨åˆ‚'VÙLbnfLs¢œÅ´YĘU†MÕädœ,8Œ“‰…œ`D‚§ƒ¦gsxáζ\ѱƒ“z¼º¼½rk…œ
+ri…yqÁÅ&K¬ÉuÊŠÉuÌ—iÉMd„î$mBFHE’  'ŒÊBrÊEZê¼DñK]at’@# ¤˜*ˆ°)ˆ(Œ`)’-„FX‹l±d„!A$A"‚ÁDa$„D£”USÄÿ¨R=ÈxŒß3ÓL‚òŠªûÀMeUYÐ
+ƒÒ-â=ØC!æ(8_õÿ<8CñÏXûe|£ù¥J:”u(êQx‡ OâïC­(´X­W•YyWñ¼ÛVŸ6S¬èøÆqs¡Ñ™{æk¬<yåÃÊÓ¤,‚0ÊXqßÃÏæ?;çÁ‡Ì¢Ç’C´†¤/ñ¼½í´6߈d‘¶Ûy$ž²Hü¤=ªí¥5Þ±å¥5Þ±å¥4©Š±!@í1Wm)­ÃV<´¦·
+XòÒšTÅX 7ƒ½Ÿ‚ÙM¼Êmà¶So¢So¢So¢So¢S}dè!bÊ8‰„RV€€„RV€ƒ0ŠBjÐFHUIA 0M!ª¾X	HÂ,ë 1¤a
+,î"¨8s!÷—$á°‡ETÏù|ûn¾„.á·J6d„€†Í›#ʼnGêgR&rÛe–9ÎwèüȝŸ§4Uò…Lk¹þ wÿo0ìP?}ý¤Q,{øo£ù´Ó7W+È©Þô-z¯–
+Ãèð“¦,|SÙ¼c²ÐH黊—6ÓLð·ÓqGd¾uÑ•öê¼PŠ#E•ðíî…–¹›l Íh3Af‰0	 )Z:—V¸KJVÌ:ÎåAUŽ QCÝŸÉ;;õªõ.Ç3÷ã4œ[÷LŠ"X½œlЍR““Øè9aÚ±ßa–íu9¯âÁ¸­Ù$2?¡@ò}¿É¦^zxÄÉRÀ±t½—ü¬ÑÉŽYè{ƒ{ÂuvuÝ|&RV½è¶Þü&øC–/gZØ®½-ãÍeðD¸¨”ìBÕ,³€d†*t ð5£sCùó†2°»Šøº½Ñ²ï\7Ýr¶Ùë»_=@ÂYÚìÕUUUUUUjý‹†jÇnu¶BßqƐ»&Ã<olæf«npZ¶2ÑU”#d³tœ¹µU
+;'TÏ=9!QEæcP£•-eKÅ‹µ8Âæõ1ì=SF©Š‰Ñ•Ðz_àÆ3YéO{3ÕìÏG›M'ØåUUUUUVóUUUUUU~À×ȧé“ÀþÛÖå以Uzx¬ÖXL¾-h
+rx *®”N}’xê9Ö¿ï‹ä÷äøäþXŽ,výëŒeŽ6ãŽ=ˆ^‹£ëtž±*ˆ Š-™$`^„DT;O(wþ(¨gªS»OÇ	ˆX…ƒ/à
+Ÿxà?¸ô¤Æé3’"ü=À/Ö¯¿s¼ø¬Dfˆº¹9¹¹¹šŠÉ¤¨)ˆx†ãÝWué’?/!Î$<1Îzú#ûü» -¢Š(…>\ùOšþUUVæ6ý;çÕÎtdz-ÛP9mÄvØ•`½UUUUUUUUUWòŸäß÷òü>O»±÷O/¯<&O½>Cì}ƒU³œç¼¥)ÖNJʱ‹Fµ\JÚ2¬^1í0ää_	Ô“cíôûvôzg®R”©HB¥#ŽZ]dç¯[놅¸a…~Î`:,þJŽ5f2m>á„aPÜ£qq9ÿ‘‚1Va at HüŽ×mn·oiª'³Þª§;+u9U„M@‰)ÃWGFÍ|žžµPÒïø]pQ8!÷rœíiׇük
++"M¥D—”Àò‡HM"	WAP½‹Ûí÷¢#CL]âX8ƒ€pŸGóàyLJé üg¾B	þy<ר6EhùL’®
+‘Z6EhÙ£†IWÈ­"´lŠÑ¦¨#`‰DŸE,š]–J´²U¦‚0Fš$¾°Óa‘‚Pl(~	‚DBΈx*ªªªªªþ+ª¾wâü>ó:²Îß²Cî}l߈|z»Þz €@DZ\
+Ù8¡Þ
+
+ßO7[çotž÷½È#å0eÆª©Fs„e)‡Z5@Äh']umìvÜÈìü	•’
+¬ú×äõœŸ›;â{MÿŽ™Û=+þ±˜µòTô.ô®ÑÔµ7:~Ö!Ú¼®@Ü­­@³µ0駇0•/;‹88ÃÀõ0ïO‡¡úü„c½B ^mTÅ݆;úÎNêP‰½x* BÎHNŸDÊú¶z»Ä/";06cè j›âªpMµ~]çÒU'4 ›ßG¥
+EÜB"‘Gž(fÜË*\¢ÞÓÓpí·v‘x’êà#Œ£Öˆu—Ô¾À·Í=Büyý>ºk߬䠷ŽÖ‡ ¤%Ù!`sLº(BË'Ù¿ZèQnj¨•µª ÷ùèôùïsž‡€ï©2ËCjðyDNþlÄyaÌy™ÖòÙ™™äNr¯‰ŽUª€kIKR#ÅAu,[Ïsø¾_.ûýíô®ÔðW(/bïdFå‡ðœÜܧ/U9®ö9ëNc«©ÕΫ_m»»‘Dîg)j'i³a®1¸·* "ˆª½J”Ö¥–ãDò–'
+ ª€…·;ᳯ&¶;ÅQLa»;¦4³¾ 4,ˆˆŸµP‚èrŠ¡ç!?Ÿdsn?]†ª™yìïü¤/—`ÑDœ×ÐéúD{¤¿s’$,pÞ{œŸÕkÐYýhËê—8‹è•½=æ²Ò¦#€VÏÕÇÇÄt‡cöUUUUUUh-Ç—VúIðý»z|më¸ýBªµ×ó‚t;0ìÔQ7¢1NÀň
+΂5¬Î]™Ã«á…Õ䧉ðYׯézÇ9èý»„úÝ{òíò¿©
+¤}ÙlºÓö,–”pà?¯;ßòLÏ@á֜{Éc¤QÖ÷+öÄ›?E?æ×Ç¥ºé,ÛçÜIµ—~R¼uñvóPOšºC	ô§^ëú¸I:Fþ#S/ºª¼^#ff¿BóŠOÒ=¾^òÆUJ ’9 at K;d†#¾<PÊÅgϸÉÏ'¨xçþWî廫¼lJ‘%_w¥³ªHaõ¸ä“ž^­Ú.)ÝOÝwW«Úª{ð›tð¸ï:5AÐCí0E˜Cé¯v´r’Zlåçx8‰£¡:áÛ‰Œ²Äër=Nŝ¹ùœÃp|Õ'7ƒQŸË¦Žšª>)š?ÂÇ4û]ÅÑà	TÎd&âö=CP,5;1Aù»×5ï^Uô­:züŸÕ $IªªûKYÌÌÊÎfs™Ï¸6¢jXýÿ˜[µRf—‡ßx`ú¹_ÆwèÉqʼ7âO¾÷y…¿Í›®ŒÜ ž1»Çur¬}@CŽÂ XÏô@¦òÐ/Öû.Áš÷Ûñ£Âr꿯¢RYú¹ñÐ#õZ</	Û›¢¸!ÊÞWó|=ÛyI¯Ô“püé<GÐ2c½éVyFûוsçvÝ61Á´y¤S·ƒS9 šì–ñð#ht¾«s tønëÝMÇàkŸMÓw/¬»+€Ý}üv'çä;0¨f+jýCBÝAçEQù¢ynŸ_³Õ¯¯wÀôwâ‘TX±TX±bÄb¿€5𢡊 ;ÐJpËݺgÐðK¹mÜ›Ó1¹¼aCSõ
+QÑ5<‡Ë™ß¹ü=cÁ7‰€$ }Ùñgì‰Ñw¹?›Ót5ü àjÐ(Ñ@±!™´‘3‹vz¹À7XäQ,Áø)â£sÔ7ÙôtuüÃAæ=P»ª‚¹tqÚøâ»8¼y|ÿ?¿ÛæÛ»Û㎫,²Ë+ZÖµ¾û¯¾ûï¾ûï­÷ßmÍuϺë¥u×]u×jîëîäC[ù~ô ô|åOÒ8p8Ô*ˆmnMûøKY4œØfd©ž£³mĆÁÔJðnaÅî~îÓn°µËJÑÖž§^_WÇãòí {ÈBÓú¸æ6‡^ûÞ÷¿çƒs'àhPÓ9pðæàè	ëà6¨—†v€y
+e“#
+ïâs›
+¶Ûm¶Ém¶Ûm’Ûm¶Û÷Р“wÒ7ëó=_ñhÈnbÓæãfÑÜÐ:îÕˆD¹x÷عqzfw•ÀÏZŒäxâ9ý™r|Jäs& vòé¯ÔëtÛUÓDûÀñÛÀõ2-ÄwõwŽ<6þL†­+Ö;•Êè›Sót1L²ò¾BºÚ¬Q?…·	í`: úÐÁ´Opð18 ‚wçæì³¥¾þB&Ð>
+G™	ŠßŸV¯t#3Î\‘3üÿ	cÅc”éúùOœÌèÛLÀÀACæ–Ë¢;ru}hªC½ßù¼6	òÉõáÖ.5‡`À_çVîçØËÄj>ùùw=”ÿGòé:ý’r~ÐãyXzFWª“r"ېù¹¢)Ñ=޽æè€ã¤ì.ÜIYÙÉãvOØf´í3ŒØpúýÐLl›b#˽Ä,UØÚ¾¾©ÀÊ'±Íêãî²wvö@úà{sSóŸ”õE¶ÒÕ¶ÚU¶ÒÚÌÌÌGWœê>o 4õj1øðãìú ˆ'w¼DÎ:	YUUUU”	îø¾O“5$†RÒÂÎõOº„í"¢$r)'<«
+ÕKŸW åìCIðDìëõ©Åh ȈïhŠ*ãn|žM¿‰Ÿ}‚ض{¨â+žJ2.×Ty
+ ð[º×Ãm}á÷Ñý¿¯ßâÓÙÓ±ÇÑì,kÌzÿ4ÿ
+$É 7ðTPal±Žn~/¿§ŒH-dl<¾Ì!oä,ÝíjÐ{™—º—(âûü{úúïWÆøt?éóá ;©Ël¿~Bˆ˜±gú¾äDBdÁÄ7ˆoéô練@AéÄ)$eü§œøt€¦j%víÛ±ÅVR”£)¢'Îrš#Ô˜þ5U¿ªïÊþ­áReP­è°u÷aÏ7êþK(•÷0ªò”ð?g‹Û|¸>Þå6îÏ’8Ö
+åuOOãÞÁ áú§Ô[s‘Ó—WðjÙŠ!…	Þ®v×"zô>Õ!Æ¿ckT„¦[á&H”a´ìæ'õݳÑgŒ9bWŠß¬Š÷½£)K8¼}—ê¾ÊÖµ¾r¾–ÐUsÒ1£‡–3¬²Ë.ºÛ/‰U(Ð1h«(9ѶVÛm¶Ù,²Ë,²Ë,¥Zµ­iJYdÀ½ïÇì²”¶¸/ß¿råëׯ]»víü×]u×]uÖÁeû,·e–Ye–,²Éà¿EºW]u×]e«j­×Þ—ß}÷ß}÷Ý}kZÖµ­kU¾Ò뮺뮺뭺µ­kZÖµ¥)JR”¥+h$”•УíºáÎŽdÈ@ª/©
+Ø•—
+$ƒí.tâN«‰‡ƒ<t3’î®»¤©<3»šO«ôT/BÀæÞú&=­žRHá#ÀPß­UëÈ’àŠªªªèØ\~ôE5òÑÖÇO€›ú¿*àôQAE•VlÕs™•ÎV“m"Ùi¢Ùi6Ûm&Ëm¶Ò-·ð ?2
+1Ž»óÂgo
+«§‘ÀB at aâ{ïˉ‡†˜iJh"”¢›M,Uœ}Q:îÒË+¬                                       yùá×OVõ™™™k˜å¹™k™™îz€ú’D’2î!*Š¤"©ªˆJ¨à'ƒ€pžÍÝžžžž’I$’I$’I$’I$’I$’I$’I$’I$’I$“œç9Îsœç9Îsœç9Î`)U)JR”            šØ- ·0    .\¸ 	€    <óÏ<óîà[”6
+•JUR”áÜHïV #Â1ZÕ)UJR÷W-¹–©˜®WÌÌѯÚív¦¹mÅ30õHnͪˆ¨»Çœ 6ý½½½»÷|»=¥Ûm¶‘l´›iÛ÷€qÀÚªªªð¦ô”3í’
+ËïOivÛm¤[-&ÚE¶Û-$“m"3¶Ü©™™˜ªªª¸êð $ðª*ª""¬]UEQ8p€aˆˆBR”¥*¥„DR"-JV­R”      »r”¥)JR”¥)\ˆ„Dbª‹Q@ÃLEˆ–­¶ÛKVÛKnèöI ØO]δcR½8íËÝõ…Î0ÉDFà:6ÆIÃ,¨7ƒ`§Mm3X)‰Â"u		ÄXD¬’	¢I!uøÞºUUU_ppãµv`6Ûm¶Ûm¶ÛoÏôª¯á_Íãž›§£Œ	[û^{¬R•úÖ¼tÆP„(¤ÎÌ:¶¹_º	ét>hslÛt¥@CñQ bÃñɶ½7ÒBHDì€H3ŸVuµDîª(!¨,w'Ž}¦P­í*Þ’­Ø&µš›z—ªy”0Éy—šs3H
+ñã‚ÐÀpÉÄt§Ÿ	&·‹7kxƒ(µUX[éöãò7–³«5w®‘Mˆß¸ŸkìoQ>fÞ9M þ±É%ö="Èôuå'8ªB„±/]ö›ê*¢J¨øÒ0ÅWüò~|Ç´W·?*´#€´¤,)(K,*K
+‡š£QHNHÝMô<inåc>uEiА"%x_n+˜z²3ßéQ÷ŸÔ¡$ QTþ‹0C0CБ6Ô
+{lœCÁ×|§ldè=!>
+½$ˆ¹ð~T¶À R´BhM	 ôäœdÙ%"˜œ¶Öºi¶Ù×MÇ“?~…ÌLç»ZÖ""""3Ÿ;²N
+pê(eÔˆ€÷ŠÚü'ÚpÈ²Ë õС@íÿ:~ø‰?—
+F
+ÈÆ§é²ÊR”ÖL…Œb €¦¨àûÇÈÐ[98‘À˜ÄÔÉrrC z»ý|wc`ØØ66v6v_Öd
+Ú4ÁTjÕ¨5jµ+P¯‡"Ù’:ŽCU¨°ü†ÉŠ`˜’¦3·&FF,ŠdéÈe&’ÂY%™	4–Y&I1ºÃðý¸û‡l>IüŽY$™$âŸ"xìÌÞÝõþŸO|ÉÇm¢?À³bÍ‘°6É~î‡§ù½N CÒzP(˜I!÷PUYUH
+ªþ½Ï?}}¹³È³³dƒ=œ@U—”Ýéò°…,*ÎöÀ¸?Š—XS\¨¼Ïöp9YŵUm5Ú2Φ‚‚I²£q¨„ˆVa $7­\켁
+‹ÕT²Nuèå|ãÔ¾n¾3r¹—Þ¾¥×±­Se$ÌΛ¨êÜœ¨€NNuÉÁ¡Ëé(p#Ô'×ãÐ@VuÍüI;a‡Œ"|›×°ŠÞØE„XE’RÂ[a-°Œ€”¤–E‘dPŠ
+H¡"ÀYE¤UYßIÜóšÏ|Ñçì†ÏP¾æ3I¤	 i™”wik$ºÆM,‹â°Z4܈%1ҝ(ãHÛÎ_n®R·k\98läÙWȨְµ[¼QmYEsP)IDV´Þ÷/ä‚Ø-¢"Íò›(—I$×QZ2kÁr “€ú'•ù>ÚZˆI™ªZÉË´rKÍTIûóG9ê(]uïŒKíPåX„kœW$	Ž1\WˆN‘4s¦2„®ëͬµPJ"UV ¬¤:ÄjÒl5\ÖÚÃØ1ÝQ/®bÃ)%ŠIºpÂÍjcN\MÕ7 µëTQ!@HhÞnlë]JâµÔ%ÝÚºêÔ­u@µ¦Ó!B ºœ`zÈ
+6kf')°Eu„v¨•ÞbZ¿vŽ[F5œÎ°Ž”°oÒ–3c¤û—@êÞi²,ˆ s0OÏC¤	+!D;VG$²>Ç×¢-€‡t3ª¬IÌ(„pd—rT‰N«U=*s/Ût¨ór­Û,½PKflF ÛÕT‰­”Ù³z±UUUM	­CXª«¡Ö^G}<Ÿd0“°1÷°9Wô!&ˆAE‘Ë ´`|‰DØB}¤Ù™†*ªªª€€ŒšT€±UFÚ­T*¢¿›±ðñ÷üÞ·{Óëf“äÞÃzãL À±2ÅÛ%6!µTOaã<% ¦ï
+5Å›! Ù-”…)@ªËÙÇKÿò@pŸ’¶÷Õ¹R0ñ¶¬*É[kÖû§ö’@Šà:AäzàÞ¶ÏU&ˆF6lŽÇ¼ñ?0]–þͦ uo~©\$ö¹á±Ãðý@7æ|X…ÿÞ¥rŸ8
+"e}Š®BHÉ@(Ra…Wú…t©:´8óÁP‹
+I.(Z……	e…IaaCÑÒ?ÏõQ$c ‘‰ˆIܧ*ž¯Ð©õŠA•P"äA
+ùªÈü¬vøŠìPooªhwr4Ò§àD`´žOŠ»ÔÉ*¨ÚTÜ6È@UÒw¤á«[ãP@¨2‚ïs'*q«ˆÅÐßôéRG‚	ÇBx*\û€L ¼<ø9S%Ë„F›µñؾå€
+¤F)<)KÚPI¥”á‘ÍìœhåÙ)œGEwˆ§v¡ u‘ÏšX“~t[w$wÛ¬µF â°1ې˜ +h†QÈzŠ“ÉŸf at bí6lI	KXÐ/G#Õ†”´½¦©~ëÌBIåwnX]UÎÛŸ.n[b÷ôÂwg«¯6;}>ÛU{š|¾–‡¦¨\¬Ë\^š ‚ Šé4Q6,\Iyc¦ŽŒ¥ãDžˆ6RÍ@lå%§%O[—<5åìpDEB†ÓKYS:–¢æ…  a!Ím•€8Ï5UUUU^Àxwë‹ß²¾û7ä¿+'fBùšßÙ6ßëî»#ivM)MÚÑlg¸L±\å$º*,s«8Us§ 4­Ž3|Õ@& DÐoÅaú;ƒË×4”ùÅe¨žïjƒR\»i_ãçâ5¡kÓ¤+çûmɺB¨U
+¨J[¸af0‹¡0Ã0‚€ ,&éÒJlõëBÁEÓÐl8ûþß~¾¦ò?r¾|cð84S¤bÜÊ„up™!p† jÝR^&ùàÅåƒÂÍ’B××*BrFBDŒ¢HJ	RC`f÷ÇÊm' qìUUU_¬CØyø÷ûøkú~Ûêž“βnA“ÊÞxt¾HiXq½÷CJM\n¬'v¶ôÿŒø&ÐÏ®àñ¼ÏM> =ÝöÈ4¸¾…""Kà"tò`®»•ßìñÕéN¬°^FÝ,«J‰c†Z/øÐlÞ=£ËB,)$¸XP¡j%–%……
+E8YÂ7¯·rØ[„gMRs²áô`ï±&÷÷˜ÑÿZ"”Å/vù>êÂ<íljõʾêè`©-ÎòƒÁ~Ìguúì´Û&¬µ•q·BñHç|/aìz:­bYcÙáQU&¦ž8[Ï…¨
+Ë£>œ 8%òH‹™,£A‰I‹ã~ê:m˜Þ-µhw2r’€3D ‘*s„¨\|ü(r윞c™M\„:[@BkÕ@
+ÂN56^ÀÖ©Ý®²²kÒ›;÷jË>¬©A‚0ë«1!Õ5Ä€Á $‡°—5^ª_dÕ†…+Tׇ–¨Ö±Ï'ªÂÃ!õ.$8I
+" 2 3 ‡ƒËûoo\
+òál^CËé¹Î½ž}C¼_(3–îR)êMø—d×h;ó|o ßßUVu¹7IM§yi¨%„LJ`ç&Ob0VþO¯×ïoB…Ÿ×óýc^ºCIG”ܵ"z 	ÜØmc]
+ó…ª’{…"±„^®|˜ŠËÐ[å˜f"F–1ÄWVÓ‰–p—ŠÅkOeX`P†`/^ÍÇ ;êæ®ž®ç¦&/7Í!¸ãŠC›- „ƤfVÕåö{~U»<y@˜h!}72	ÜX÷ka·  ˜œðú³ÙTÊ•IjªKnìùïψôŽÌ°¤’áaB…¨XP–XT–;{·ì¼Y[£vCžÂûëtÏ#Å돫×wÎpðí;QŸwѬ¿®Â™}Þy¤ëï[AtBzæ2¿RCäw3‹dÝæ—Ml$R–ªVC ožs…òH!„€FF%Ï×Ž‘^åÔa_häÝj¬øØw‹FvY6WwƒÞµJ†+è`3·Ÿ*ucM›Þ9¿ð‰'†P
+Þ>m_ž„ÄȄ釃“—–,}›ñÛ»ÇhÃ^yïàáOŽ¡=žšªªº¬îͤãe¸’ªª¹¥Ý*ªïŠ!®Æñ­½¶k`ydIÇ£¦AÏu'}
+:ã
+I5wêÆš >Ëís‚ö@íï弡“ÒšB&
+”íåx¾_[<svxxÝaÔ ^ÃAe~ÛrÐQR´ièj¬Y^WMwñŠÒÕofK^yT†Å8HéÁðÐÈ7ˆ$ñm¤fõ€KHÍCq&=Ó¤™$¿)+4XˆˆˆˆˆˆˆŒ@´¥iÙ0Š=HÀû^~³ßÕö{|î·§É©®QœºµFJ9­ÙI AM¯qй"Ç“xN&†Ý¸µãTÛš¼h BA@û¡¦•)(…T©HXczñËö
+DwˆW[ÌíàùwÕ€ˆ
+‚Z¦ÁJÜÂ	ãàÄ”4R'Ê.ù–5U’2â&ǁʱÚÒDVo†«ôÁ¶ŠNN
+vVÎ62Û⹯¶pªª%1”`åu6¬eŠR`ÚTP<	¯{]3“:£M¨žnŽâvóÒÛYBÛXÜ(
+ˆî»¯Áf
+&J±³¦fB@)3Î'ÍáÞÒNyÌ\Íêè}¸O!$
+ýÎ7©ÂÇŽ÷7o¥©ãdz >‚“ÇÁ(¼yg]o³ÁÎÍkD4ZLõf@$DÊ
+kʇŽS|¤;
+½öbÛ@&JĐ` ÀA ²"Ddƒ$Aˆ ˆŒ€ A	„,ˆÁ NŠM™WP‚6ÉÕ”‚ÕZL:Ï-îCêsx¡Ðb N4ãªZ:ÖÊ@6e§·9“X˜SUèF—2¢3 ‚ëÙ‡@¦½÷º±‰œ<gOÍ­""s°b7È}¢—/WxkrÑN®xO¶¢ žÛÈ’lvamÖ÷‰Ÿ´üèÒÕÍW
+om.DQk+
+…3{¹s¡y☥tœ'HI5÷ ¢"Š‹`Eî›vÈfÅ×fÏÕ{¯¥ÍkÒ)äý·´àÎñ3“ÄüKÂXYpP|KíæS¤.|ê’_zOòqÍD%Ý9×=iKó¡|kWW'…·àæih ªG]ljV÷ݶÿh¾Ih™c°s›±·66–Mq×ÕNy\Ë,¥‘
+0‘RN¶NwÎt£*œˆ+¥#7¾2¥&æT·HS„랎rL(­KâÂ4RP®’Ö¸ä:²òñœË.°2j…„ÀÈ’X‘,6“h¸‰ÉáÓ!Ó;Ž:뮳¸lâm„—>9áî¤}§qXÏ>f–÷ûóÁçèˆdŸÉœ#g2鐤oJÙ-·„éÂA“ËHÝÙ9Å6œ'ÊM "2ˆ]<<ü€p°òÃÕòZ‰I]Y)&Àa\ÃŒ†Gé7>d°’ÎáX üµV#u°.°	ƒ3¦­{Ÿhÿ²5´üú²ÃF^,-UWÇ*O×GS£
+ùn8A3®@ZÖÕ[,JGÎ#¯¡”árC²àœk‡ƒÄF[õää@|ZôU3å ‘sw4poª~ð@„køè€yÒÓ´9€q ç&`dƒRÂÆ6Ñcc|5¾xˆÃZã^¾Û× ÒÆFKÆd¶f9Õ¼ÜtØ·¬âQ%ÙÜv!&Zm¾XS+ME)mjT‚(ˆ/FÀK®v¡Å-ôÑNÕÙ¨_)Ÿ‹=‰Ž Š1;Ìλgm<¡Ì×Bàë%uB9&q9áÍ€#ç†."O{AÔ¸Xăš.ãrµ5Ú™¢›ß"ð©VTä–`ˆ­Øïɋ٭±ì–´¨Œ±RCÖO|^*³Ó®8H‰œ¡’4‹vˆA$AjÓ›^ž\M;æÈpp’KðÔŒ]s®¿ZO„E#U5e[9¢‰3T,G߃’¦©É
+}ÃD~qÄI†§Û;)£êáI…¾ÒðL*WkQ ^¾8(„Ão]r-¿
+%­‰xûËåˆöŒÕ¸è
+†¶ö݇½¦´Ns»ÌÏ~z°Ÿ7º†¥P$+®zº·»ŠZ­yàKÛºPI›bé ƒÒI£”.Y×¢0}cPªF©
+,&c-YÝ~DA1ÃêñÕ¼ë‘$£vÝ—6¬Úߘx| ôg9¤ SÆxB‹w+|¾p3e#8€¿9¦®)iÎuÎõEädÈvÓTQT¢N—L1¾´ì¯<“„¡ÓiÀgc< 5 CHJ¤^ÁœçPT~©sH„E£·FwÍûÀ`o»Ç\ò
+õÕê¸sPœ)&DFµ›¶FÉï¦H,·aT’‹ÊZ!œ=غØsmI'lφœtW1¡C]¿fÖ½#û[l}k¥ñÖöxÓ‘ÅxšMÄÔDDŒ)6Ö6 :pr^`Ò I¨E[0iºéÞ»eÝô$>˜}ñüߟüþ.çßû³çƒû?ù”™)þ¿-k‰-oÑ4­±‰ŸKŸ$½Ýߐ‡Ã»Ð=æoý¨yQ	]y_O†Sñ[ñndöôÌÌò\cÙŸ}‡BBÞä4¡oiËŒLòÉsؽÝÙðVK׉O‹åëÖg^ž33<Âã¬øaА·¹
+([Úrã<ò\ó/wvB<’õâSãÇŸŽó:õÜÌÏ0¸Ç«=0èH[d4¡oIËŒLôÉsȽÝÙõ+'Ÿ^²Ÿ_‘ò}Îó<{žy™žqqŸf	{Ò…½§.13Û%Ž
+éJR±¡¤šbÏF–“‚£ÙM§\²Ñð],»JF9g¹™žqyŸ”aА·¹
+([Úrã=²\±])JV44“LYèÒÒpT{)¢´ëÙ¾—gHÆyK33Ì.1î²Øp$êCJôœ¸ÄÏ.y+¥)J­¤Óy4²œÊd­:ÂÜ_ƶãHÆxÊ9™æöd `HIÔ†”-é9q‰ž™.yJR•Zɦ,ñic8*=”ÅZu•1|3ΑŽYÙÞû‰hr¤E4--X~X¼Vþi<Þ¯Ž’#Ç>?y':°¶ë>ñÓ?:¿±Û£:þ¥Ö´I?y{þ¿â‘ÀóÔÆ¾Ôiìîå]èÜ—!^x°•¿ÚçÎ2¾yÄuÅñÁ[¹'N:îÂȾÅû­iÆ.£í[ƒ¸ù82÷¯û"íþ0? þÇ÷@ãú—ôþ$»unè9þ¾X®Õá™CGsúFÏíxú¤=žúfA™žI½žŸo„øž>2í	3@„?97:UUUUi£Ñ«5¾Ä;HYÉÿâÐØÙψbNFBá›íNæïÜÐÒ¥¦êÀ;9ÿ»ní×~—øméauAY3¸]Uk
+]ÛTŠG]DTíõC	ÔmÒ¥y¿S%ê\Áü”aÛv»¤Rà!—VYg×IqÈ-†J‰ªë¿cõ HP ±±rQ)þ+|žûÿkžYÏ(\sÁ[Üu1I¥åKÁkR€Äsœý˜ÄN× 0¢š²3ðµœçH¿}ˆënÂS¥qÕl¥&fpú@
+¤Y²Ü PQ?R‹
+Kr “cþ£¼ƒ6ªÅ×RúãŒeå*– óÕÚˆµ\$^È…¶ðaþ½OF±•ο ‹‡Â,̬síDæ7Ãv4Ù翏`!+»4°AÅEFTCe¬ˆ3d®{™™†€dF3ªÛý:úg¸íw·Ï×ñy0Ç(‹iBZDóØÙÁ'RD`°‘KJH‰	h‘hI¥$La
+¥„Döõ „÷É—#B©º\¾É7ÊZ5 Tz7H$Díèûi©÷Ï_•úý^ŠÇÊÌj?¨x³1Ä’ÉU÷p}o«ß×Uöþl¤`õ{å< 	PËú}/xÕ$¿?Àà‘¯ì¿œâ>:I~4‹k>/ÒÝ	`©ç7; ~F>úµm¥˜}ëùö×ü½còðñU
+ß¾Ûî储¤Ÿ<$4‡ûƒ!=¤§‰›û¿Z_™ƒmýBùíöì“áH¡UU6Ø¡–rvy©…gãkqµ¤©[³ž±­ì(X?›ž»_[)ÂoI¼ŸåFJ"Jª!RÐx	¯Å á’r•( Fõ…lYm‹-±e¶,§Â= }mÏûóì<NÚ
+ŸÞ¡¢¾Z²”Ve‘-D“…:)mÛ«ûXb)…=cß0ê£½ICUº<~QŠSôbÚÀ-ÒW TöSœB±è³øÒÏ:ù)áìÇÇo˜»l¥*¨ª¥G´j=…žG4‡²îù¯ïS]RY=ròœã`rã‰.:‹µ÷†+…i)ëu1‰KÚˆ½cÀNt 	}é¨ýÑ: h‹rÝ›ø
+sŸyõ=uÆ­ÃÕØsÍêÙ$}.
+‚v$õJ'‹ÁÙJŠRdöw[©Nå'œ7ÙøÒ=´2ªªU=¡¤YC¦X=<ÔKTEÄaŒ’–ß’^ Ô%2Ò•‰„,˜àÂIFI‘`.›'!òµj`‡…HéÙîwoZ p­j	'¸ŠüøÃ\b»ÜDØÅ†”T*¾Q礤Oˆø
+ËE»q2¢­èGNáhNò´b‚Ϲ¥ÁrT2»Ó€Ü°ô‹aåÀ²UHâéÖ.çß±Ý]»/~»h“µŸ1¯8*‰ß½d…Nu#g
+h¤…Ò|ŠGXg—ôC”ÅDœ;Ì{ü³â¨ ‘<_Œ~1_+?4~¹ðÙ’Z°ÀSÌu|èÝ—hK•
+¢B
+ÿ–bDð8)'Àaí!õ5ÏãQR ‰µÔ¢åß¿mó'ô”2t9‹;C”"ñ;ˆ¾\¢Âvˆ±¯±{òo¤µ="åËÌj
+D*¤—åazê^HIZHƒ…Ùû»'ÚŒ	Γ‘ΖTI}uèx*“Ùñt0…l#ÅÓ·Û|{Þ¡¨µ}ŽŸÑØ‡£é¡§CØï;@¤¡¯4l°÷ &Œ€‡|dé?V"›ˆ¾OSú઩ÉàñƒtÈ¿:<;¸«ù±Ž¡êI)ÛQ:”ìlõQ§MœW·ÆÇò³¥˜^Ò•	TœÊf¼·<…m¥q²ÛÉ9õŒqù06º±L‹Ñ
+(.äÍ@Ër6ð[ÒâÕÏ!<½—"«¢’z~F—Üû~×ᇉyЩÁkŠQ(¦að@B‡¬$£HG¶FâºkŠŒwYÍâÂþÖõ¥ç-6oXÁU]]-›X*>0Ç\ñg$©¯ÙiûQ¡ù‚Ñ’˜Qn¿8P=@,¯00 @0/é=ïQ|ïsÍô©õºWçÑRü>½ñéÄïÅðmz8”kIFñ`«lÕ:¶û/ôz,陿w×òþÝIþd ŒºAàû¿“ç~ªÏ$*ÊR”¥Kwoti*N•¶Û¿&ìz¯•Ò¶VJû/¶û¯ÃŠñÔ Æú€Îƒév7cøÛ÷Þ_ï¿>¹0“wÏÝò¼Ðû¤·ÿR{V|iüÏŸ°0$ÒÂ3ñT?‡4C$:2Oî"z3ýû¬²Ë,²ª”¥2MãXÖñ JÒÖ
+邊(¢Š)Îþ?ÇXûð…ÁCˆÆ.
+ٍ“ú#tr×,cÆ7á„oÊ´ÛÀ¸À¿ªÎE¸k$¶zSx0ÃQB„zíÊ7£W¾Fôú–D	€ökèµörøû¬ýF­8t
+
+†ÜÞ‡xb
+
+ˆ± =×èëôv—õû¡äRÊ%,”Cí´{†$,ó™!ë?!]i;"Þ¹1Gø;bT”‘*ª¥UUTA@Á=? ྯl€Øù:LFcöÇîZmqäõÇëß$™sQ?*?`©’L[‡n(ź+ÛNÀe;i¹û‡$^/)RV\ å#¶Æ9ÿ|ÿò¹þÏœg±âåQ>"¡“â¸ÏÒ¼X…+fø[ÌWˆ¡l¨Œ×‡=eäN¯;kù½í½"òW¨vó…þ}PÝl$
+-2©a†$ìÉnw–f“Áä,3b4ˆ‚tîÄuóóêc½&Wõ³F옲Ù¤¸6I7rŒ£l(eVw
+²¢Z¯<±&èÙ&ƒˆ.Ë%¶˜Í*LÅ]¯ê	
+aæ,¼õ!4mΣ ÐIꉍÁy¦åflYHþêIRQkÐ
+6oß\»‘0^t#º:©Á#vô{’‹vƒËñÓßé¬0ú|¢bL•EY§ÈèÞ;ÏöƒXÃ0Ã
+LñANT…QEOQt‘nÓäiø+Áê³)¬VWz…KT6GŒ_¯£¢úý‘JnuI²Ê-_c¾[âÅ$"™Ý>ßp³½óæŒ0‡ÏI;–3²ð<1‘%¤pT:éì¯[§ÃsèrÐv|¼v˜PñæÓq#¼×M§êL~…yü1F¸C.`ˆ”D<p¹î[”osLÊrGt;;j”î`„X…†¬ÒIT/:€~„T^p|‘ó[¾ªb#¹ª!	 ChOž )Pê&̤û`3*‰Wst„ñÙ×¥2…¤èt
+RPºs2C·|•CJÚ
+á"­RëJäH$­¡Й¨žå
+G~—õŒÁxzä0¶6k­Š‡8¶‚R(rø¤ŽûòPÌI$UD%T„UHET„U$%RBU$%TBaSÂ(„¸©%TK£8¶£‚IÌR`w±ÐÊØÈËoÓ¶0Ü®–¡Ö
+Ò‘ê£H¸Ê(%az¬‹Òª"…JT›b‹X  ªª(/Á–ª¤¥•H¾Y{p<G$yšŒ6T­–P÷8 ³ÆÑÊ^’CFY¾ ðd9ˆ…‚wd	Óˆñì2	P¥
+J‰i&Ê"ß4Æ{<0ôÃ=²¾ŠŽzÞÛ^a{ò^)	À——$,qíäQHòñڔŸÏÏ„ÞÙ`“ä5d"$ŒK0'ŸÛ¯Öà,1‰¢[ó:ÂõÊð“tô’Ù"IýÔª|ø·Âvmõa pƒJ7U{aiàÂ˜ŒÁcxÓJ’196nm¶"¥b±1.ÙõƒÝðq¼L¨©R¥UÝò{¸b/û}xŠò­›:¶Ýµz‡¦‘6Tzm}=ß	œ
+sjš(Bh0%¸MQŠ_6¶I8‡²°qÒd“;Ãjø^ìgF>ÚÇÍ–ì šO¦¤ˆ4B/I0@IÙãÛ™œcjÙ¬‰ˆÓFù¸]—mr:1TÂb»J1×v©2»9S*çVÙ&<b‡½1³…"–(,	5³ˆ©*…PªÚ—‡éñ~wåæõü™ìl[¬XIò¯qq%PTóÛí‚Î.ì'’ë,ÉœJít‰…_½žr¯ü^k0…²F®ù Ù&1΢÷6ÅyóF´
+ä÷Z~D Î¸×ُDŽÀ•°Èfý/iŸì2“¢ou$úéÉ71)¬)‚Ìönhœ}èz~°òCµ¿“.m€çAfPªˆ	³#•À1Ýla<"âpl‘­0sç÷ ‚2ÒµKÂÕ´•¦“p ªçk°È[)3ç0hÄ_$Ì
+F+mXÍùð"•¹…ÝðØ¼»kûû=žÙ	Í)JU;|
+Á´PçJ)AWr/Pà[(ýÙ5Ï4|T¡Q Mß4Dð"G®>ŠaSXp‡_@>ˆÜˆW ]æ6Ì=5Ø*˜e{‹]ûO0–ÍL6ñnúõ"h¾A„ˆ<	DãVþ¤QIj{QEQEQIï`¢M§Çç'ìêûžÍàú9
+w!\ÀÆ,´J޳29³Ó¸ ¹„©Pº<Ç?q«`IÃà†® Ö¹¬D¡Â¸zòá'òRg³X’vÇXðÓ×yê¾I¾åë4¢´(Š ÁH"jb°ÐÉ>0±	èaŸIftRH²		è'@ü*ÄÃs­Û9­7Þïô‹[€ô©¦üZž>€Ô©²¢ÑQ7%MH7¢Œo¬¢;Bªnþ‚šÕEÊ 7 ßçå$¶ƒé·ßŸlc‚«ðûü±¾-2UI*³z°x ‹{g¬oõâ4}6]!ë<gi’åðŠpÀP;¡¶I•y-Ÿíiý¿h¨µURòIÊ
+)µS…Ù^ùýàñ>~Ú}>¹ÙóÃujÒU~£ÝZ¤œåWJ-ËßÓ±†ï)#Ö>‡À›”>89_ځñk"í»kõgd‰­(Pð³HO"D¨²IÝòð~Μ_R‡ÓºHl¤¥U”¡ZÐc¹ŸS§–¸:Ç„fC&G€’hè)sÓ¬å‚ÂhÕ=ŒF؉hˆ&+nÉ#sˆ‚PÖ&TšãsôЉª
+Af³4IÛ$êÚ-ÎÙt)H¤ß¤Â¡Ú¨rÇ€M’LÅI(VÌ5Ѝ>úÙUR`ÄZCˆæÝÿmA˜Ü.B¥IC¼¡6¥{+
+Å*ºH5W¶!CïGm*h]hëÀPÃË"ìXD©ª—‘ b1”‘÷rŒAèÍHôáRh4R´²$«²„Ko‹Ë´Ÿ§wXtœJQH@ }ôà
+eÀ'×E$4_¦8¯‚Uá1»2D–~?ÔØC¤*I8wµá'4?To‰Â½ƒ z£vðë‘é‘álŠó½ª±lûó;Ð(ûûÑ& s•Fõ†X#sp7¢4‡`àšIKB€ÒÕHÏd1§¥‡g³f*Èo\»ñ&ÂëV7tCfBc]t„ºŒZe¦v
+FÌUiÛ™I!ä¡8;¡Q:ÑuQ~¤RuÜ1’^…b/ÑQz¾J.ª®ò  åo¬ÇƒgâW‰=ª)é[¤~¼×FrD±s6&š@iè"3ÓØw«”9´ÄóÃ4ò.’kÔDjï14¬¡2ºÛ+®‹…ï‘•äÆ"-
+N ^l<²5Bb¯.7òX»Ñ9¸¢žo	ó­„'Û‚
+T¢"~lG}d½ŒÐÔ¯Õñ 8€ ŽÛ(Ĺx'eZ]aT-
+²/.öÖ	„*˜^
+°°°²ØöŒ.FUˆ¢J¡RT¬jÙU‰'ìmï‘ûùk
+
+íXsÙ03D}[øå–16dVz^Ås©1R1ãXÞ,Ä^)—1˜PNOjUJȯ9¯‹vð˜".8 Î	™&Þ€èØŽ=ÑN¸sÔ÷Ã¤g$ÐQd•DfÅHtaƒ@œðç$Å"ö–&¤”ÞªÐf8ÔH¼
+™¬ªëÇ0VÝ,útE¹yÀߎ‚x@¥*býÐé2IÙÝÙ[{	PÙ{HUêÖq
+ÄR;h&7ˆ‚h¨Àß/3’'Ï0è…ã8÷¨Gp1Ù’%Þ™V6[-IH¸F·À;ŽÓ¼ÖI9‚¨W¼VMü’Öîl¼®¡ãÑ
+$‰ÕµšˆÚEÉ[œ]ÀS•à©Ï˜+) k°(ǰl¼JK|“v˜ŽªƦêFR`›ÁÅ	Ñd>qJR•¶çMèVB¬¤,,´°²Ç2lÀ›¶@5ž¨,?pM©IâHMD–gºP‘9®Ä"ûåÄä=`:¬Øwžúä ´J#¤’Œ@L,„(5VaªŠ¤'p¡(©U%J‘’t¯ãÂ2ÒZsëÉÖ
+¤æ,ˆìôŽˆÿY;™Dt¢«E	9^‹D
+PF('0ySjïy£t1v ]õŸ+nŒm­™Ê¹7×	Rq™c‹Ä^&Q="­HÈ)˜¥ØÀ! 2Y()N3{°&5 *DëøWFÑ@Ï8\pôOi#úÛ¶ë]-·a-‚ÊÉcŽ/–è“®¢òtÍáBÓí¨ž`ùoh«ïE6:†œÅ(Š~‡^ÖÁV‚Á§šÆçByM'Âè“·p6CŒæ^UŸRªξ…÷ €
+x u§!‡ãy$Fë#q)$TºªÂÖU-nº½MÌäžHòYþ|¿D\5‡)3‡ÇâVå-DÊÉ%§!åØêÀwóþŸ.ÈZO%wµ	8šÎ#¸l©#ÑØ°´P©ALjÒõà0Ùú³¤¦£”*RLbƒZ
+ßB`yedÎ	hɺ¼ä܁U „»µTpåƒý98HY™m+êÛI„=”‹#E"t;\¤’ÃÑÁŒ'w9þ$x¬2ó'|ÃD“Å]`ìT‘n²`¤Ÿ,Ó×óW¿ÎKYY"u‹ß-.×+ã7¹­wnûÆÁ¬Y'Z{ÇD†Y`%ínö ÂIðrX]³ÉiúHR'1ѽù¤GÙ ÒNÉIõÞóp²sßwàâ‡Ì#µ$fHÊF
+ß]C!„òIê]Ð$¨wA)ª•ɁtKö¢Y1^DµD¤pA˜ùã·”f0ÁM]€Ð´ƒÞÚê*·­i(R”>;ÇÏ7‰€TaS«ä‚…DI$P¨IÓTç”$eb÷^É&§íö[8Á!Bëˆ‚!+
+{†UöÚªª;¤YP)x€Ò ô„ª„8¸0	ŧºCÜXëÍ…½ÔÙ—áo-ä´çá$é†Ôl	KU±áÚ«ªÐì2_,„Ô
+¸I2r™Ø´Ilg¢¬JæÉ6#J‘J’3ïèŽå4j5 ï¡mÞ1°lèX{öÈ€pŒ£Ö„qH;UëV“eRuö¤¤Û:‡Æƒ°cÏ¢ÿÞ‡fà<ê¥ Šá9å,(
+ ‘¾àœ˜"œø¹¶*ª$¡)ãN:¢N©2tå›:•&0>P™“
+î0Nb8âÀLbˆHD,„d1ŠOpÒC%%¡3†4ÎrˉNi$îÁ—SbMn²Œ£H¼`½Â"	CÀ`È//wg÷í2‘d
+›Ú3qYiy.Q…¹D©';Mo…_ü»€çpl/ËJX_-›aéiqœ+;´1š,¸´€Œ@ƒÑ|×@ƒÐN…UÍŠi¤ßÑ9M@A@ÂcŠ”QzkFå˜ÅUE£·^ãTdù¹ÓÜî|@
+é9È
+û$•+Ä›¸1 ðQqä´¢°²?ÅyOá
+7Šœ‡@¼½Â⃭„L¤1IÔ僺e†öhKɈ[:³”B¤FíÀ6#€leô£©µ´0	Ç	7U#ªFÊ+–9ƒx7‘¾†Nµ“n€Î5“"^	ŒÙˆ˜÷­'lUܝ#â;±ÃG’KІèì²á¼Pa%ðXc@¼x'F(ÛX‘’òÌl1ˆ‚e&=”	(<°ëD‚m
+"&¤Ô^õz„¼uõÛJ“dH¡¢+ËF N5íkz,:ï¿®ÁÖþÍâfºL‡Ìés×òòBÈ›œ§i¬¼ŒÛ4’ìZMIŸf6lÄ–ÑKÖ¬Eå¯9h†€ãZÔGSS-€Ü齬:dkõA7ïÏDKlÏ÷´Š‚UÔ`6et¤µób_F…7aŽK÷ß±ñǬR”ñˆO–‚k"ŠÑ0h™6„56ƒê™!*B!ØñZN|ÝÙ<ÆBʰ‹Æ‘Š$ȇ\°^hèyÝ0DT)BT7Ù½¤”•T3WfÿeÉifXÇcdãɳðýs%ƒTEMÉ&Õå»0yãšDÃt*u×]áÆãKt‹"(å&Yb܁‚4©DŒhKTpÈa0LRl„ä¶àÛ*BR5ÄÆ›¤gB¦-4ÑÖ6_:*ÐŽáÆÚ
+é:…C9Žcu†<æ½#pØ6ÇÔj5¹NGøß.¶ZÛá—L–Ö/kuÌ–´uƒ‚§­ÍÓPŸèRI ™¦°ƒñŠÝêá×În÷øwu’𣧑"`y+„<wu$š}Ðp¢D›<á-#öøúv¹Œ~½]•	—ã[',íìlÇº¯Ola"÷ì”xSÑÇËŒ÷Ћ‰¡­]1ù¢^l—¹šÎ(Åã;jÄ^¤’}G pðE"¢•Se4٨첨pýÂ$=´
+R¤ª©$“£6ø6½5!ÎÝ.ƒŒ=A2¼~?mëâÉMŒRc®£ZŠ\Ty•
+@’É	²M!!
+„	¬àEØ‚Áòp{qÒO¥mi õû&»ü繉8¼¢$Í$UIèØŽq̼’¤¢GÏt¬_¿“h]ÉØ2Ó?á"Á‘Hê$X"’PEDqSx¦IÛ¾FXÇÕd‹"pð_plÿPëÙŒJº`Ç
+õc„“Ï/E¯l^lÖøQ,±B“pæ#8.ÀØ ¶[1Ñ&É3‘ýQ6eŒHPùEì…Pzž5š=±QĹ;¿çEPÿÅÜ‘N$b,@
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,206 +0,0 @@
-‹ ›Ö9K ì]moÛ¸–î×›_A`¿ÌÅNzù&Ê.‹MÝ´
-&™f›d‹{/E¦c¡¶¤+ÉiRì_RŽGò‹ÄÈœð<D£Z”HJ‡ÉsHõäLð␇´øÛ›=+øž§Ä÷pù›p^ð†Š©‡1'ì
-&”böyû*Ð*æyd½¹¾In¦Q¼å:™å6
-d½ùOó4ŒÞÞ]ç¡,ò^'ß#TÉÌ=0¢äÏ|ì½A¸ë‚¬ƒãò?ü»Á;Œÿyøï‡¿ÅÄ…œ¢A’¥IQ£ÿžGá·ó ˜ £,œD…‹y&ÑÉß¾ ÏókT$èøâ'Yq€ž Ò#oñ2òÏÃÃJ,}Š¥õXöËTì²tG—'èR†“8™&7‘ÌUqCôõ7xŸNÑß?F™TÇßSO„~:Ï¢YÝÿu5éÿEUüC'MZ&}!Ã$UW¥äOåæõ§òžb½z¬xŠõXÿ)ÖW±‡oä쾞¾œéÒ¾Eg÷YtHð'ôaLϳ¤HÂdŠ~= ŸÔéÃóÁÉñaï¨ZèÞSÒ½zÆý§Ø~=6xŠ
-ê±£õUê*þ'ßc4’·Q(ã,¨ÝHšÝx]»‘6»1¬ÝÈšÝ8ªÝÈ7Ò&Õ´Ñq™ª/±b:ŸÜçQLÑip/³’6×Rô^˜"©¥(=©ËÁovcU²¡äIU²¡äIU²¡ä‰¬ÝØLòd\»q­äëU¦_¹qÜðåPþüF²³‰^_3‚x„N£øÛCù*o¢\]—¯­~¯—À†L¾&ó"ŠoÊ<[œFù}<©e²Ÿ‡©æÃŒ”§:ޝ«æ¹,E6Ouw\dÉt*³JÜ(‡‹{Uè:âàFÎd\<=H-ýojmúŸÎO¾”¯ë"T7„tŒ¶d±–¢;²xx#袊y^föõèbK&ké¼#“ˉw1•“õÖ¿þËLõ!åßÉp¾8³ìDÜoLK¬OëÃÙ:Žo¢XÖ®_+š-ׯ}Ï[®_ûʶ\¿¶áÛrýZ…¶åúµêjËõkµÔÆëƒõïÿdð™`tuñ]}œ¬0ý[µ!ÖKdK
-^-…µ2Ú’‚¨¥°ö©S è¸š­$q½íE|þ€Žæ£(ÙÜ$…O¿ë•^z=Áõ|ïø=úÝ×Q~•Å÷$û¦SÖí®º¤Y'ý¥)—eæË2‡µ«Šõ–±£zì†îì™UÕĆ~í–ª"ÛÐÁÝ’«¥ÐºÞTC>	^Ö_SÃîMP퉩·<G©V¼G—GèäÃñæZ9^ßš-R¹8{¯tÈú{ÿ¡ï]ÛR-KðGäͰ:ÿ“fI¸IÀfóD`L™ žžÿ!ž€ù?¨É?LçQ<NºÌcûüaÌ+å¯FIÌWòçžóV e.ó<ÉþòNÎne<J²a4R¿>ÉXÕY¶„ªV q0‹¦÷*FÌ’‘œþEý—>üÅÁL>Ý´h?úúW48¿Zi^ÿi‰«}ÛgŸ>ÿ8P]ã4UÃ-T™ÉÙç:]âõUãƒ0'åѝzô)úåýAº–%yt­Dw“ëKÂDõéUDù@:I}BGñƒ ÂEQ‘L.N–çÆé\ÇÞË\ÿw(ïB™êÖÿáœæÆMå­zxu=9øž>^>
-TþꇺÝΤRq(Í%*òÍò¥D3¥ò»^™#ÊeŠfE¦bntL€ÂYr«.+ômL p:žÎó	j¼¦šÍîÐøN%•«dÕ?ªþ IŠJ¯Õ™û\½%ˆ;”©{ÂMgêÑcU½ãb¨‹¨AÏ0•Ùx¦ÔY*¯st­ÒÎd:¼I’Jc•G¢^J’¡Q>Ó©zŽ;$s…ÎLKŸtW¤êUduŠÉâ 5cªÁå4˜Œ‡*ïh\'7É,JõÛ÷zB¼íùËçz©àƒitëÑéâd0)©ååe¥ð0R}»-Eÿ3â½Å™Û(+æÁô M¾«~Êìq”ûîà`µr“×V¹ÉæÊÝ[S¹{P¹÷Z¹½·þW¹ék«Ütc妸^¹Õ9¨Ü¯¶r³×V¹ÙæÊM×Tn
-•ûõVnþÚ*÷–>·¿¦[âCåÞwåîÿa•Û{m•{KŸ»¿¦r÷¡r¿Þ–[¼¶Ê½¥ÏMÖtKTî×[¹ý×V¹·ô¹ÙšÊÍ r¿®Êmfýρšýg&gví?ê¿~Õÿ›{Ìû
-œÉÙeRÓw‹V™`"¨OÑ·÷*æc&å»eƒÍ© ´§cÞÏÇcõ2c´cd_蘁æïè)‚{¸ß+ï¹ø¤ÕX„uÌQXD·OÙ¨"øž(cNâàY'=âÑej+Å&Ø£”?æ³RlƒEóA5÷+™ëØE©Ï¢B^á·ÕØEÙâ$>WÈã³rì³òž³ MŸ=ñüÅ{»˜×ϲa¾z 2æ«§A4®§‹òQÊh™ÏÅUœ-â–åöø"û¥¾á©|ñv~ýx1¼Òmú2µÇR¿Oæq(Ÿ?ê"æñI/géó{Él§‘úó®Ì_`ÖãO1…
-.Ê{ú˜‘²l¿Í”–IÂAhómßg=&ü•È«üá-QÑó"zˆLæñ·‡Û¸è‹Ó‘Ÿç7²|ãÃùâ•Ó+Â]=ý5¿­9}1ÏÒg§S}Z)’ÅIŠù²nȰP2åË:à?<ýc=+ßfT÷<TÌÍÜnPkÿU…êzÐööŸ_ÔìÿØ'ÐþÛ€î#B	Q<Ž<Þï©Kx˜	‚„ ê”jˆ(Q¤Æ‹¹=¬®ôUYµ^qâûHɐ!u]^E·¨ºJ¥K|}™¯Ó¢\©D{dyELxJµôa*{ujÇõINá)åñp%C¾ú‰Ue®>íyH‘!áãåE\qUÜ+¯òÕœ•‰,¯ñ´†QÍ‘>,J¦‚z ²z‘ŠÕW¨(%e¹8õ|Ĩz&•$Á¼¿¼T=<VoÈë«F“-ž´¯ÊÑë#ýåUQ\dZ
-ôú˜à¾¾¦×ª”:;‚ú?àYðÆlùƒ®½ @€  @€  @€  @€ ‚i ‹¾¿&‚ ê÷´÷ˆçªCDé&B8F}í)ƒ±úC™@¤Ç{Û²8‹»B%¦îà;¸.¢™TwR‚û”¶tÚ—9"„S\þ·Ù<Žõ&†äá÷õ4	¿É‘J®êÿ³êÿ•ßç{Ù¼Ùþ?XPâûŒR½ÿf°ÿTå¿Ø™«ÛzÐ^þÚÇäo›äŸ—›†vS
-ZÉ_hÿO‰ò·òÓùËë@ÃýßVü…çƒü­ üµ;ì‹*A+ùs¢äïsò·‚¦ò/’´ÜÐØ¤"´“¿Òÿ”èn ÈßZË¿˜d2
-
 —ël›ä¡Ì7¯ÿÃJ÷WäÏ™Ïaý‡
-,eðóKþÃù+Y
-åZó¹êz˜á·àF£Ñ®<vñcZá¿G|ü·Ìu­ù¯·ÐhÀùU´ç?°þß(ðßi˜ñ¿Mïߨÿaÿw;è¤ÿ?C+ò'ÅKÇÿÃi”ïÚ/b·þçÕþ?g°ÿƒПp×a¼Lÿ7a¿ÿ	¡ÀÀ‡>ðßa4å+rH³<4÷ìÿWÿÅÿòrà¿ÀüŸÛhÊÿr¿Û©4òÐoäÿƒ}R¶Tï	ö_h+½= díªA3ù?›ÿ¥>øZ¡üG2ç±³ÿϪóÿŒ0úߎç'èãÇÏèä×ËãStöûÑÉ%Âw¬î)x0äÿ<nvòŸ*ÿU ü·Ñ×kXz0p†üŸª¿qxß,öóLx ÿ­€Ðô.Ðÿzbã<vëÿÿ	ðß§}Úç>ÚaÈý¯ÆyìÖÿÆÿ@{§aÈÿòkMó0èÿ3þV at 1ôÿ]†ÿ‰ûû
-Ê¿cûOmþ—Phÿ­`ƒý”‚#0ä·öìÕí?àÿeÔ÷Àöã0ùß±ý§6ÿ#`üg€:
-Cþwlÿ©Žÿ”ú‡õV@‰G…€«0äÿÞí?ö±‚ôþ†!ÿ;¶ÿÔÇÿ°þːË0â?µ`ÿõ_V`(ÿ½¯ÿ¡°ÿ—l°ÿPP
-nÀÿÛDÝþã?+ð=&` waÈÿ½¯ÿá ÿ­€Ð°ßaò¿cûOÝÿæì@{Z{‚À&`ŽÂÿû·ÿ€þ·‚˜~†!ÿ÷¿þô¿¨W
-€Ã0â?¶`ÿa`ÿ±CùwkÿQ½çû¿Âúo[œ_|8=Fƒ/_Ñù—ÓS¤‚Jp†üïØþS³ÿ2ü·èý¹
-Cþwlÿ©ñ_pØÿÑ
-€ÿnÐÿÝÚêü‡õ?– üw†üߣýg1þ§0ÿkh œ†!ÿ»µÿšý—þ·Nû¼/|Ú÷ p-ø?Îä¿öøý§Uþë_`ÿ±¶òO⑜ñ¨ME0°ÿùêÈߌ埳Tv˜©Áö<´€·ÿ±ºþÃãàÿaT¿~Pý΢þgÁÝæ<v÷ÿ«þß‚a˜ÿ·ò hÜDWü߃õŸŠÿ°ÿŸ ¿Ó0æt'™Æêêá4	F[òØÝÿ¯ÚÿöAÿ[pßmóž‹I&óI2ÝÆ}Ýü¯Îÿ{°ÿ·%ô pÆü/-€yp+‡×Q°íõ¿'Àþo@·Ñ–ÿy”£þYp7Ô'šä±“ÿµý¿9ƒõßv@ûÚÖ­€«0åpDÓàz*‡7É­Ìâd9vÎÿñ*ÿ…çÿ,ûs¨|¾4%Je6N2uRýÚ…W޶ü×~€ñ8Ñþ­ô»ïpÆaÿG+ ^_€þwmùŒÇ2,äh¨N4¥Ãnû_}ýþ¿ÀÞ¯n£-ÿ3©—þ¶¢¿	ÿ¹úß
-€ÿnÃtü¿õ7Éc÷ü_Õÿ3úß
-–ãhÜÄËçÿô鹌ÃHn¢Ç.ýOx•ÿ>V§€ÿð0ÿÔQ”G¿ÏÊ£Ð?ÕÑ{ˆg}^© å‘О>’~ß+=AË£Oûåq1¯ ˆÿÏalÿk9ÿ×Úþþ¿V ónÔÿ¹,òTÊ]®%vó¿êÿÏ|ÿÅþcçó4M²BŽþZç`ÊÿpžíÕþÇ ÿo ÿ݆)ÿGYtÛt Ýü¯~ÿ›c
-ë¬ ÓèðA¸Ð¸cÿŸ–þ¿mõ¿û[øÿº¦ü/&2›S½æ/)Š©ÜßþOåþŸ˜
-ØÿÉŒå&ó¸h–G;ÿRöÿÀþkÐò»Æý¿ œ´jôWЬýÇ‚bŸ®â)ö°í¿
-´“äm[
-Úëâcò·#ùçя滿7Ñÿ^EþÔýoêMÿ] waÄÿtrŸG¡
-(ÂÈadETDÉFî´ïÿ‚ÿ· ¿Ó0âqŸvªÿIµÿG=Ö[ÁU#	î߮ˆÿSy+§Íóh¯ÿ©OÁÿÃ
-(0ßiñ?L&2Óß] vMìæõûož`àÿa‚Cà2Ìæÿ&A¶X®€|§p7ÿyÕþçØÿÑ
-èϰÜeñÿ{pŸ“ñ0Èó$Œ‚"ºŠ-ß‚7˜ÿ£øo=`¿Óx©þŸéÎ<vñŸÔæÿ¸úß–2øù%ÿá0ˆø³Âˆÿñ|v-3ÝÐË@wæaÐÿ`ÿ³À Ë0à?¶àÿ%|ðÿ³#ùwîÿUmÿ)ôÿ,QpÿrFü·áÿü·ðÿrFüïÚÿkÿ·ü·‚A@à.ŒøoÁÿöÿ·ÐÿnÈÿ6ü¿ÀÿÓ
-ÀÿËm˜ÍÿYðÿ‚õV þ_nÈÿ6ü¿€ÿV þ_nã¥úoþ_À+XÊ ü¿Ü„ÿ;÷ÿªŽÿ¹€ýí ÆÿnÀÿÌÊþ_ü¿lÀHþû‰ºýæ­ Gúàæ0ŒøoÃÿì¿V ö_·aÄûÁøÏ
-`ÿ/·aÄûÁü¯0`¾Ó0â¿
-ÿ/ðÿ¶˜ÿufóü¿àûïV€}h †ÿ;÷ÿªêAìÿaÜ?ÆKõÿÞü¿@ÿ[ÁR/òÿ¡ù“ˆÿûU×sÁàûÏV íÿ@^waÀbÅÿƒÿ—
-É߯þ_Ðÿ³ØÿËmñ߆ÿðß
-ÀÿËmñ¿sÿ¯ºþ÷ÿVpçE6uó
--ƒ0â¿
-ÿ/˜ÿ±ÐÿnÈÿ6ü¿ÀÿÓ
-ÀÿËm˜ÍÿYðÿ‚õV û¹
-#þÛØÿøo þÝÆKõÿÞü¿€ÿV°”ìÿå&Œøoãû0ÿo„ .£ÿi[—¯gÐoîÿ¥â‰Ï9øYASùIšL“›{“ŠÐZþ”0ÂAþ6ÐZþÅ$“Áh˜G×êmÝ4z#íúÿZþœ	XÿeÐÿw­ùÿèû—á·àF£Ñ®<v÷ÿi…ÿñÁþo`ÿw­ù&Yί¢=ÿ)|ÿË`ñ—Û0ã›Þ¿QÿsØÿÕ
-:éÿÃúï?-^:þoâ ´[ÿójÿŸÃ÷?ì üÜÆËô#÷?þû?Zìÿæ6šò?‰µ«¿Yšá¢Õøý+€ù?·Ñ”ÿêO4šJ#? ÍðÝö_,(öIÙNP‚õ÷ŸÀþ»´•¿z[…lù¸fò6ÿK}ðÿ°Cùd6ÎcgÿŸUõ?#ðý;8œŸ ?£“_/OÑÙïG'—ß1ý'`ÈÿyÜ4
-ìä?!Uþ3þ¿V úÄë<ŽÂÿSõ7·¬ù[Eûù?&8è+ 4½Ë0äÍšOîÖÿ5þà¿0Î{˜ˆ¦Ð¸CþÇA—ü¶ÿŒÿmb €t†üO“ï2kš‡AÿŸýÏ(½ï2Œøßò&ö½þì?û‡¡ü;¶ÿÔæ	öß
-6Ø@)8Cþwkÿyöý¯û¬ÿ¶â¸î.ùß±ý§6ÿþŸ–À`¨Ó0äÇöŸêø©À Dxœ‚¸«0äÿþí?°ÿ‹€úNÐÿÛêãã+ @.Èÿ-·ƒ5²ÿø`ÿ±Cùïýìÿeì?à
-èùß±ýGÔúÆVà{̃@Ü…!ÿ÷¿þô¿À÷?܆!ÿ;¶ÿÔý¿`þÇå‚{V8
-Cþïßþúß
-àÿá4ù¿ÿõ? ÿ­@½rh †ÿ±ûö0”·öê×û°ÿ»ίN>œ£Á—¯ÇèüËé)Ò?A%¸Cþwlÿ©Ù†ý¬ znÐÿÛjüö´à¿Û0ä·öŸ:ÿaý% ÿ݆!ÿ÷nÿý?ì` 
-€Ó0ä·öRã?ýoœöy_ø´»€8‰ügò_Fy”ößßaÿaD
-ú¥Tÿ‰èýèÛŽvçãïNd6¦Ãb’%EÑîC`ííSøþ—Ë?LæñîO¿–h?þçXÀü¿@÷ßm4ÖÿA81ûúcÛï?–ßõ0ƒößÚÉ?ŠGò®åêoýO„ÏAþ6`$ÿ<úÑæSлõuÿêþ·õ¦.€»0â:¹Ï£Pô7á‡iQ%¹Ó¾ÿ/<Xÿa°ý—Û0âqŸvªÿkû*­þ?VpGãHŽ pFüŸÊ[9mžG{ýO}ö?+ø?öζ¹mË÷óÚŸ‚Uó¦37I ¤ÔöÔ¦m§ÛÕvâÍÃÎÞÛ·KES”ÍYԐ”÷§¿ %Ù›ä1uv²øÿª;²(”þq œƒC,ÿ´’þãì*ÉMüïr Ð4Ьÿºÿ_ÿ±þ“… O~·ÚüßU”'ã‘þ@7 E£°Yÿõõß^è#þù<@`1$ý‰n‹Q6EE‘ÅiT¦7iùÈZ ÂüŸ@ÿ û›Ý<Õþ_GóÆs4é_ìÌÿy>ì?ë:xþ”?<"¾WHúŸ-®/’Üô Фl¡ÿÀÿǃ/0h3ýwÌþDŒÿ’ˆÿâ€Tÿ½ÇÕÛ‰þJ"üËfHúgˆÿÂúoÿe7$ý÷ÿõ­øo蟅£¨ŒÐØIÿñ_XÿÁì¿ÝôÏÿ…øOÿe7´ù?†ø/¬ÿ`ñ_vCÒ?GüôÏâ¿ìæ©öoñ_Ð?ë:@ü—ôß{üW}üïë¿XÀøßnúW,ñ_xþ¤úï=þ+Øõÿbþ—…"ÌbHúçÈÿÿ/ðÿÚ
-Iÿù¿0þcù¿ì†¤Žø/Ìÿ²  |«!éŸ#þñß,`þ×nhóûÿ
-\èŸ÷EˆÀbHúï=þ«nÿ©ÿƒðO«yªýßWüì?ë:xRü×d‚Fä;…¤ÿÞã¿êë¿=Ý€þ90þˆ×^ú,ñ_xþ'¤úgÈÿ…þÈÿe7$ýsÄAÿ, þËnHúï=þk×þ‡Ð?'³¢Ì±i¾ÑXIÿñ_˜ÿaößnHúçˆÿBü'ˆÿ²ÚüCþ/¬ÿ`ù¿ì†¤Žü_Ð?0ÿvóTû¿·ü_Ð?ë:@þ/;!éŸãù˜ÿgAHd µ™vú÷»†|maÞ>þKüE—2Íâ¿h[ÿe6ϦÙå-åFè\ÿR(Óþ£þ÷Oçú/¯ò$ŠôB_­ËVW¤[ÿßÔ¿§Bäb¡—þ¿Dù÷JgýßÅþÍ£øst™ŒÒqÓ9šûÿ²¦_÷  àÿ·›Îú³¼æ7é®(øÿY€þ톦ÿ.½RÿßõÿÇB/ý¬ÿþnyêø¿M P³ý÷êýùßxÏ}h×bžfÿ[…ÿQôoºÐ?Èÿf7mõŸÍL¨?íFáA§ñ¿~AÿŸŒÿí¦­þõ?éxšâ ŒÂ›ý¿n ÝPTí„nÿ?]ë__­2éø¸võ¿5ÿ+Qÿ<ëœqës4öÿUÝþ+ø^žŸ8oÞüꜼýx|êœýãõÉGÇýª\ô¬€¨ÿE]¶
-4ê_ˆºþ•@þg”?„~€I K!êªÿÅ¬ùÛ¤ûüŸ
-<ØD Ko3Dý—éuûÉÀfû¿£ý󠼁¾êB
-|ÌÚQÿ³¨OýoåÿÁøŸ“C< ÒjˆúŸg_’¼í9ýÿÒEÿßfHúïø’ÿGÂÿñþ{öÿìÌÿ
-<ÿ‡‡ü?0
-–@Ô¿þŸ­ç­ü?XÿÍ‚ð}$€´¢þ{öÿìÌÿ þ“	…Ô
-VCÔ¿þ7„ÿ翉¡’ÃÁm€­õ¿ÿò¿°p·¯Õõß³ÿgwüïaüÏ‚pá ²’þ%ƒÿÏÿfXÿû_ÿƒü_,<àÿ‘0
-v@ÔÏþŸ`×ÿƒñ¾øÐº½õ¿ÿõ?°ÿ,àùvCÔÏëvã¿0ÿÃú}ý‘ÐRˆúß¿ÿöŸ…CÄX
-Qÿû_ÿûÏ‚ÂèßjHúwü?þˆõ߯ÿGîÆÿ!ÿ;‡çŸNŽNÃwów§§Žy“`Dý÷ìÿÙñÿ*ñ¿, ÷g7Dý÷ìÿÙÑ¿yþ€þ톨ÿž×ÿìÆyxþпÝõ¿ÿÖÿ²pˆÀjˆúï×ÿ#vô¯`ÿyðäС"ÄJ:è’'ÿÜãóŸ6õ¯ßÁÿÃB×úÏfãä:š»Üÿ_¨Èõ_D×sóØQ®;ŸÃTðãϬ¯ÿð=Äð Íå‡é·–~ô?ºŽ¾>|Žæþ=þ;P.æÿY«*@`'}éÿåÖjýcþñ[
-Yÿéå,Ë“ÑL—M³hüÈ9šûÿuÿ_à†°ÿ,@ûvCÖÿb>*¯ò¤¸Ê¦ißЬÿúü¿üßLÐ X
-Yÿ•°ˆn’ÑE=.Œîöß$ôÏäo7]õ_ÄQ5꿎¾ŽÌ†6çhÔ¿¨û<…õß<È¡1`/TýG7Q:.¦Éè2»IòYöˆ8çÿ¼ºþßGüëþœSý¾y'Î<É'Y®7ê¿Ñ.ü§«þMàl’™	ÿNöÿqÿß®ý÷ÿ‘áØ{éªÿh2Iâ2ô†¶rhöÿí®ÿèÿ³€°_»éªÿ<1K;ÉŸ¢/„ýgú·êø=êosŽæù¿züŸ§ØÖã4vòôù?³y‘Ìâ4yHMö_xuý‡®Bþ/VóÿŽ~
-ª×p¨ª×À¼Õ¯þês5ôªWˆêUȁyá_½Y½†rX½.ç0ø/Ùÿ×qþ¯³ÿñ¿,`þÏn¨ú/’²˜'ISè_E³þëñÿžÂó_xø·Å¬XÌçY^&ã¿£°ªþãE¾Wÿòÿò ûo7Týóô¦m fýןÿí¹ëXˆâyúbU¹hìƒÿÓ1þ·süò³€ø_»i«ÿò*ɯ£©Yó—•å4Ùoþ'åšøäÚ?äú³Å¬lwŽîñž ýg-¿Ý´îÿEñU§Fƒví¿H7§?—®ï"ÿÝê?“¯²ëmÐÝþÝ'Eýs@ªÿ"ý³}ö÷6ö¿>ÿ#}Øô•þ
-] {!é~u[¤±
-hÁ$£y”—i™fj§{ÿ?ð±þ›ñ[
-Iÿåí¼Wû¿3ÿ+}äãáÓ,¤	¿m…¤ÿ
 ir“LÛŸ£»ý—¡Dþ$”o5$ýÇÙU’›ç¿. MÓÍúßÉÿ(äc!ðÐ Ømþï*Ê—kÀuP4z›õïÕýa€õ,ˆçXn3$ý‰n‹Q6EE‘ÅiT¦7iùȳà	óRAÿ, ~«yªý¿Žæçhҿ؍ÿôaÿyX×Áó§ü!1‹ð½BÒÿlq}‘ä¦`–6žƒÐÿàÿãÁЮÍôï2Äáù¿Lê¿÷ø¯zû/ÑÿcBI„ÙIÿñ_Ð?ˆÿ²’þûŽÿúFüwý³p•š {!éŸ!þK`ý°ÿvCÒ?Güâ?Y@ü—ÝÐæÿâ¿°þƒÄÙ
-Iÿñ_Ð?ˆÿ²›§Úÿ½ÅAÿ,¬ë ñ_vBÒïñ_õñ¿H¬ÿbã»!è_±äÿˆÿâ€Tÿ½ÇÕŸÿ"ýó¿,Ä`CÒ?Güü¿,Àÿk7$ýsäÿÂøäÿ²’þ9òaþ—å[
-Iÿñ_ˆÿfó¿vC›ÿcˆÿò Ü! ‹!é¿÷ø¯ºý¤BþD ùÛÌSíÿÞâ¿`ÿYX×Á“â¿&4"ß)$ý÷ÿµóü÷@†Ð?ÆÿñÚAÿ‚%ÿWˆø/HõÏ‘ÿý?ÿËnHúçˆÿ‚þY@ü—ݐôß{ü×®ý¡NfE™/bÓ|£%°’þ9òaþ‡Ø»!éŸ#þñŸ, þËnhóñ_XÿÁòÙ
-Iÿù¿ `þíæ©öoñ_Ð?ë:@þ/;!éŸãù˜ÿgAHd µ™úÏff–ï	çè¤þE—
-áÿãë¿ì¦ýïœòo£ðöñŸ®Ñ¿ç!ÿmë¿ÌæÙ4»¼¥ÜÝ꿊ÿUÏÿe¡sý—WyGEz¡¯Öe«+Bÿ+ää¡—ñÿ cˆï•Îú¿‹ýGñçè2¥ã¦s4÷ÿëóÿ¾@þ7ÿc7õgyÍoÒ]ÿùŸ˜@þ7»¡é¿KïŸÔÿw}Äÿ±ÐKÿù¾[ž:þo Ølÿëþ?ß“ÈÿÄ‚zŽù›yšýoþKÑ¿pñüàÿ³›¶úJ€QxÐzü¯?—ÕôÏ æÿ즭þõ?éxšâ ŒÂ›ý¿n ÝPTí„®™ÿ‡ÿwÿt­}µÊ¤c8H»úßšÿ•¨ˆõ?NЏõ9ûÿª>ÿ¯âyx}x~â¼yó«sòöãñ©sö×'÷«rÑ/°¢þEtÙz4Ш!êúW.ò°à»ƒAà*ðX
-QÿSýï,~dÍï&Ýçÿ”@ÿˆ –Þfˆú/Óëö“ÍöGÿúçAyÂͪ+36BÔÿ,êSÿ;ù¿0þçâ€VCÔÿ<û’ämÏAèÿ+ñ,Hý›!é¿ã`Hþþˆõß³ÿggþWH´ÿ,<àÿQ°¢þûõÿ¸ÁNÿO@ÿ,„Þ BìÖBÔÏþŸùŸ ã?R7Z
-Qÿ=ûvûÿ
-ñ,¨@úº€$ð–BÔÿþý?ÈÿÂÂ!ܾVCÔÏþ×ÿƒõ_, ›!é_2øÿ•býïýò±ð€ÿGÂ(ØQÿ=ûÂ]ÿôÏ‚
-ñ0k!êÿë ðü»!ê¿gÿÏnÿþ_„7P¾èèØ	Qÿû÷ÿÀþ³pˆø«!êÿëàÿaA_r4 CÒ¿»ÿOÂÿñþûõÿȝù_üï<ž:9:=vß½?vÎߝž:æ-L‚-õß³ÿggþG¹ÈÿÀzvCÔÏþŸýˆÿçú·¢þûõÿìê_(<ÿ…èßnˆúß¿ÿþ_Ñ X
-QÿýúÄŽþì?žzà ”C¬ ¶’úŸäÉ?Iç¨ü?aØàÿ1‘Ⱦ’Ršç?	óüù²çû-,×ëç^%ùu4•WyV–ÝÖÝÿ§\ÿÿßþ!ל-f͏~­è>þ÷ô+ì?èþÛMkûÅW´§?v}þcõüWßøÿÐþïŸnõŸÎÆÉ׎«¿»ÚSÿ"}Ô?¤ú/Ò?»<
-ºÙþûµú—~€øoô•þ
-] {!é~u[¤±
-˜gæQ^¦eš=¨ný£ÿÀGþ/þËnHú/oç½ÚQïÿi«„ù>ÍÒIšŒÑ
-X
-IÿÓä&™¶?Gwû/Cø°üÓnHú³«$7ñ¿Ë@Ót@³þUMÿ~ ÿËB€ÄVC›ÿ»Šòd<Òè hô6ëß«é߬ÿfA=Ñ XIÿ_¢Ûb”MFQQdq•éMZ>²ˆ0ÿ'ôϲ¿ÙÍSíÿu4o<G“þÅÎüŸçÃþ󰮃çOùc€Vä{…¤ÿÙâú"ÉM HÊfQúÿü<ø3€6CÐÇìOÄø/ij@ªÿÞã¿êí¿Dÿ	%þe3$ýsÄAÿ, þËnHúï;þëñß!ôÏÂQTFhì…¤Žø/¬ÿ`ößnHúçˆÿBü'ˆÿ²Úüßþã¿|¬ÿ`ñ_vCÒ?Cü—„þY@ä†Ý<Õþï+þöŸ‡u þËNHúï=þ«>þ÷õ_,`üo7ý«ýƉeüžÿÇ©þ{ÿ
-vã¿0ÿËÂ@f1$ýsÄÁÿËü¿vCÒ?Gþ/ŒÿX@þ/»!éŸ#þó¿,((ßjHúgˆÿBþ0ÿk7´ù?†ü_xþ'îÄÙIÿ½ÇÕí ò° Èßfžjÿ÷–ÿöŸ…u<)þk2A#òBÒïñ_õõß^ ñüOŒÿⵂþKþ/<ÿ“RýsäÿBÿäÿ²’þ9â¿ ÿe7$ý÷ÿµkÿC蟅“YQæ‹Ø4ßh	,„¤Žø/Ìÿ° ûo7$ýsäÿBü'ˆÿ²ÚüCþ/¬ÿ`ù¿ì†¤Žü_Ð?0ÿvóTû¿·ü_Ð?ë:@þ/;!éŸãù˜ÿgAHh×fÚé?O“®Q_÷…·ŽÿR¡Ö¿+Íó_ÿµ:Ô¼ÈódVŽÆyz“äÎÑØþY«%àÿå!ŠçéÈT/¬€•ô™iùϲ|”gíÎÑÜÿkú÷¤‡ü_,L£ñ8É!~[i¡ÿyžZ÷ôstÿ-ûÏäëÿí¦þ³¢H/¦]">·iÖ¿_׿Rèÿ³à¾> {i×ÿï¼äo‹Nó?fþW„žBþwÚ֙ͳivyK¹:׿Ê<ÿõ¿:×y•'Ñxdzéì²Õi²ÿßðÿ*äÿç¡æÉ¥ý!‘Bà{¥³þïÖ~Σøst™ŒÒqÓ9šûÿõø/_ ÿ7Xÿa7õgyÍoÒ]ÿù™€þ톦ÿ.½Rÿßõ°þ‹…^úÿÈÿ÷ÝòÔñ›`Íö¿ÿé{ùYÏ1ýo3O³ÿ­–Rô/\Äÿ° ÿ¿Ý´Õ63©hç0
-:ÿÝ@¡ÿÏÆÿvÓVÿOYbÞìÿu醢j'¤pMüü¿û§kýë«U&ªÛmЮþ·æe€øˆõ?NЏõ9ûÿªnÿ•ÀúO^žŸ8oÞüꜼýx|êœýãõÉGÇýª\ô¬€¨ÿE]¶
-4ê_ˆºþ•‹ü,(¨„;BîvBÔÿTÿ;‹Éù´I÷ù?x°ÿ,ˆ –Þfˆú/Óëö“ÍöGÿúçAùBxJ¤‹Lp6BÔÿ,êSÿ;ùŸ1þçâPAö6CÔÿ<ûÒ>¡ÿ¯àÿãAºèÿÛIÿ—“ü?>ü?ë¿gÿÏÎü¯hÿYxÀÿ£`	Dý÷ëÿÙyþ»R.Ö³à	,Þ¶¢þ{öÿìÌÿ þ“	õ[
-Qÿ=ûêã?%Ö° tÍø[!êïþü/,bˆÕõß³ÿgwü¯0þgA¸p ÙIÿ’ÁÿÀÿñþ÷¿þù¿XxÀÿ#a쀨ÿžý?Á®ÿã?„TXüc1Dýïýì?xþ«Ýõ¿ÿÖÿ²0†Â@k!êÿë`ÿY8„ë×jˆúßÿúøXЗ
-€Åôï2ø<ø8 Ö¿þîöÿÿ…ÃóO'G§ÇÎá»÷ÇÎù»ÓSǼ…I°¢þ{öÿìø•‹ü, ÷g7Dý÷ìÿÙÑ€ù_ »!ê¿_ÿÏ®þ±þ‡	èßnˆúßÿú¬ÿeá
-€Õõ߯ÿGìè_ÁþóàÉ¡7B9Äc ­¤ƒþ'yòOÒ9*ÿO6ø””¯¤”æùOÂäÿ‘/{þ±ßÂrý·~þçU’_GÓQy•geÙíA`ÝýÊ•xþäú³Å¬ùѯÝÇÿž`þŸtÿí¦µýâ+ÚÓ»>ÿ±zþ«¯›´ÿt«ÿt6N¾v\ýM±ÿ"êŸRýéŸ]Ýlÿëù?¤ûσ¾Ò¿¡`/$ýϯn‹4Ö£óLøÑ<ÊË´L³µÓ½ÿøXÿÁÒÙ
-Iÿåí¼Wû¿³þS[%Äÿ°ði–NÒdŒVÀRHúŸ&7É´ý9ºÛ
-øÿXÀòO»!é?ή’ÜÄÿ. MÓÍú¯ûÿý@bý'ûj5´ù¿«(OÆ#ýn ŠF/`³þë뿽ÐGüâ9l†¤ÿ/Ñm1Ê&£¨(²8Êô&-YD˜ÿ“úgÙßìæ©öÿ:š7ž£IÿbgþÏóaÿyX×Áó§üG~·ô?[\_$¹éIÙ,
-Bÿ?€ÿ_@»6CÐÇìOÄø/ø/Hõß{üW½ý—èÿ1¡$¿l†¤†ø/¬ÿæñ_vCÒßñ_ߊÿ†þY8ŠÊM€½ôÏÿ…õ,ÀþÛ
-Iÿñ_ˆÿdñ_vC›ÿcˆÿÂúÿe7$ýsÄAÿ, þËnžjÿ÷ÿý³°®ÄÙ	Iÿ½ÇÕÇÿ^ °þ‹Œÿ토Åÿ…çÿ±@ªÿÞã¿‚]ÿ/æYˆ!"À,†¤Žü_ðÿ² ÿ¯ÝôÏ‘ÿã?ÿËnHúçˆÿÂü/
-Ê·’þ9â¿ÿÍæí†6ÿÇÿBÿ¸/B4 CÒïñ_uûH…ü,ˆ ò·™§Úÿ½ÅÁþ³°®ƒ'ÅM&hD¾SHúï=þ«¾þÛ¤„þ90þˆ×^ú,ñ_xþ'¤úçÈÿ…þÈÿe7$ýsäÿ‚þY@ü—ݐôß{ü×®ý NfE™/bÓ|£%°’þ9â¿0ÿÃì¿ÝôÏÿ…øOÿe7´ù?†ø/¬ÿ`ù¿ì†¤Žü_Ð?0ÿvóTû¿·ø/蟅u ÿ—ôÏðüGøÿx@m¦þ½®!_[…·ÿÑ¥<O!þ‹ƒ¶õ_fólš]ÞRn„Îõ/…2í?êÿt®ÿò*O¢ñ¨H/ôÕºluEºõÿMý{*Dþ'zéÿx¿W:ëÿ.öoÅŸ£Ëd”Ž›ÎÑÜÿ—5ýû"DþG \»é¬ÿ8ËÛh~“îú—‚ÿŸú·šþ»ôþIý×Gü½ôÿ±þû»å©ãÿ6@Íöß«÷ÿ=äãÁ}Ž ›yšýoþGÑ¿páÿcùß즭þ³™	õ§Ã(<è4þ×/èÿ³€ù?»i«ýO:ž&¤8 £ðfÿ¯H7U;!µù‡ÿŸ…®õ¯¯V™t|\»úßšÿ•¨ˆõ?NЏõ9ûÿªnÿ•@ü?¯ÏOœ7o~uNÞ~<>uÎþñúä£ã~UðØQÿ‹"ºl=hÔ¿uý+üÏ,„n8ðÜc)DýOõ¿³ø‘5›tŸÿSûÏ‚`ém†¨ÿ2½n?Ølÿwô/ ”'„¯¡p‘ÀFˆúŸE}ê+ÿÆÿœ¢ço5Dýϳ/IÞö„þ¿‚ÿé¢ÿo3$ýw|Éÿ#àÿá€Xÿ=ûvæžÿÃÃþK ê¿_ÿîú°þ“á©P!Œµõß³ÿggþñŸL(¤n³¢þ{öÿìÆyÈÿ‚P/†ˆ·¢þ÷ïÿAÿŸ…CßjˆúïÙÿãïú`ÿY.@6CÒ¿dðÿàùß,ëÿëÿ‹…ü?FÁˆúïÙÿÀÿóßÄPJSÀöBÔÿþ×ÿÀþ³€çØ
-Qÿ=ûvã¿0ÿÃøC?”;!êÿþØÑù·¢þ÷¿þöŸ}ÉÑ XIÿ.ƒÿÇ…ÿ‡bý÷ëÿ‘;ñÿùßy8<ÿtrtzì¾{윿;=uÌ[˜[ ê¿gÿÏŽÿW¹ÈÿÀzvCÔÏþŸý›ÇÀCÿ@ÿvCÔ¿þŸ]ý…ç¿° ý
 Û
-Qÿû÷ÿ`ý/‡h ¬†¨ÿ~ý?bGÿ
-öŸO½aÊ!Ò¿ZIýOòäŸ{|þÓ¦þ…y$4ü?t­ÿl6N®£Ù¸Ë@ðÿ¡úç€\ÿEt=7Ï€åºCðø9L?þüÇúúßCüÒ\~˜~kéGÿ£ëèëÃçhîÿ×ã¿åbþŸ±ª4vÒ—þQaý§Ö?æÿX¿ÕõŸ^β<ÍtéÑ4‹Æœ£¹ÿ_÷ÿnûÏ´o7dý/æ£ò*OŠ«lú˜ö
-Íú¯ÏÿûJ`üÏ 
-€Õõ_y ‹è&]¤ÑãÂènÿý@Bÿ,@þvÓUÿEU£þëèëÈlhsŽFý‹ºÿÇSXÿ̓Ê3 öBÕt¥ÓèbšŒ.³›$Ÿeˆ£qþÏ«ë?ð=Äÿ°°îÏ9Õï›GqâÌ“|’åz£þíÂÿpºêßÄÎ&™™ðïdÿ÷ÿíÚùYþ0€ý·—®ú&“$.“ñHoh+‡fÿßîú?þ?”o5]õŸ'féo'ùSôï…°ÿ,@ÿvCÿ¯GýmÎÑ<ÿWÿóT ûÏÂzüfÀNž>ÿg6/’Yœ&É£Éþ›dÏÛú]…ü_,¬æÿýT¯áPU¯y«_ýÕçjèU¯2Õ«ó*†C¿z²z
-å°z]Î+`ñ_²ÿ¯ãü_gÿâYÀüŸÝPõ_$e1O’¦Ð¿Šfý×ãÿ=…ç¿ððo‹Y±˜Ï³¼LÆG+`TýÇ‹|¯þ?äÿåößn¨úçéMÛ@Íú¯?ÿÛs%Öÿ°ÅóôŪrÑØ9þ§cüoçøäÿfñ¿vÓVÿåU’_GS³æ/+Ëi²ßüOÊ5ñÿÈÿ´Èõg‹YÙîÝã?<7@ûÏZ~»iÝÿ‹â«NþíÚ7n(̃ôàÏw‘ÿ…nõŸÎÆÉWÙõ6ènÿE†¨Hõ_¤¶ÏþÞÆþ×ç¤ûσ¾Ò¿¡`/$ýϯn‹4Ö£-˜d4ò2-ÓìAítïÿ>Öó  ~«!鿼÷jÿw楏üo<|š¥“4Aø·­ô?Mn’iûst·ÿ2ÈÿÀ‚„ò­†¤ÿ8»Jróü×å  i: Yÿ;ù…üo,X j5´ù¿«(_®×
-@ÑèlÖ¿W÷ÿ…Ö°à>G`3$ý‰n‹Q6EE‘ÅiT¦7iùȳà	óRAÿ, ~«yªý¿Žæçhҿ؍ÿôaÿyX×Áó§ü!àEø^!鶸¾HrÓ0Ë@ÏAèÿðÿñàÌ ÚAÿ.KüâÿX Õïñ_õö_¢ÿÇ„’ÿ²’
 þ9â¿ 0r³’þûŽÿúFüwý³p•š {!éŸ#þë?X€ý·’þâ¿$â?Y@ü—ÝÐæÿâ¿°þƒÄÙ
-Iÿñ_Ð?ˆÿ²›§Úÿ½ÅAÿ,¬ë ñ_vBÒïñ_õñ¿H¬ÿbã»!è_1Ä…zâ¿ Õïñ_õç¿H?Àü/1D˜ÅôÏÿÿ/¹Ù
-Iÿù¿0þcù¿ì†¤†ø/<ÿ‰å[
-Iÿù¿ÿÍæí†6ÿÇÿ¥ Ü! ‹!é¿÷ø¯ºý¤BþD ùÛÌSíÿÞâ¿`ÿYX×Á“â¿&4"ß)$ý÷ÿµóü÷@Ð?ÆÿñÚAÿ‚%ÿW€ø/HõÏ‘ÿý?ÿËnHúçˆÿ‚þY@ü—ݐôß{ü×®ý¡NfE™/bÓ|£%°’þ9òaþ‡Ø»!éŸ#þñŸ, þËnhóñ_XÿÁòÙ
-Iÿù¿  ~»yªýß[üôϺÿËNHúçxþ#æÿY@m¦…þ­üñ¨¸.Góì‹–}ݤ³ËZ0
-ÚöÿU¨õ¯<äÿçÁ…ú­¦ýïüÈ×-ŒÂ›ã?Ý@º¡”Þ.BOwÿÉ@Ûú/³y6Í.o)7B»ú_÷ÿ\ÿ«„DýsйþË«<‰tw ½˜¶ítÿ›ú÷T€õŸ,`üo7õû;âÏÑe2JÇMçhÿËšþ} þ‡(×n:ë?Îò6šß¤»þ%žÿÇÆÿvCÓ—Þ?©ÿïzÈÿÌB/ýäønyêø¿M `³ý÷êýÏÿáñvó4ûß*ü—¢á"ÿ+Èÿh7mõ¯ÿIÇÓ„ä4
-oíÿ3Û¥~ÂÿÃA×ú×W«L:>®]ýoÍÿÈ ùX Öÿ8)âÖçh´ÿª>ÿ§žÿÀÃëÃóçÍ›_“·O³¼>ùè¸_æ퀨ÿE]¶NÒ¨!êúW.âYP¾?p•@°¥õ?ÕÿÎâGÖümÒ}ü¯ÌôÏ€`ém†¨ÿ2½nŸ¬Ùþïè_@ÿ<Èp¨
-i m„¨ÿYÔ§þ·òÿ`üÏÉ! i5DýW+ÛžƒÐÿW
-ñ?,Hý›!é¿ã Hþþˆõß³ÿggþW´ÿ,<àÿQ°¢þûõÿl=ÿkåÿÁúO¤Px¨Åõß³ÿggþ'ÀøLûÚ
-Qÿ=ûêã?%â¿YÕà1à¶BÔÿÞý?xþ‡H a5Dý÷ìÿÙÿ+ŒÿY0ö-€½ô/ü?>ü?ëïëòÿ°ð€ÿGÂ(ØQÿû÷ÿ`þ—…Àó±öÇbˆúßûúûÏžÿa7Dýïßÿƒõ¿,¨ÁP<ôöm…¨ÿýû`ÿY8Dü‡Õõ¿ÿõ?ðÿ° /9 ‹!é¿ããÀHþÿÄúï×ÿ#ÃÝõßÈÿÌÂáù§“£ÓcçðÝûcçüÝé©cÞÂ$ØQÿ=ûvü¿ÊEþÐû³¢þ{öÿìè?Àü/пÝõ߯ÿgWÿXÿÃôo7Dýïßÿƒø/Ñ X
-QÿýúÄŽþì?žzà ”C퀍tÐÿ$Oþ¹Çç?mê_þºÖ6'×ÑlÜåF øÿ‚ÐEýs@®ÿ"ºž›g@ŽrÝ!xü¦‚ƒGûÿÁÎó_ÿÁƒ4—¦ßZúÑÿè:úúð9šûÿõüŸ1ÿÏ‚XUš ;éKÿ(§Åü_Ýþkýcþñ[
-YÿéåÌ<	~¦K¦Y4~äÍýÿºÿ/pØ }»!ë1•WyR\eÓÇ´ohÖ}þßGþo&h ¬†¬ÿÊXD7Éè"Fwûïúgò·›®ú/â¨õ_G_GfC›s4ê'ÿƒ§°þ›9”!f ì…ªÿè&J§ÑÅ4]f7I>ËGãüŸW×à{ˆÿaaÝŸsªß7âÄ™'ù$ËõFý7Ú…ÿátÕ¿‰œM23áßÉþwËÿä)…üÿ,ÀþÛKWýG“I—Éx¤7´•Cwý«À…þYpáH·•®úϳô·“ü)ú÷øÿY€þí†:þ_úÛœ£yþ¯ÿ§ÿÂüëñ? ;yúüŸÙ¼Hfqš<$&û/¼ºþCW!ÿ«ùG¿Õk8TÕk`ÞêWõ¹zÕ«Dõ*äÀ¼ŠáЯ^¬^C9¬^—ó
-˜@ü‡ìÿë8ÿ×Ùÿ‡þ?˜ÿ³ªþ‹¤,æIÒúWѬÿzü¿§ðüþm1+óy–—Éøïh¬ƒªÿx‘ïÕÿ‡ü¿<ÀþÛ
-Uÿã<½i›¨Yÿõç?z&%ôÏ@ÏÓ«ÊE#`äøŸŽñ¿]í¿‡üß, þ×nÚ꿼JòëhjÖüee9Mö›ÿI¹&þùŸö¹þãl1+۝£±ýßYÿå¹ÚÐòÛMëþ__ujô7h×þ»tC±Ô¿ë»í?Ýê?“¯²ëmÐÝþ‹ ”¨Hõ_¤¶ÏþÞÆþ×ç¤ûσ¾Ò¿¡`/$ýϯn‹4Ö£-˜d4ò2-ÓìAítïÿ>Öó  ~«!鿼÷jÿ7çUXÙÿþ_>ÍÒIš üÛVHúŸ&7É´ý9ºÛ
-ä`ABùVCÒœ]%¹yþër Ð4ЬÿüDþ7
-€ÍÐæÿ®¢|¹\7 E£°Yÿ^Ýÿg¦‹¡Üçh l†¤ÿ/Ñm1Ê&£¨(²8Êô&-y<aþOJ蟅Ôo5Oµÿ×ѼñMú»ñŸ>ì?ë:xþ”?¼ß+$ýÏ×Inz fhã9ýÿ þ?|@›!èßÝküWåÿA þ‹Rý÷ÿåíøñü/”Dø—͐ô¿Ïø¯Jÿ/¡0r³’þûŽÿÚŒÿ^ÇAÿ,Ee„&À^Húßgü×Rÿ¡@þ`ÿ톤ÿ}ÆUú×ìÿbñ_vC›ÿÛcüW¥/°þƒÄÙ
-IÿûŒÿZÎÿIäÿçñ_vóTûß{ü×Òþû°ÿ<¬ë ñ_vBÒïñ_õñ¿H¬ÿdã»!è_±äÿRˆÿâ€Tÿ½ÇÕŸÿb £ýç` †ˆ ³’þòIøXÀÈÍnHúßgþ¯µýGþÿËnHúçÈÿ…øO”o5$ýsäÿÂú0ÿk7´ù?†ü_ˆÿfÁ}¢°’þ{ÿªÛÿ@  D ùÛÌSíÿÞòÁþ³°®ƒ'ÅM&hD¾SHúï=þkçùïDü'ÆÿñÚAÿ‚%ÿžÿÌ©þ9òÁÿËòÙ
-Iÿù¿ ÿe7$ý÷ÿµkÿC蟅“YQæ‹Ø4ßh	,„¤Žü_ðÿ° ûo7$ýsäÿÂü/ˆÿ²ÚüCþ/¬ÿdù¿ì†¤Žü_Ð?P¿Ý<Õþï-ÿôϺÿËNHúßçó×ù¿0ÿÏ‚È j3-ô_håG×ñhž}Ѫ/¢›tvÙE
-FáA§þ¿’xþ.Ôo5íìØ5äs£ðöùÿä_t)ÏCü'më¿ÌæÙ4»¼¥Üë_
-%‘ÿ‘…Îõ_^åI4éÅ´m7 Óø¿ªO…ÈÿÀB/ãÿÆß+õû;âÏÑe2JÇMçhÿËšþ}"þ‡ÌÜÙMgýÇYÞFó›t׿4Ë@¡ÿÍnhúïÒû'õÿ]äà¡—þ?ò?|·<uüß& °Ùþ{õþ¿‡øÔsä³™§ÙÿVá¿ýäæùí¦­þ³™YêC;‡Qxkÿ¥ý‚þ?˜ÿ³›¶ú×ÿ¤ãiBŠ0
-oöÿºtCQµR¸a ÿ/]ë__­2éøÈvõ¿5ÿ+‘ÿ‹bý“"n}ŽÆþ¿ªÛ%°þ—‡×‡ç'Λ7¿:'o?Ÿ:gÿx}òÑq¿*ÄÚQÿ‹"ºl=hÔ¿uý+ø|ƒá Ë -…¨ÿ©þw?²æw“îó*ðaÿY,½Íõ_¦×í'›íÿŽþôσRCßÓÍ­?¢°¢þgQŸúßzþÆÿœ" Ðjˆú¯–·=¡ÿ¯àÿãAºèÿÛIÿŸ Còÿøðÿp@¬ÿžý?;ó¿B¢ýgáÿŒ‚%õ߯ÿÇ
-vý?Ð?CObæÇbˆúïÙÿ³3ÿƒøO&žþi5Dý÷ìÿÙíÿ{ˆÿ`!áP®VÀNˆúß»ÿG"ÿ‡X b5Dý÷ìÿñwý?ÈÿÆ‚pá ²’þ%ƒÿë¿X Öÿþ×ÿ ÿø$Œ‚õß³ÿ'ÜéÿIèŸå*_»­õ¿ÿõ?Ð?xþÝõß³ÿg·ÿÿ/"=é)t,…¨ÿý¯ÿýgáñVCÔÿþ×ÿÀÿ¾äh ,†¤—ÁÿãÁÿñþûõÿȝù_üï<ž:9:=vß½?vÎߝž:æ-L‚-õß³ÿggþG	ä`½?»!ê¿gÿÏŽþÄÿó ýÛ
-Qÿýúvõ/<<ÿ…èßnˆúßÿúøY8D`5Dý÷ëÿ;úW°ÿ<xrè
-ƒP±ØJ:è’'ÿÜãóŸ6õ¯ßÁÿÃB×úÏfãä:š»Üÿ_è
-Ô?äú/¢ë¹yì(ׂÇÏa*øñç?Öóùâ?xæòÃô[K?ú]G_>Gsÿ¿žÿ'P.æÿY«*@`'}éÿåòjýcþñ[
-Yÿéå,Ë“ÑL—M³hüÈ9šûÿuÿ_à†°ÿ,@ûvCÖÿb>*¯ò¤¸Ê¦ißЬÿúü¿¯Æÿ,Ð X
-Yÿ•°ˆn’ÑE=.Œîöß$ôÏäo7]õ_ÄQ5꿎¾ŽÌ†6çhÔ¿¨û<…õß<È¡1`/TýG7Q:.¦Éè2»IòYöˆ8çÿ¼ºþßGüëþœSý¾y'Î<É'Y®7ê¿Ñ.ü§«þMàl’™	ÿNöÿqÿß®ý÷ÿŸáØ{éªÿh2Iâ2ô†¶rhöÿí®ÿCþWB(ßjºê?OÌÒßNò§èßaÿY€þí†:þ_úÛœ£yþ¯ÿç©öŸ…õøÍ€<}þÏl^$³8M’G“ý^]ÿ¡ë!ÿ«ùG¿Õk8TÕk`ÞêWõ¹zÕ«Dõ*äÀ¼ŠáЯ^¬^C9¬^—ó
-˜@ü‡ìÿë8ÿ×Õÿ‡õÿ<`þÏn¨ú/’²˜'ISè_E³þëñÿæ/蟃[ÌŠÅ|žåe2þ;Zë ê?^ä{õÿ!ÿ/°ÿvCÕÿ8OoÚf jÖýùßžþúç Šçé‹U墰rüOÇøß®ößGþoÿk7mõ_^%ùu45kþ²²œ&ûÍÿ¤\ÿüOû‡\ÿq¶˜•íÎÑ=þÃsC´ÿ, å·›Öý¿(¾êÔèoЮýw©Uxúséúí?Ýê?“¯²ëmÐÝþ‹ÐU¨Hõ_¤¶ÏþÞÆþ×ç¤ûσôƒßа’þçW·EëÑ€L2šGy™–iö vº÷ÿë¿y¿Õô_ÞÎ{µÿ;ó¿ÚþÃÿçY:I„Û
-IÿÓä&™¶?Gwû/C‰ü,H(ßjHú³«$7Ï] š¦šõ¿“ÿ1PÈÿÆBà¡°ÚüßU”/×€ë hô6ëß«ûÿ ë?XPϱÜfHúÿÝ£l2ŠŠ"‹Ó¨LoÒò‘gÁæÿ¤‚þY@ýVóTûÍÏѤ±ÿéÃþ󰮃çOùc€Vä{…¤ÿÙâú"ÉMÀ,m<¡ÿÀÿǃ/0h3ý»,ñ_xþ/¤úï=þ«ÞþKôÿ˜Pá_6CÒ?Cüòÿð€ø/»!é¿ïø¯oÅCÿ,Ee„&À^HúçˆÿÂú`ÿ톤Žø/IJ€ø/»¡Íÿ1Äaýˆÿ²’þ9â¿ ¹a7Oµÿ{‹ÿ‚þYX×â¿ì„¤ÿÞã¿êã/XÿÅÆÿvCпb‰ÿòÿÅ©þ{ÿª?ÿEú!æYˆ!"À,†¤Žü_ðÿ² ÿ¯ÝôÏ‘ÿã?ÿËnHúçˆÿÂü/
-Ê·’þ9â¿ÿÍæí†6ÿÇÿBÿ¸/ÿe3$ý÷ÿU·ÿôÿƒ@þ6óTû¿·ø/ØÖuð¤ø¯ÉÈw
-Iÿ½Çí<ÿ=PúçÀøÿ!^{!è_°ÄIÄq@ªŽü_èÿ±€ü_vCÒ?Gþ/èŸÄÙ
-Iÿ½ÇíÚÿúgádV”ù"6Í7Z!éŸ#þó?,ÀþÛ
-Iÿñ_ˆÿdñ_vC›ÿcˆÿÂúÿËnHúçÈÿý³ óo7Oµÿ{‹ÿ‚þYX×òÙ	IÿÏ„ÿ!¡]›iÐÿ,']ýv0
-ïÿ%‚Ðèñ_û§Mýg33ÍK?G÷ñŸ+°þŸ­¿Õ´Ñ¿ù§óC7èÞþ‡¡BþGÚ׿´sTõ†
-õ¯D |%eÕþÂý‹#_öû[¿	ê¿}ýKÚ9(õoò¿¢þ÷O§ú'6ȤúQÿtªÿ6ÎÞoÐ}þG(¬ÿãù?즽þg‹ëHk…Ð 4é_¨zþoáäÿeÁÔêè*-0ôBTï¯Ó¢pÜåß“,OÒË™~›ÎÊ$Ÿ&ÑMRí๺ø43Ë€Ì
-²>@V^%ùræþõédÿí¤þŸþíëÿ:¹Ng“Œpކö_ȝõ?B¹ðÿ³pð¶j©³äúcVFÓWN…pÕ@º®óùçoò$Y}î8ëE°]àS‘Œï
-x*”o£Àë¸Loîàá
-ƒÍ'³h«ˆ”º=l8Jóòöþ U™`³À?ò´L.¢øóf¡Í_ñ&&çÑeR¬
-(m;ÃY4Ÿoüý-½¡·y„׳l¶yG_¨Áæw0~Œ.¦[%6ðö͇ѧ™¾ít™Wßú’?g‹Yœlÿέw?óãõü›Gø0.¶ö÷†2ܬ¬ï“x¥×wßA©áVuø4Ë—EÖw„¯¶Žðëâry%G÷»ûéÆMóO?,òùݧÿÝZ°‘Nö_ÐÎA²ÿ
-öŸƒNõïÑÎAªÿ õÏAûú§úJi»ÔýÍóuÿ¿Ðôÿ8€Õµ›Ní?Q¤ö_¢ýç Sý·	öÿó¿;ñÿú
-ü?,¬ë ù_í¤“þCÚ9(í¿ñÿ ýß?mêžEz1%G wïÿ»^€üÿ, ÿo7môf­'ùýË ý? »i«ÿY–_GÓÑurå¤zø&Ýõ/uOúç ú·›MýO‹yœ¾œ=¬"FáÁÃúW
-abþ}_ÿb‘ÿ•×}åº/]G_}÷•3pÁ+å¹®óCžÜ8Â}v`
-ˆeï¾À`»€Ü)0Ü. v
-DÛ¼Ûüñv`§Àx»@¸S Ù.0Ø)0Ù.0¬µíÛÆõK­¢zQ+pQ/ kâzU+0®ð¶ˆA½€_+0¬jv~EX+PûIý:ˆ¸^ vĸ^ vDR/P»bR/P»ªö3'úKêvIܐÞVQ	g°qé׈Z`»€Ø9BX/P?Âve	µs„í%¼I½@ý²^@Ö
-¨zµ]@Õ¾¤¿ó¶ëBTâ6ŽàÖˆZQ/ kd½€ªPõÞv9¬ðk¢z Và¢^ ¬ؾíEՀĮZˆT¸Ú.jÛ«í²¶}¸ÚÖ¶ÇÕös|os{Rmk
-W乫í^mû`µÝ¯mªíãïﭶ׿¿¿Ú^ÿþÁj{ýû/ŸlOéy«›y¸º€“e;ÍF"Ym×'ÚÐr$ÝÕveNäߟh½Ý¯•×_L­l¥2w²ÐÖW¡ðåj»þjp¿=ÔÛÃUyY•÷b¡ß¯M§+ô¾Ø,PH¸Ñªp庀x¸À“íÿfÿo|—=ô)ê<Úÿ20Ûjý?écþ—…Ót¶øêÜèß–f3G¾ÔÍhø"µ»Œ¦Ó¨Lgÿ>K®¢ir-žémq|WV›
-­)}c†BÃø>;¿FårûO>{æüU8Î͏WçC2wtS¾ò†º?éœ}4»³ëëh6vL†‘WNžéÿ²ò§Ó×?Ÿþô£g³"›&?•åí÷¹ÐbÓ]ӍîÁoÇïߟ:Åb>ÏòR…x¾(^8ÎɬL¦Î/Él¡\½Ñ_Ÿ9¯åU2+ÓX¿Ñ›õßÑ"_¿þ-¦ÅÁÏ'ï>¼˜çÙM:Ö‡\?îÆyÿúÌ¹ŽæúðUd µ*Ý΋ÍMÃ$6½éEa"mŸ=´ã²ÔÖŽQu,-t}ßÝ$ãwMvÎ)Üv»Šú×UãHÛ¦¦¯{WjsÇS3ç¼+·±ë$¸PÍç\—ÚÚq<isÎu¹Í]C´8çªÔÖŽÞòÚ¾><?qÞþç‡wõê×Vo÷»Ž£2zx_±³ïê§6žv÷§\·ÝiWï÷õV¯MW8Z—»ßõ¢å®“xg×ɸå®ÉXĵ]“±lµëê´÷»ŠõG›»N£¢Í'3ç'ÇýZÝ
-Zü_GQ_ml^qðu8ç¯?:ÉÌÜRãW¦!rÜçN6ër¡¾šæfª^Ÿ;³äKµQ¬6ê׃t––«ùU“UsžÎ.6ÔZ}Y}3/ßÌ£ËÄ‘g›Û–V7mUÀû|ð9Égº§y—Îê¸Nµö ps§Ìœ»}þÝ1÷ÀSy˯‹¢ñ8u_&™ïßèñèäÃozK8Œ—_B…“dxÁÁÑÙ‰6(ž37—tV¾<0·à+çý‡£só»Þ¸êP_Ý[2£*霼ý¨òg«RÿõA[õ&|s,dU*0¥Äª”óñ×÷§ÿ{kuÄj•BU›j}”7ú¥:Ê‘ÞlŽòÆÅ{ø(gÞ|\Å=Zåhý]‚ê(Áaà
 o|㝣¨oE—æ(•ºÍwÑ]ìå'¯ÏO«ãûËO„ï>vü¾åÙá›_ª£x«ã«ÃÇ®˜øöQ~=?^þVµ>Ê€p”§'Ë£ÈõQ\ÂQþq´ºî÷Wìñ{àÛßeU{Goª£ñóñòVZ§úÜ9?[®“1÷°Þ~jz'î”ïn‚³×ï«êsW•tØí¼͜·ŸÎ^›ÞË$½\ä‘yä’3ɳñÁ›è³QeäTËfuÊ­ñbýǝò~ÖÝ$ÝX8ERj/—Û¶ØÍqÞ¾;:½þøÚù}³èp«=¬Ht³ö‡Þãœ*šo—_Ù™ÍD$áUËS8ƒƒB'‰òé­³lQ«ß[<s~úéïË#ê/¿qÄ­ÖËœõ¯îÎÇÕIÌÇúúšf½2gË–ÎõÁâæhbýñ–I¬Žfø¨³ów§'o7¶[ÜM.?–›'„~âÆÕÑ>ÿ×G§ºÆ?øp´o7GSæãÔ¼Y¶¡ÜßP«¦v}´o7GóV_}³O¹¼«£Unmä6~é7Š›£ùë±Õån\7Íù/_ÿ|ºuÝv‹›£돷z8B7wG«ú)Uû±q´Ýâ•rªáÅÙù‹Êžáünlñ`Ù•™ŒÅXwý×ÁòÃDÞß&/î7Œ++þ‡nŽœß8ސ÷E—&«¢Z¾«eîÿ'›%Îù›·NÍÌÊ@ýSus±j•¾Þß”_½3?gYFÉû2b£Ì²Œ\+¿ëªŒØ:ΪÌYvSýú?Í—0ƒÙ²ú*“,×ú‹¯ªïxP)±Z•oŒúïÞÎr©åÆ·>¨¾É«o~as{Ô>ŸWC‚­Ï«žþýç¦û¾ý¹é•o|®uðn}=u§¤Œ¦óå"Ké}uµªß¨7	Ýת>~¼yç\De|õêþ’®Šé±†ï}£ «6ýüìÅÇô:ɝ“wι>š/çéAéòÓS“Û`iœM'(19¾N’dyÙWeªˆây:JÇ¿ë_#þp¦Ñ<—o…¾W=Âgw‘-vñ·wñZìnï´Øe¸½‹h±ËÅö.ªÅ.ãí]ü»L¶w	[ìâníbÞŽÓ¢a¹½l³·½×fŸ`{Ÿ Í>ƒí}D›}¢í}T›}âí}ü6û$Ûû„ì3z«Gµ:ºJ/¯œêù‚fJ¨4µûÇã;	ÊN’²“¢ìäQvò);”BÊNÊNCÊNe§ÊN1e§1e§„²ÓäñNÞ-ExW?+‹õ»±Xñª÷wY¤£‹¨H~wõ~Ë=ôŸ¯œ•TÁó»É]=ÂÙ´yË#<w
 ~ùpâ¸/¤úæY‡µ³kg•ÞýiÅÆi‡ŸvxZé½ðÂõyß~}x8z÷Ÿï.º°£ÿ¥ù?õ_—Óì"šVo¤3žLÍÿÏšwnî8ܸØwû¾ÿ×YºÓ|qëdúçé8yyÿ¡|ìÃá7>ü”¥öU×0ÏÕ›2»ŸnžL£rsXžŽMÅx"Ï޹¨¯ªë´œ2;øTT‡3èÎ^}|VuMy{ÐiÒ¸è^eõÌ_ýé+çõtš}1ûŠÀ9<ÿ¤{Kç*+çÓÅeõþÀˆ£êžž˜áC¶Èc=Ì«ú›Õصt¼ÁªÛøÃe4嬧_«?žœ¿×‡[žou¸ÀURWÂm©–Mœ¹îŒ™‰33²;xû~¤‹0=9ÿ¹3Ë«ΤcÝ)Aõ¾êÏê
-Ž8øy‘NK=ê6]?“¦°Ð¿Ò©ÒMdù8ÉŸ;×ÙE:MË[çR_êj,›½ÔC5ÓÕtîúšžô܃ól𯷫^dÕ£<øm9?Ñ[q2KË4š¦šóëßöW}²“#ç**®–srºSæ©ù.ž;œª/¯¯|î(ƒå•zvpüµLfÆ7qx¦‡s·º{ÿÊÌX¸?:úÞI/t]돣Ë(zDp6úxrvüþà()“Ø|"‡J½ô”çœýú§3Ï3]›E–¿<8\~ßWú‹Ou%;ÿùËëÿåܯÒ?Xýçwó[îº\[›?ll?¼Jâ弆®Õr‘'/_¾4Ó ¯9w.´ô°}9ýqVMzÏ©P^à}þQð†~|v¢›(V×å÷³óy]ãä¹nô°áóÝ`ö¹#<%?W÷޾\ú@Ž™S}vpxþúÕrš`žeÓjcU	ú*sÓ‰ÕœÅ<O¢å©¿ýÕ<)X¿û¬Y©Ïr©o«$7?lu}Ío'ÓèÖ™fÙÜù¡øœšä1Ït{M‰©‡x1­êaQI³¬“<ùçÂ<=õåKÇÁK=šù9»ÌÎNÎ?8?Lçÿï'S7ºjžé&"^俦}“G×É—,ÿ¼ùí>Wî»WÆÛuc½ÜØþa­O­]&±›õ]›1ᑹ×nêÉ.ß¼…n(ïnBm„ë
-tŬïÂ#À ð}u‡Ï_z&YÎj÷3]ûå#»K?8¨Ú‹Sáœ,¿ç+-ƒßž›
-GV¥äz“Þq½M­·
-ÄpYÐqõýe†žËd4Ërçë6÷|­çäH_Õ§w³<©>©öӣُWI5@¿Ît
-d¹¹Ô«ûßùáã™xv°¬ù
 ë/QZšJHÇú–WúNkûP4OnÒ¥ÖLžîðàåËJ²¯´uŒõ¡r¿*·2šâ'×Ñ-˜øIVoåO/„yo^Wßjåö\:AxÿÌ´5““ÿ^ͤèùr¨~Ñú×7öÒ1àÊ•™Þ~—wm•ý/_ÌKóµï7¯Ûó͵º(¥éÞ75ƒ—zKÕÎÜïø²šÁ4gºk{ñ£8éÜ©f*wšJñ
-Ýmʪ˜'q:Iã•)M–êò_†á®ºôM<Ûǽ¥‚|ò½U}"ZÜ[ßô9‰>§åyžr·ÄëFÞžâv_åúÛþ¹¼!~¯Lœ¹UþaZáB÷ƒ¾UùòGÝx°ò%µò¿Ñ´êÊ÷öRùòGá=¹ò¥ùDR+_v«|ÉVùòÑÊW?Jùpå«~•?ØKå«uçù©•¯Ì'ŠZùª[å+¶ÊWV¾÷£®|¯ßÊî¥òõOýt)<jå{Ý*ßc«|ïÑÊ÷Ç+ßï·òýT¾þ	ª›ïS+ßïVù>[åûV~ð£W~ð=4ûÁÂïÇæÔʺU~ÀVùÁ£•þ(ÕÕ~½ýÐX®^l~H­ü°[å‡l•nV¾®¤Ë«ÒÄ›
-–ŠËi·l¢ßßÝÅÒ']Í—üàC¾”ƒ»Ú|ö²Û:QYêj0ß¡Ðßfübœ]GéìՁ³üÃx˜‹yd¦’½Õdù‡“ŸOOÞþrà,§þ
-miO¿[í Ö;¼W;œ_õ]a} ñÜ×]ë@÷°BóÑjO¹³§	®©üÜw;¿«AVë¯mÎôÐ׎ßþko|eóH_[¶þÚæL}méí¿öÆW6?ôµUë¯mÎôÐ×VNØþko|eóH_ÛëåÞö—÷Þö{¹·}ÝB²ÞÛA/÷v m7ë½öro‡Žb¼·gI9šE׉.kÒšo=|ðöøã+çýÝ̺±egSg]§Ó[GÆa0ÎâÏÎ*1ÅÒe°ž95.¼òvž8ó8Ýœ¡??\Än{¾ôµ1^3ç.d½H.¯Íì~åLŒ?ð…ñ6m Ê“Èx·îv¹‹Óàx ÝeÙå¬éÙÙá»·oN~ÙÚá…­ƒÄ7Šn±êGˆÊ_·ü‚±±‰«_y|h‚‘²ÏÆ~šóšˆäµsÑÌËÎóDÿ{çyY~òÃjQLá|pÂù œþÚ›¹ü+®9íÝüîÚ¹Ž‘:<qÞëΛóóÒeó»ÞàþáüP¹öŒSÏ\úÕ›j¥¸	«:þëÆŠœIž];G®s¤®ôaŽ”®ßñC{­ãD¶?—¤£Ê†£*ÒQUÃQ=ÒQ½†£ú¤£ú
-G
-HG
-Ž’Ž6u@:ê á¨CÒQ‡
-GHG?ª ݯ¢á~5+…	G½ßëÛG½ }׋†ï“Ž7Õ#Õk8ªO:ªÿèQǤÚ?V[ËEͯœ;kq$ýTÖ?î+¶÷­,àÊû¿Ù¦:iæÌ«Üß—kFdµúàÁâJ^¤¥s}fz‹UhýsGÿµŒÎ~xÏÀ[ïiþ½{²²Ôϝde¨Ø=Ü=±¸;±hÚs÷Ä“»OÜõ‰ï/ßÅêÒw«î­½¾QÝ«J!Uԏú­ŸZ¥¸¯ÌåÒñà•©Š×®©{wMݝ‹²ÌðÊ)óh¦û“¹é¼-¹Ñ_9¹ë˼_…UUäq~ÿ¿£?^šÌËÑùûtÜçìý¹ î¨¨;†¤Ϗÿ‹öõŽ>iÇ“syþÈŽ§éì³óûéÛß^ëÎãÉûÿ(ô ÛÓþ@F†Žp¿	á©Gޏë¥>pˆŸ¿uˆ¿	“­¥í!wñ·êk´?ÄÑæ!þ¶ñKÚâøk±yçoZ
-kɽ|üxož~myúµýµÕµ]f871†&¤îÜÌð~X¶G΍ûr:?ÄÏœ×ãèÚùÙLÿÌgs}ÊÙù2ÂÑÄAíŒgóÍQàÖ¯–#GóVCÉõêKs´­C,fYq–›h¿ûaª™\­ÆK= uÆyz£_ºà¤h_üjqñ`áåÜ8ðæÀ±ú¾fĦ/ñÝXímRžFÉôÕV$ØÆæõ½Š³*Ò?ç']ƒÍëÁw¡?úô¶
-j<>rOÎ?¼»ñ6.fSó—þ²ºž˜Ix6÷eß:N&ÑbZ˜õ’¯~ÍŠò.¢÷K:.¯Ï]~tôþ×#ç‡É4º,6Ö‰gë¨ÖÕw’„•]îõþìý{§^DM‚ØØðåâä­íccAv½øö®ñEó®ƒv4ïê?°«ß¼«|`WÙ¸ëÅäÛ»^LšwØ5nÞuøÀ®Ãæ]ƒv
-îvý4û<˾̖t‹2_Ä&Ö´RóÁÉ»³³O¯œu¤u:6‰?Ê[³¾’ÐJhæ ë޲ó»YÕ¿:ñgù&tÍÆ®G‹î6Ü<ZD:šI•´:Z¼y´1ñhb}´ÉÆÑª@ÊÑÜÕÑb¹y4E¼në_ºTÉúhñhë_66$íî—^l-~êuK6Ž6O¬Ó~Ž&{<ZÔë/zý¥Q¯¿ô¾
-é绵8ÚåäëöŽ«Deâ…X§üèvâÕþfUOuÆaÒýËßã>ÑÐ×uò ò±6S}]§¢m#9Ð×ûì^VñÄË*z¸¬¢ÇË*z½¬¢ù²žç‰¸;îœéÎäê€UŒ9èéùag™L6ïÖU6ŸjÂá…uøÏ4/¦w¼t»|üÿí=ksâH’÷™_Q±û¡í„Uz!ˆ‹Å`7t³Æ=3^!	£5 óë/³Tz ¥¢ÄÄÄÝŢޯ å³²ªT¬ÌП-ãyüüÁ¨X”ÇÞ_}aÈ?ö»Ϭd	3“YùàJ‹Ñ»¸Û3Þ)Åj62šxjÃ…d q,
-W;˜KÂάP—º:¹û=óˆGx–äÍ{	Óu™±ÕHã±¶–Ô%Q̦Iìà>pµ1ÔÇ»mNqxO&a¸Ìw©äˆC´Úµ]†èÒÚˆÆÔÕðSC„dxY¸'}uaÀ?ÞÎaÂo€Ž"¾â†Tøu
-€É’.ÖÖ¦SPÀ¯J¹KÁ+(x§Qè$/Q:k!اƒIÚ
-š$	ýxxë6Nᨠ‡`„…·hÄoÝŠ=7¼ªŽnnoûwG 
-‘
-Ž‚È†ªÈF-‘M‘MÎŽÈÐÈRã²Y¡¸,·þž­¡kìkº]-Â:P"›—e«èZ~#ÛõìtÑÎà(ÄR5ˆUË ¶ŠÈ¶ GAd[Ud»–ÈŽŠÈŽ GAdGUdG]ä6ßµ¸†9¼ÓÅ×ß§
-ÉcÖmñ3ÇøšŸÒ¢lœèÙnòýÛýÛâæC‹æCõ¾}¤ùd{AZqCÔ|\Å\Ž‚b®ªaÝZu±£"rG€£ rGUäN-‘=‘=Ž‚ÈžªÈ^‘ù.÷‘'œ½·Më ݯyð~µÏkm¶['ÄRVÂ:®„/À9^îÜÑrÏ •E¶‹,ÂQÙVÙ®!r¨RUBŽ‚È¡bíÎ d>ò¼ÿüHzècÎb‚¸ä‚ù6É<~»ÄÛ¸)b¸ä„O%ñ<þÒÿàÇ61ÌÇ*FŒ»¬:bV²2+SÌʳ!+³²Ä¬l1+[€¬ÌʳrĬ²2+G̪-fÕ +³jYa\S+S +³rŬ¨˜ +³êˆYbV† Y™•'feŠY™dUVÅ»p‡WÚ ×`eýVV-VvÁê:g%nWÔ +³
-•¼'0ž6N;|'e‡tfbãñ]š¹÷ðçå+ƒ¥9¹VßHe
-ÙCSôАñ4d<
-OCÆÓ[ÙémŠÊ¼ÜvAsQDm» BÁ,YaX²Â°d…aÉxÚ2ž¶Œ§-ãiËx:2žŽŒ§#ãéÈx¶e<Û‡¶>t,ÜÍ%9î‚
-åqeò¸²2peeàÊxvd<;2žÏŽŒ§'ãéÉxz2žžŒçDÐÀËŽ»P%£ë¹ÑõKNd¢Ld¢ø2õ}™ú¾Œ§/ãÈx2žŒg ãÊx†2ž¡Œg˜ó¬|Ãe –ô
-w줓Ѹ1o®P+
-—ÅÓrà}áÔ²²xZý	ĉ’ðPˆéÕz³X•‰L@#…€^‡Á ¹KîrÄ$?å„GzË¢q1#F4e¼—qÙƒïèù°âDr4%Ñc¼E	ó
-\{‹iÒjµÆÝJ·ë0Lã Á£€,xÈ9òèFdfÞ6ˆÀ¾Qù(ú2ÜÌÑ­1Á8prQıEÿ¢Ø–)û †¡;ÔéXf«m]zY¢Äï¶ÏáãO×eO?ƒ¯Ó°tè×D§p-?GÒIãçÛq—¢ä…ü¶7^Büûä´ìmð»$‚šM3Sã&$)È-µHž˨ØðÁíhǵJáã²¢çE1æxÌlÇ/I;€¸Ã­%À+n硇ٖ¢•·"¯
-B/À°Š• þô·ré]pGÃò´ì° ˜»)æÅbóÕ¸Oe­µ	fêS:cP•—F˜D”§ð}•†1-ƒ#-÷‹³…m¶5Š;m\F	• ‰TY‹`ª«fœ¦šqºj*kLuÕÌÓT3OWMe­E‚©®šušjÖ骩¬íH0ÕU³OSÍ>]5•µ$	¦ºjÎiª9§«¦²v%ÁTW­}šjíÓUSY+“`ª«æž¦š{ºj*ksLuÕ:§©Ö9]5•µ@	¦ºjÞiªy'«¦´ö(ÁTV×W­@3OPíøZ§³ŽjÖiªY§«v|mU‚YG5û4Õì#ªyûÛ¬þr€ì(ÂÍc/ÀÙÒþ€±&ŠYŪb×Gqꣴ룸õQ:õQ<%¬4<ܺÁpÓ'v0°@e<AC—è-»1L#”iCÔú-šÏÑu’%8€úâI7Ò×(&Ø„ŠÐæIÐ<~6Æ»XÅoïÃÌ·O¿õéwÒ7¾õMøcâ˜*æá×J©ÝÅ¢)M+=\³ˆa"úü”N³LOEä6Œs¤‹ð*.ôŽ7¸Rð̸,D£§‹fÊE£BÑLuÑŒÓE³å¢BÑluÑÌÓEkËE3…¢µÕE³N­#ÍŠÖQÍ>]´‰\4[(ÚµºhÎé¢rÑ¡huÑÚ§‹6•‹ÖŠv{T4<,ð”gY)'yÁåÍÉ6ùh|Ž—ÚkŒÚç!_Î̺öWÚ2øñjïyõŒ‹ãǯz‹êfc®#oÞ%®aëWÔ±mc[ld°$™yå@”„a!N—°lxôáþê;æá’̝ó±.QJ0²½$Z ’¹‹4YƒÕ1.ýe¯©¯Ëó֐áv¾‰´¨Î~Þh÷ƒ.|#
-§çp	ý.YÍCŒ¥/ò0Þs&/˜Gaú—ŒöÊÃÌøVÁ …úÂ(‰ÌÃgÆq÷ãA¬T#€wŠ2®:&7©|Jñ)B±ä®ïtšºØµ›ì¬f’ÄB ÂPÓf0mÓ.`l„ѦóxµÊ
-#6½1ú<bGUFã+×Ý7ëx>gzáQ’É–Öº4ôü¤ruËhùõ «±ˆ0b#¹ˆ± ùÁL„ÃÒ×®YY!XÃ_m1»E—Çi}ÆLGK ˜{A ¦zë<tèv™¤+ÕÁ6Ä÷:Þ›yó4k©qŽ>꯵ŽéJ#ýÓ%¯FËé~_“»ûA
-YMJ÷AüòrôNÚ_o†{ÛÇ·+ڍ’x¨ŒØà“<ýÍ·)¶K6äáén²Ý
-–Ó&ݬøeá €YXÜY˜cr-^CL…ƒh†ûÒg8Ìóƒb^qâ%ýÜ¡DìTGÝ*
-²™OÊÍe&]fU®
-­ˆB×Ä¢ôšÐÙ&ÑóƒÀƒåv1Á†PE$'Û´îWäÛ(l‚Hˆ§èž
-Ê#åTa³Æé6qŸÝÕÑÖÔ©
-³u‚ySšBb…‚M¹™·kB3ÂXXa±îÒî^äÀ¿RâÏâ$\¦GÅØ/l³í„P
-˜á òÂi¾¥GNÖ#ðl-qƒr=)¼ìÄž[†YE¡^=	jÔ“ n=1ªˆ©'Áª'AVOs¿žèÂzœ^OŒ:õĨ®'Fe=‰¹¸,ñ˜CzÛç-ØI·Ú¢äÓ—U¸ü´o>rñä¿$ƒ´›E`x±cèÍ`ï÷{ïW³¥7¶‚%tø«t«  «¡(_E5´¶N
-5«ˆ°~Æaõ‡E
-M‹˜º¯g¦7ë˜Þ¬6}þÈØ7½H4*ðM4Ä.«­¢P× ´†h=T2d
-˜ÀË
-`Õ1€Um «–ŒÂ ƒ¼ˆ½Öi§ŠB]5`Ô3€]E„µ€Î¡ÜÜ vØÕ°k »¢W¾$+(Ô3 at P£
-êvA¢n2Ⱥ þ
-Û1€“À©c §Ú N-ˆº :- ¨ß5º  nÔ®"RÕ¬Ü í:hW ]m€ÍÃ5‚¢ÅŒ >’àsÄt˜«€AÞ²P`†P3£Öl¤‚B]û©÷`AݬRÆÒ\aÇ~Fn?·ŽýÜjû¹Çí§Æ'Z®¶›.›%ë¶ãtM]7p½ëÊŸƒêWìqú©7Æ}0\²ðèe7¸tÔG>%Á'(Ê0HÈv¤9^´òz
-fefñøáfIÆ?›©¿Â S'ÿ~Lboo;r}ÇÅÐO+w[mÌ£	̇óÙ6%u¾¶ÔjÀƒ§U½–š¢¥2X£E*˜ÃqgeŸSAaØ‘od¤“‘AF”ŒLò½FÓ¶™®„tœýR¤ÍQ­Œ*$”µªÄO"`”•Ý åð*Ú¸÷Ø#ï|{WÔ4‰¿ÀÌ5&5]âoæì«å“É"XxìŸvuHÁRÐ
-n™‚[¢ÉÀ–l¶+¬ äÇÉ*!ãñÆÛ@Ã¥ð¾óN€˜ÝÑZ¸ß
-ˆôªãGÓÕ]j÷ÆMÀïõú́
-xj;8ÿw]<]¹‰1ÔË.aðÞ%?]÷@ÌÏý ãj3#ú•i”˜•Üfq‰­LÝØS‚¶ì}%¨@	˜A‚ú˜žágâMq½sý\š[‰-!ÅK–êÊ"câBÈàç)ÉàŽ:ôlZVæ®9ªPr À:A B±<ÐŽÖcYXÚ!T‰]Eó„DXÊdôÌÚÓû<±ìF¤¾%÷½TÚ654ôq%3èÞ0Î/ráB½wÈðúR@ ]O¥ëi8™§SØ3=Ã%T¨ÓÃOT¯‚ OÅ×Ï›liîàf‡	Æ;àkd0úB ìn¿öþ4%@«‹?ü0Ìz,û	Ô.ö’	¢ä%­Z4ë´‡/ÃRB«¼ïÕc¬kP‘÷ª–¨ÿ³3«ê©m…¼×4ìãáó{è±ÎÖØïlͽÎÖ”u•F©³µŠ®RŸê|j‹,)…Rg«—)¸%
-f¹Ÿ
-0 at gÞAé‡Ý“¥ýò¯x»^zó ]ƒ‚j¸-ßæzõæÄægÚ“ÆÍ¯¦6Mp3i»d‘ΣyÈG&ot½Ì=îãZ9KŒ^Ο>àþþ¸'³|°Dùñ×<R°ÈCž€"²öŽØFËÒí®q‰¦ž#©ðAü`«ã´ÊŸ”~fÁQŸŒW¡÷‚¢±€û9ô)YùY­2ES£Ê¡õÊ[có|Zù„9ž”Oå珺l·Œ-2 2õ",)V¨áz
-íZ3ŒÆzã?ù‹8a@èаñÉÁNMJÁw±˜“·^à+¼Ä¼õËͬI>Ì—&Á=R¬oI1¨\×T&kœqcÒ?]cìË}¿‚ÿÄ®ÖoäÝ»ÂmF~<þÈ7"yW×&x÷.¼±` Ÿ¬‹>)ï´XWÅÑ€y#™­üÙ
-êþÆÃøÁ¾çM¾ÊU,¹áXy•`[××ÛÍFt··—âš‘»=€ýòp›8Çó0\åÏûÃ
-rÖNß¼« ߀%ɳžÕ–•FLSàÌÓàPoãŸF×ßwƒ^Я¨àñâ‹ø;TÊ*²ž7!øcôìa¿›Í÷Û6äs¸y‹×/™‘´b?¯-ÝÖ^ŒF?^}¬#́ˆAÍ
-]w9ÿ~Œí‰Í½ZèyÂʳ8¨¯i"Ë´9„>®ÔÇ%*¢C“‚Ï8ì-ûÇÉUÒý…Eü~·.±ñS³kèÝi»Ûît;z%…Ñu|Žaü¬S}:Õà¿ ”gÛßk¿‰«’±Èúü¶
-·áErÙ„Ÿ›âç>ájQå¹ýCä¥KÿXéRV6T½ti%…ã¥KO,ÝÔ#—c½
-wž¶­1‡¾Žw—éÄúä
-bìdwk,è%¶›˜OM@˜‡L^½5ô¾I‹=ûÞrÉŽÉñu%ö“IA<  ïl‚¾øf÷_>ß´)¸†ÁGñ<ã,¿ÜtKÍWo™û@QcxI´¨fö‹\`ƒÖtK3Ћ…/w$˜¢5XhÖ§¿Ã[næmZ~¼Ø'Èf…+o3Ûelgn/8€!·cœ¯ã踙š@„„NMÁSÆL½ @CQÝ6Ë}!É›·BW îŽèA¦Ñ:Ša²ðÑÕ(	ß¡Ùl’.%ž¿ŽøÂ1÷=Í4È0‚Û>NB¾âË<ä½k—-jXùÛ&z^{Ë¿{Ñ«÷{ä-[ÓZpkûòŸi´^à”GPE“4Š,¶Am‹D¯tG£ž¦gH%H€ZÂÃn–­—üóeü¾ýÄ=sgè´‚9=;º
-5[¯0>:±Z¯CSô’û|ßO“‡Àdôë
-ªN†¸¢q»ÌÁFpïMr‹kÌ|DÔ%¿^=þÚxõwüm¶ÁŠ'ÂÉeêáÕ:€Úø"¨\Ã0NÔ/„Á&Ó/!¦ÁBöæîùÜ»àþaÙT6Âå´ð²q=߆›8ÆæœyN§«‡ÇœƒLZÆÅ%i¾ŽŽœŸ¿`J¶ôžÃõβê"?­<÷>ªá~2ú0#åÒé‡OTh<Üö¿‡u@ÿ[	.õjÛ•ëî~0"w[(€’cÀ
-ôŸløtɑޗ4ÇÝbnÝÒ+šò»$쀓F:ÓýèÕIÏåÃKÏU@§Õ|/w§ÏÝ2ŠÎÛj,`°GõghX?w[¦ÿšäxhW
-ôª#KUPG„
-=£óÊ>ýî†-èfÓ”ßà
-оÃ'ƒÏêâ7Îî;a‡¯Ù†F;h³àô;}´†y*n~'<EÇÿcâ~ú¦ŽÿûÄ+*-žzÂjm™¸Ÿ	ãÉÉ2X°HM2}q“üÒ'7Ü#¹~K;·“s;ù¿KüÏj'ÿq¾Î×ù:_çë|¯óu¾Î×ù:_çë|¯óu¾Î×ùú·»þqø\À X 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8em64t-4c2t.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,31 +0,0 @@
-Machine (phys=0 local=1016272KB total=1016272KB)
-  Socket #0 (phys=1)
-    L3Cache #0 (8192KB)
-      L2Cache #0 (256KB)
-        L1Cache #0 (32KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-            PU #1 (phys=4)
-      L2Cache #1 (256KB)
-        L1Cache #1 (32KB)
-          Core #1 (phys=1)
-            PU #2 (phys=1)
-            PU #3 (phys=5)
-      L2Cache #2 (256KB)
-        L1Cache #2 (32KB)
-          Core #2 (phys=2)
-            PU #4 (phys=2)
-            PU #5 (phys=6)
-      L2Cache #3 (256KB)
-        L1Cache #3 (32KB)
-          Core #3 (phys=3)
-            PU #6 (phys=3)
-            PU #7 (phys=7)
-depth 0:	1 Machine (type #1)
- depth 1:	1 Socket (type #3)
-  depth 2:	1 Cache (type #4)
-   depth 3:	4 Caches (type #4)
-    depth 4:	4 Caches (type #4)
-     depth 5:	4 Cores (type #5)
-      depth 6:	8 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,56 @@
+Machine (phys=0 total=33331648KB Backend=Linux)
+  NUMANode #0 (phys=0 local=16554432KB total=16554432KB)
+    Socket #0 (phys=0)
+      L3Cache #0 (9216KB line=128)
+        L2Cache #0 (256KB line=128)
+          L1Cache #0 (16KB line=64)
+            Core #0 (phys=0)
+              PU #0 (phys=0)
+      L3Cache #1 (9216KB line=128)
+        L2Cache #1 (256KB line=128)
+          L1Cache #1 (16KB line=64)
+            Core #1 (phys=1)
+              PU #1 (phys=2)
+    Socket #1 (phys=196611)
+      L3Cache #2 (9216KB line=128)
+        L2Cache #2 (256KB line=128)
+          L1Cache #2 (16KB line=64)
+            Core #2 (phys=0)
+              PU #2 (phys=1)
+      L3Cache #3 (9216KB line=128)
+        L2Cache #3 (256KB line=128)
+          L1Cache #3 (16KB line=64)
+            Core #3 (phys=1)
+              PU #3 (phys=3)
+  NUMANode #1 (phys=1 local=16777216KB total=16777216KB)
+    Socket #2 (phys=256)
+      L3Cache #4 (9216KB line=128)
+        L2Cache #4 (256KB line=128)
+          L1Cache #4 (16KB line=64)
+            Core #4 (phys=0)
+              PU #4 (phys=4)
+      L3Cache #5 (9216KB line=128)
+        L2Cache #5 (256KB line=128)
+          L1Cache #5 (16KB line=64)
+            Core #5 (phys=1)
+              PU #5 (phys=6)
+    Socket #3 (phys=196867)
+      L3Cache #6 (9216KB line=128)
+        L2Cache #6 (256KB line=128)
+          L1Cache #6 (16KB line=64)
+            Core #6 (phys=0)
+              PU #6 (phys=5)
+      L3Cache #7 (9216KB line=128)
+        L2Cache #7 (256KB line=128)
+          L1Cache #7 (16KB line=64)
+            Core #7 (phys=1)
+              PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 NUMANodes (type #2)
+  depth 2:	4 Sockets (type #3)
+   depth 3:	8 Caches (type #4)
+    depth 4:	8 Caches (type #4)
+     depth 5:	8 Caches (type #4)
+      depth 6:	8 Cores (type #5)
+       depth 7:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,24 @@
+BZh91AY&SYã;މ Xi¥ÿØŒã—ÿþuï΀ÿïßð   kø`7¨A´Ì¶àw:× [
+P) R
+œº€   ™4ÐÈ b2€`ˆ4 d
+ SñõT¤üªž¦˜€†™4##!“„d0M©™	)µô€=       z “I	©’OL¦€   4    ™4ÐÈ b2€`ˆ4 d
+ )Ah™ “hž¦§”ñM=Aâ†LšM2i¡¦PÍOÖ'抗äòÎ'èíÁ_œLÜ&ãàý¿KQɃÝ÷¾/àøþOáùy»òåˏ\Ž!ÈF"w(©e*½ŠªÀe%‰/AMººúiÕ§=:®©HL£z¶´‹ÝÅ®ê©wWvÔZâ×uT»¨ÕêôÓM4Ò…N\î©^îÖ™™˜Öµ3©L¦S)”ÊT¥)JR§7¨Ôj¸FBÞ÷™›k{Þ´ÅÝØMU)JR”•̵2ÔËS-Lµ2ÔËD!„!wvÞ^ðËÕïxÞ·ºÝn”¥#
+R²”¤ÕW­V©JR<Ü`ÒUU^‰ŠŠ£éEgJ(Ã:QFÒŠ0ΔQ†t¢Œ3¥S¥{  ±°-Ћa5râÕ6\L!1Š"$Dˆ‘,(°²&A˜Ìc1˜Ì	°!Ⱥu9(à:ª¯Kj½Zæ\LÌÃÌ0ÌÃ¥-)mà„‡Q
+ªª†u"ŽéKJZRÚ[Jа°Ú)––Ò–”¶•–cc,eŒ³#Q7oÑrŠ–©‚S›0`N Òª—ÝŠ–RHÈÔɃ2¬ÃLÉFXÌIfH¬Å&9õp½LéÒÕŸáÂÕ›|ö¬Û•«&2c&1ù³óP~€õŒã¼ ß1m=G,K–%Ëå‰rĹb\±$õü¥-”¶RØÑ²–ƍ”¶h úÐ \憹cž*&K™h˜i,eL:h,aD:h,bf&K™‰†’ÆTæ‚ÆêŽÕ­v\ð´Å¦MóÑÛÇ—_?*J2
+¿TT°'Ò&±)àõ½òj&ÃÛÙ®€qZžB*ªªªªª¢*«èóà'›3Ñn&8ânS9€H{”¬8EK€û‚úA²pç›é§]uã¶Û$’I$’I$‘%ݸ€
+0Ë4Ìêc¸¾ÆÆqïòyÏUUSÄÅUUT·Y¯ø                                            3333332Jªªªªªªªªª³Ä‰%öK2K2K2KŽIfIfIfIi§mÙ„³	fÌ%˜K0–a,Áëâši™Z>‘$$’I$’I"K»»°µ€‘`	feUUW€88UUU;ÛƒjŽ­­¶Ú¬âpªª³@P4€Ð@NÝ£·z;víÛ´vâ";ýþø 7 kóÇ<àUUU99UUUV×$’RI$’I$‘%Ý݆a¹°°|¥êt+5­mÑ‚L7&M§^5HMz¨§ÆÐבïq5òšü=êøÝ¦¸OGsæÓ§Å¦û´o·ÏþãÓæÐb¦
+`´˜ÌÆ3:û<ª¨§²*^Çô¾¡ãûéHúDØ>±õ‰õ¾¡7¬:†ÌE ´¶ÇÁø;Ç€ø]ãú„ü¿ÛøÿːüqzÄ• T½QRëc²cÌÓe´T±6¶cžÍꥴÁè{ve½ò7ÚØÓlU/æÝËâŸ7Î€àx›7mšÙìö8×ÁL9V`.!¬‘C&,Bfi´D²ar ð hŸˆÇi:½¤÷½Û ÅL,Ái09_Œ}ó‡.ï h|Üz's€RîÌÑD³A–Ð.Öu†Úuéâwö|½¢ã·k®yY6¨—>°åÙ-x¹p“ãÐûð8ôäé¿?Ë3¾\6P´ß¬ä¨™Âf¸háÅÌr:ü<ο&xYÜ×çÙ»t`“o38Ëšœ&ÏPBeÈ4
+í<`rê³°yGnTÁ2`uty~};•K\újïØ8]£v¢otðJÛ`Zw4k8l9à›0o§
+Fž=kƒŒÎჽ0°aZ¬›å•bdÅY–£}ZYVY¢*^è©}8Bz9çêu^´óvÞwœ^voWfF.ɾ
+µÛ]­óVð/(;;FÞ¦TÁ2`r—&EÖÍ2:wk­1ÇAßÃM±;µO7C{Ù
+Ín:Õ=‚ÔPõ#½ì£
+Ãd	Ó¯s“Ÿ;ůÐ¼Í^¦²Ý&36\xfº³]mñ¸ì
 ª]Ã@Äœ»â|µå‘Rñ˜1SɁ®ÛN“Ìsó`œ8ñÙŽ3A¯n›µnÞimšmëllmqŠ–¡N*išhÝÅ“¼Jgeœ\‡{y¶ôk‰°ÅM–šN}|uó`írÑÇlÎ]®w3NxMÞ8íÆíp/âho	«†èï!ÞÑÖK‰¿©v;]#WERζ8ôË–­ö¸HZ´ÚßG
+8ƒ˜ó0¹Ý2sh59N®÷ɘA¡1PÖ`I|MëO2ðey7½lÞt¢3…ÍÙªp›ºÔ:0‡¶:ò‹Ø!8†e†ó±Ú†uÀTQŒF1’ÜfH	É«!@D@ÕiY‹Ko7ú"¥Ã„vs朹¹k¶ª!ÃÀä0¾¹„ê…´å•(Ê”JÕÑGS§&Ýè¹Á׎]¥àÕO¡Öe;7­Ã™»8MÝpÉâäéÔ!,ç5Òp2ä
+CÖg«¦™k!,¸dÑ,´a®°+UÄFFÚ壚m†´o“­D³yŒc7‡£ƒ~wœE܏.ó[^]5à;¹oœ†
+<š°îŸÎ@¯ÖFudŸã×öâTÁË*fæ¯Tª¶\8#&ŒqfæqfqzÍq*`さ3sW4uQQq瘽íyÎEæsN÷šÍß=ךÌâÜ9¨¨¸êw×Qyœ^u‘ySž#5›¾»¯5™Å¸4uQQq©žy‹Þלä^g4ïq¬ÝóÝy¬Î-Á£šŠ‹Ž§}u™ÅçY™Õ9â3Y»ëºóYœ[ƒGU™ç˜½íyÎEæsN÷šÍß=ךÌâÜ9¨¨¸êw×Qyœ^u‘ySž#5›¼p2¦njõJ«{˜_‡²{$à
+4§O¤Ô3ô“Ùù‚~VÛa6—üæ‹ø(û㉎ÀÇìcì~ÿË™ú\÷N!÷¼™˜ªª¬	„Ÿnž¨C?‰£w;÷^Žƒf­Áä>§æÀOãuã!à'ßWèô3˜˜&ƒüôæ'1Ì,ñ—ÌàC÷EK½u6}Ò?P{ïÖ=nÑö>ƒ˜ä˜ëIö4Š—°O`›5~Ðîõ‰Öô{âzš¹	犖§_TT¹OØÔx̪¥¸TêØMÝ]‚cÞ
+_µÈNAЖÃ9Bqª¥¸”ÇÚ'˜X¦ff+Áïð‚Sä¾ßc-¼Á³íZ
+Ú€:	ƒvïò;‰Ó˜œRô¯;a7{ôè'8©`µT»{1™6A;ª"öû|¡;ǍézOB0lo,wEK„5¡t²;[	Ôh=£Ì?T¸	Ä<Á窥È>Ðáê|o<T½á)‚zØþGx|-Þ·°îKˆœ
+wïGÆFÑ=høÞ§­ÔÑÞ'®*^q5Ö'Q
+ö-ÄœZµvõEK€s}Ø©{š¿õâuº„åB_¸u$|M\ƒwkåc‚O}ìw‰üB{bt	䊖âyÄøDè¡6§ÝHù_¸êó¤í8š¼cÒ&ÛºVEKÑI°{F¢{†­„î÷¥£€È©y
+òDÈ¯ˆT±U/¹,MíñzÞôTµQ06&‚g:ÝÂz8ÅKWT¶*Tµn{´.ñ’©l–*¥ÁÈMœGœDÐNá8‡`›	ÌO€ž |GPè¶bMõ/µ(}¸CË=Âun•f‚q:	›	NÑ<Âc¸L¸T¹	ç*¥Ì'º$ÿrE8Pã;މ
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,84 +0,0 @@
-‹ ·Ö9K ímsãÈu…÷óþŠù‰n ÒßìšÚŠ+‰+Už©|dA$D¢†C°Hjå×”f$
-/ÑgÑg7sÏS¶÷ehQbë·OßžµuYü«ßù£_ýñ‡4d=U翺*dOÿìŠâé¯_øÁ9Ÿùe…ëÿ½ó¾(x}?ox8žêûw?Ü­»õ¶ÝýÂëšÃ‘ñ
-q™]Žÿññ˜âw`Üø»¼*C\ÿç.w™Óø3¸ÿUós»l&ý=ˆÿ"ø\ãÏàŸŽÿ÷§æó$¿qãïúñ/³þe·Æ¹øÕ¿#Çßå¡,B–ŸÇ¿Ìå?…1ãßÿ·ü5¿þg>;Ïÿªóm@ãO`ôøŸº}·í֏À/Bôø{——…ÆŸAüøŸ6‡¦^-Ží]ÿq­Ç|$ç.žÇûÛãïý`üûW÷þgÉú̏ÿ×!ø—ç¿ُ¿õw$˜Äû¿ß<Ûe½]ìëå§zÝ,ÚՍ÷¸éïü[ÿƒ/¼ügàC)ã
-ïÿ²;Œpþ’Ûþïÿ¾:×ÿäzœì7
-èÄìšÿ;/ÿ)æÿAó[ŒöY/7
-VŒ«ÿV½ÿY•ê?"ǿݭšÿñ‘¿@ý¯*Tÿ£€ÿ±ýßfü{Üžÿ‡áü¿ÌõüO¡þÿwÝòí‚ù_ŸN‡öîáÔŒ2â¦ÿîeþï\•ŸçÿYÿþûОš¿ÔËOº˜óÿô¸O|ÿ/ôüOá}}ª¥¾]0ÿ·ÍÏÍvô{ õÿsþCþ§ÇK~Ó`þ/»MshvËÇE¯Ìy5àËëÿ_æÿ¡ê§òŸ€ó3]ƒùÿúñ¸èîõñØ-ÛúÔþÜžÿé{DÜÿ¿ø_æòŸƒì·
-XÿßÔ‡fµèÿ`ñ¹Þßz`ý¿ÌõüOa°þ¯ü¯10ÿwŸïšÃyplN7­ˆŸÿeUÉÊÿÚñ?cä?¼ò°ñŸ:ÿ1ÜÿáK¯ë?§ø‡i0ÿ§Î„ëüG.ÿ<å?>lÝÃz£=0ÿÓç?rÝÿ)(ÿaÌBþCùO
-ÚÿiÌÿ©óùuþCþS(] ,ƒùOÈèùŸ‚ô·
-XÿOžÿPýŸƒò¶ÁüŸ:ÿ1œÿe¥ý4ÿ·
-âÎÈå?`ã?uþ£\ÿ}©þŸ\³UÄ.˜ÿç?2wÿPþŸ‚Ô·
-æÿÄùwÿÔýŸÃ_wÇÓáayj».Áü'ä?´ÿ—‚úØóŸÐÿ£”ÿÔÿÃ6˜ÿ„ü‡ü§ ûmÖÿSå?^Öuþ‡Aþ#SþØÿSç?®öêü/çõ?)oÄÿ‚‘ÿ(•ÿ`€²üÇëþ_Õ)̽:€XóŸpþ‹ò¿tþ‹m0ÿ§ÎçêÿÁâ㮽o›•ì7
-æ?!ÿ¡õ
-¹Ì7
-æ?!ÿ¡û?å?lƒùOÈÈ
-sÙo°þŸþüõÿ¡ ü‡m0ÿ	ùíÿ¢0ssm1â¿cä?rå?`ãŸìü——þ¹ê¿”þ°
-æúþ…ê?$¿m0ÿ	ý?´ÿ‡‚úØóŸÿPý—‚α
-æ?áüùOAýŸmƒùOÈhÿéo°þŸ¼ÿ‡êÿùÿbÌÂù/ÚÿMAóÛŒôßGF>ޝÿ8¿ªPþƒÁèñ?uûnÛ­_„èñ÷./3?ƒøñ?mM½ZÛ»þãZùH"æÿ_óßE®ç
-ƒù¦é€-âýßoí²Þ.öõòS½níêÆ{įÿ/ÿ9èyß6ñþ/»Ãç/‰÷ßëùŸ„Öÿmú1û‡æÿÎÉ
-ÃùÐõÀ£ý®ÿCï1²þãòP!«zÿ³´ÿ‹Bäø?­ÿăú_U¨þGÿ©÷ÿ…«ù¿×ú?´Ð2˜ÿéû?òŸ‚ú?Ûóâý߸ÿëüïëS-õí‚ùOØÿ§ý¿ÔüÉ6˜ÿ„þÏ:ÿ‚ú?ÛóŸ°ÿOþSý¶ëÿÉû?{=ÿS®ÿ+ÿkÌÿ©÷ÿ
-çÿEY©ÿJoÄÿŒÿÈuþ7lü“õ~ÍèúOAýŸmƒù?uþãêüõ&ñ”ÿø°9të.öÀü'ä?tÿ§ ü‡m0ÿÓç?‚òŸ´ÿÓ6˜ÿÉû?—•ü§ þo¶ÁüOžÿð•žÿ)HÛ€õÿôù=ÿSPþÃ6˜ÿ„þÏÚÿAAóÛ þçŒþNùØøOÿ(uþ÷o„ëo¶J€ØóŸpþ·òÿ¤¾m0ÿÓŸÿ­û?ÿmÌBÿíÿ¥ þ¶Áü'ôÿðòŸúØóŸÐÿCþSý¶ëÿéÏÿÖù_†ùfÌÿ©óWû?uþ‰óúŸ”·âÁÈxå?`ãŸ,ÿñºþ£ú/…¹WË`þ§?ÿ%(ÿKAç¿ØóêüÇpþ§þ,>îÚû¶YÉ~£`þòZÿ¡Ë|Ó`þòºÿSPþÃ6˜ÿ„ü‡ü§0—ý¦ëÿéû¨ÿå?lƒùOÈhÿ…™›kˆaÿãü—JùØø';ÿåµÿ‡ê¿”þ°
-æ?¡ÿ‡ê?$¿m0ÿ	ý?´ÿ‡‚úØóŸpþ‹ê¿tþ‹m0ÿ	ç¿È
-êÿlÌBþCû?(HÛ€õÿôý?Tÿ§0Ìèz`ÌÂù/ÚÿMAóÛŒô?DF>ޝÿ8¿Jù
-£ÇÿÔí»m·~~¢Çß»¼Ì5þâÇÿ´94õjqlïúk=æ#‰˜ÿ͹êó¯ü·-âýßoí²Þ.öõòS½níêÆ{ÜžÿWÿCÿܼœ••¤·J¼ÿËî0ÂùK"êÿ/ëÿªÿsÐýÞ6 ÿ³hþï¼ü§0˜ÿ׺Øb´ÿÏõè=FÖ\Êâ\øë/!”ªÿ0ˆÿ§õÏèÿ¬úlü§ÞÿÔÿù7Âm ´æ?¡ÿ³ü§ þ϶ÁüŸxÿß7îÿ…žÿ)¼¯OµÔ·æ?¡ÿ³öÿSPó'Û`þú?kýŸ‚ú?ÛóŸ°ÿOþSý¶ëÿÉû?çzþ§0XÿWþטÿSïÿÎÿÕÿ™…¥Œ7âÆÈ8å?`㟬ÿóËú×õŸ‚ú?ÛóêüÇÕùYPÿ
-Où›C÷°ÞèB`Ìÿôù\÷
-ÊØóŸÿPþ“‚ú?Ûó?yÿç*“ÿÔÿÍ6˜ÿ„ü‡žÿ)HÛ€õÿôçëùŸ‚ò¶Áü'ôÖþ
-šÿÛñ?gä?
-å?`ã?uþ£¼:ÿ»Pý‡‚ëo¶J€Øó?ýùßAù
-Rß6˜ÿéÏÿÖýŸƒÎÿ¶
-æ?!ÿ¡ý¿ÔÿÃ6˜ÿ„þAþ3PÿÛ`þòòŸ‚ì·
-XÿOþ·Îÿ£0ÈdÊØóêüÇÕþOÿEâ¼þ'åí‚ø_0òAùØø'˼îÿUý—ÂÜ«ˆe0ÿ	ç¿(ÿKAç¿ØóêüÇpþ§þ,>îÚû¶YÉ~£`þòZÿ¡Ë|Ó`þòºÿSPþÃ6˜ÿ„ü‡ü§0—ý¦ëÿéÏQÿ
-ÊØóŸÿÐþ/
-37×à þ;FþÃ+ÿÁ ÿd翼ôÿÈUÿ¥ ô‡m0ÿÓ÷ÿ(Tÿ¡ ùmƒùŸ¾ÿ‡öÿpPÿÛ`þòªÿRÐù/¶Áü'œÿ"ÿ)¨ÿ³m0ÿ	ùíÿ  ýmÖÿÓ÷ÿPýŸÂ ÿ¡ó_ŒùO8ÿEû¿)hþo›‘þÇùò†èüÇùUêÿAaôøŸº}·í֏À/Bôø{—ŸÏÿÖø§'~üO›CS¯Çö®ÿ¸Öc>’ˆùÿ×üw¡ù?‡Áü?Ón0[Äû¿ß<Ûe½]ìëå§zÝ,ÚՍ÷¸=ÿ¯þ_¨þOÁÍËÒiÐ,ñþ/»Ãç/‰¨ÿ¿ä*åÿ(H}Û€þGÌþ¡ù¿sòŸÂpþ_ëz`ŠÑþ?×ÿ¡÷Yÿqy(‹Ð?ôtþ3…ÈñZÿñŒýªÿQÀÆêýájþï•ÿ§àƒ6 Zó?}ÿçBþSPÿgÛ`þO¼ÿï÷õæð¾>é‘ß0˜ÿ„ýêÿDAÍŸlƒùOèÿ¬õ
-êÿlÌÂþ?ùOAöÛ¬ÿ'ïÿìõüOa¸þ¯ë-0ÿ§Þÿ7œÿkÿJoÄÿŒÿ8÷ÿSþ#=Øø'ëÿüšÿÐõŸ‚ú?ÛóêüÇÕùYÿ2ùOà)ÿñasèÖ]ìùOÈèþOAùÛ`þ§Ïå?)hÿ§m0ÿ“÷.+ùOAýßlƒùOÈèùŸ‚ô·
-XÿOŸÿÐó?å?lƒùOèÿ¬ý4ÿ·
-âl3h$ÿ¡ó¿9`ã?uþ£¼>ÿ[õ
-®¿Ù*b̝ÿý½ õmƒù¯ó¿¿tþ·m0ÿuþ÷÷‚úØóŸÐÿCçÿRPÿÛ`þëüïïÙo°þ¯ó¿¿†ùÿmÌÿ©óWû?uþ‰óúŸ”·âÁÈäÊ0ÀÆ?YþãuýGõ_
-s¯ –ÁüOþKPþ—‚α
-æÿÔùáüOý?X|ܵ÷m³’ýFÁü'ä?´þC!—ù¦Áü'ä?tÿ§ ü‡m0ÿ	ùùOa.ûMÖÿ“÷ÿÈÕÿ‡‚ò¶Áü'ä?´ÿ‹ÂÌ͵Ä0ˆÿŽ‘ÿÈ”ÿ`€²ó_^û¨þKAéÛ`þú¨þCAòÛóŸÐÿCû(¨ÿ‡m0ÿ	ùÕ)èüÛ`þ'?ÿ¥ÒùÔÿÙ6˜ÿ„ü‡öPþ¶ëÿéû¨þOa˜ÿPÔ˜ÿ„ó_´ÿ›‚æÿ¶éläã
-Ñùó«ÔÿƒÂèñ?uûnÛ­_„èñ÷.?Ÿÿ­ñOOüøŸ6‡¦^-Ží]ÿq­Ç|$óÿ¯ùïBóÃù¿Â ¶ˆ÷¿y<¶Ëz»Ø×ËOõºY´«ïq{þ_
-ü¾PýŸ‚›—¥Ó" Yâý_v‡Î_QÿÉÿTÊÿQÐ~/Û€þGÌþ¡ù¿sòŸÂpþ_ëz`ŠÑþ?×ÿ¡÷Yÿqy(‹Ð?ôtþ3…ÈñZÿñ„ý¹ê°ñŸzÿ_¸šÿ{åÿ)ø 
-€–ÁüOßÿ¹ÿÔÿÙ6˜ÿïÿûÆý_ýŸ9¼¯Ozä7æúýAýŸ(h½ß6˜ÿ„þÏZÿ§ þ϶Áü'ìÿ“ÿd¿mÀúòþÏ^Ïÿ†ëÿz°æÿÔûÿ†óíÿcáC)ã
-ƒøŸ1òAùØø'ëÿüšÿÐõŸ‚ú?ÛóêüÇÕùYQÊOù›C÷°ÞèB`ÌBþC÷
-ÊØóŸÿPþ“‚¶~Ûó?yÿç²’ÿÔÿÍ6˜ÿÉó¾Òó?éo°þŸ>ÿ¡ç
-ÊØó?}ÿçRû?(hþoÄÿ\ç7`ã?uþ£¼>ÿ[õ
-®¿Ù*b̝ÿý½ õmƒù¯ó¿¿tþ·m0ÿuþ÷÷‚ê½¶Áü'ôÿÐù¿ÔÿÃ6˜ÿ:ÿû{AöÛ¬ÿëüïï„aþCçÙóêüÇÕþOÿEâ¼þ'åí‚ø_0òNùØø'˼®ÿ¨þKaîÕÄ2˜ÿ„ó_”ÿ¥ ó_lƒù?uþc8ÿSÿwí}Û¬d¿Q0ÿ	ù­ÿPÈe¾i0ÿ	ùÝÿ)(ÿaÌBþCþS˜Ë~Ó€õÿôý?Ôÿ‡‚ò¶Áü'ä?´ÿ‹ÂÌ͵Ä0ˆÿŽqþK©ülü“ÿòÚÿCõ_
-JØóŸÐÿCõ
-’ß6˜ÿ„þÚÿCAý?lƒùO8ÿEõ_
-:ÿÅ6˜ÿ„ó_ä?õ¶
-æ?áüíÿ  ýmÖÿÓ÷ÿPýŸÂ0ÿ¡Å`[`þ§?ÿ¥Òþo
-šÿÛf¤ÿ±-?ޝÿ8¿Jù
-£ÇÿÔí»m·~~¢Çß»¼ôñãÚšzµ8¶wýǵó‘DÌÿ¿æ¿‹\õ?
-ƒù¿SþÛñþï7ÇvYoûzù©^7‹vuã=nÏÿ‡ëÿÁšÿSð¡”ñ†‰÷ÙF8IDýÿ%ÿ£ú?Ýïmú1û‡æÿÎÉ
-ƒùÐõÀ£ý®ÿCï1²þãòP!«zÿ³Ð¿\õ‘ãÿ´þãýŸUÿ£€ÿÔûÿ‚ú?ÿFôÏÿÚ hÌÿôýŸƒü§ þ϶ÁüŸxÿß·îÿzþ§ð¾>ÕRß.˜ÿ„þÏÚÿOAy_Û`þú?kÿ?õ¶
-æ?¡ÿ³ü§ ûmÖÿÓ÷Öó?…Áú¿ò¿ÆÀüŸzÿßpþ¯þÏ,”ÿµ
-âÆÈdÊ0ÀÆ?Yÿç—õ¯ë?õ¶
-æÿÔù«ó?² þ/žò6‡îa½Ñ…À˜ÿ„ü‡îÿ”ÿ°
-æ?!ÿ¡ü'õ¶
-æòþÏU&ÿ)¨ÿ›m0ÿ	ù=ÿSþ¶ëÿéózþ§ ü‡m0ÿ	ýŸµÿƒ‚æÿ¶AüÏù\ùØøOÿ(¯ÎÿVÿO®¿Ù*bÌÂùßÊÿSú¶ÁüOþ·îÿtþ·m0ÿ	ùíÿ¥ þ¶Áü'ôÿ(ä?õÿ°
-æ?!ÿ!ÿ)È~Û€õÿôçëü?
-ƒüG¦ü‡-0ÿ§Î\íÿÔù_$ÎëRÞ.ˆÿ±‡CùBùØø'˼îÿUý—ÂÜ«ˆe0ÿ	ç¿(ÿKAç¿ØóêüÇpþ§þ,>îÚû¶YÉ~£`þòZÿ¡Ë|Ó`þòºÿSPþÃ6˜ÿ„ü‡ü§0—ý¦ëÿÉûäêÿCAùÛ`þ'Ϩÿ‰™›kˆaÿ#ÿá”ÿ`€²ó_^úäªÿRPúÃ6˜ÿ„þªÿPü¶ÁüOßÿCû8¨ÿ‡m0ÿ	ùÕ)èüÛ`þΑÿÔÿÙ6˜ÿ„ü‡öPþ¶ëÿéû¨þOaÿÐù/ÆÀü'œÿ¢ýß4ÿ·Íÿ½ù«Åñói±ïþÑk¬nwëñ2œ
-/£æÿy!ÿ9è~o›‘÷ÿ,2òõ†³áQù¯ó«¼ò_Fÿ©ÛwÛnýü"D¿wy(5þâÇÿ´94u?hï¶#gÏÿ_÷¹êÏÿ™Ömïÿ~óxl—õv±¯—Ÿêu³hW7Þ#¢þÿÅÿàå?Íÿmïÿ²;Œpþ’xÿ½ê$ä¿m@ÿ#fÿÐü¿ÿ'ùÏ`8ÿº˜b´ÿÏëÐ{Œ¬ÿœ‹>EȪÞÿ,íÿ¤9þO뿞°ÿ7Wý6þSïÿ
-Wó¯ü´Ø2˜ÿéû¿òŸ‚ú¿Ûóâý¿ß¸ÿëüïëS-õí‚ùŸ~ÿoÐþ
-jþfÌÿäýßuþ'	õ·
-æòý¿^þsý¶ëÿÉû¿{=ÿS®ÿ+ÿkÌÿ©÷ÿçÿEY©ÿ…þQKÆñ?v3 ”ÿ(”ÿ`€²þï¯ù]ÿ)¨ÿ»m0ÿ§Î\ÿ£þï$žò6‡îa½Ñ…À˜ÿ„ü‡îÿ”ÿ°
-æ?!ÿ¡ü'Õ{mƒùŸ¼ÿ{YÉ
-êÿhÌBþCÏÿ¤¿mÀúúü‡žÿ)(ÿaÌÿôýßKíÿ  ù¿mÿsFþ£Rþƒ6þSç?ÊÁõßëü®¿Ù*bÌÿ‰ó™»Î(ÿOAêÛóâü‡»ÎêþÏ᯻ãéð°<µÝN—ƒ`þòÚÿKAý?lƒùŸ¼ÿG•eòŸúØó?yþ#—ÿd¿mÀúªüÇËú¯Îÿâ0Ìè< [`þOÿ¸Úÿ©ó¿Hœ×ÿ¤¼]ÿBþ£È”ÿ`€²üÇkÿÕ)̽:€XóŸpþ‹ò¿tþ‹m0ÿ§ÎçêÿÁâ㮽o›•ì7
-æúüG©õ
-¹Ì7
-æ?!ÿ¡û?å?lƒùOÈÈ
-sÙo°þŸ¾ÿ‡úÿPPþÃ6˜ÿ„ü‡öQ˜¹¹¶€ñß1úå?`ãŸìü—×þªÿRPúÃ6˜ÿ„þªÿPü¶Áü'ôÿÐþ
-êÿaÌBÿÕ)¨ß³m0ÿ	ç¿È
-êÿlÌÂù/ÚÿAAúÛ¬ÿ§ïÿ¡ú?…aþC϶Àü'œÿ¢ýß4ÿ·ÍHÿ«ÈÈÇ¢óý«œSþƒÁèñ?uûnÛ­_„èñ÷./•ÿ¡?þ§Í¡©W‹c{×\ë1IÄüÿkþ»Ðú?‡Áü¦ü·-âýßoí²Þ.öõòS½níêÆ{ÜžÿWÿƒWÿn^ÎÊJÒ[%Þÿewáü%õÿ—õÿLù
-ª÷Ùô?böÍÿ—ÿóÿZó[Œöÿ¹þ½ÇÈúËCY„þY ¿„Rý)DŽÿÓúgôVý6þSïÿ×ùõÿ§àƒ6 Zó?}ÿç ÿ)¨ÿ³m0ÿ'Þÿ÷û¡ç
-ïëS-õí‚ùOèÿ¬ý?ÔüÉ6˜ÿ„þÏZÿ§ þ϶Áü'ô–ÿd¿mÀúòþÏêÿÃa°þ¯ü¯10ÿ§Þÿ7œÿU¦ý¿|(e¼aÿ3Fþ#Wþƒ6þÉú?¿æ?tý§ þ϶ÁüŸ:ÿquþGtþ…§üLJ͡{Xot!°æ?!ÿ¡û?å?lƒùOÈ(ÿIAû?mƒùŸ¼ÿs•É
-êÿfÌBþCÏÿ¤¿mÀúúü‡žÿ)(ÿaÌÿôýŸuþÍÿmƒøŸ3ò¥ò°ñŸ:ÿQ^ÿ]¨þCÁõ7[%@ì‚ùŸþüï ü?©oÌÿôçëþÏAçÛóŸÿÐþ_
-êÿaÌBÿÿGAý?lƒùOÈÈ
-²ß6`ý?ùùß:ÿÃ ÿ‘)ÿaÌÿ©óWû?uþ‰óúŸ”·âÁÈTÊ0ÀÆ?Yþãµÿ‡ê¿æ^@,ƒùO8ÿEù_
-:ÿÅ6˜ÿSç?†ó?õÿ`ñq×Þ·ÍJöóŸÿÐú…\æ›ó?}þÃéþOAùÛ`þ§ÏÈsÙo°þŸ¾ÿ‡úÿPPþÃ6˜ÿ„ü‡öQ˜¹¹¶€ñß1ò…ò°ñOvþËKÿ\õ_
-JØóŸÐÿCõ
-’ß6˜ÿ„þÚÿCAý?lƒùOȨþKAç¿ØóŸpþ‹ü§ þ϶Áü'ôÿÐþ
-Òß6`ý?yÿÕÿ9ò:ÿŘÿ„ó_´ÿ›‚æÿ¶¹åÿ®[5‘q+Fæ?\Ê"ôׂ̕Uå”ÿ`0jüÏÿú¹`äø¿Ö]Õ£ñg1þý4 „ÞãiüûýåñÏ]™‡ÜOÏÿþÜÿÓÿá|ùÏ·ç%Ø7t‰Æ?bü1#¡ñ£Æÿ×_"4þcÇ¿Ÿô×ý‡uŠ~[ó.ó?å9ÿJõÿ£pÔŦ=½ËË¢šç¾úñéß|nÇwÙóßßw‡¦]ïúlw§æ°mꟛ§ÿ‹ëoÖÞý¸í–õvqþ鿈Ÿù"ËìN›þùðéß¹y9WÁß+þn>·»û.þ=nøï¼«†ùïþN ÿüø·'GßýgóùCwª·zwæü VyW¾ûô—‹üthšç?ן›»|ð‚Çfõåï|fÙ,»xÁŸ—§öç¯_ §˜ùr6»xÁ_wõÛ—¸löæ+ü[»Þ\|—Ï_pñ]^¿à?ºüòÙ¿à—Ì÷íáôøæëÞâ©£Ö]½üôϾɟÚmó_õº9~yAQõùIÖûýëùô’,¿|ÁŸwÝîò+¼sƒŸâü‡ê»íë+|^^~Ôûé»þW¿ÍŸ¾õMþ¥{Ø-›ÁÏyù‚¿oë»7ì|ñv°ÖÏ?æââÏ®ÿôâãVñ™NÜü¿€Þšÿç£æÿØ7t‰ñëÄø¯Úþ£ê/
-Ñïq»þ_^ÍÿÖÿ(¸ÐßeuÙ5KÜõÄbÿ7¸éÿUÿ‡þ2 ÿ)|‚/ëÿ÷ºØ"Îÿ
-zdþçܨùö
-]bÜÿÑ㟑×ÿJ­ÿ1ˆÿ^7½àÿù1`ŒÿØ7t‰Æìø§[ÿ)ªëõå¿(¼¬ÿ!”ó¼šG¬ÿTYÈ‹ËåŸþkø<›——Ë?Eégj2ü»%îúŸCïÕÿ²Q×ìºÄ¸ÿãÏ]ÿÓú?…çõ˜ìjý/„¢¸Xsʆëy‘g—Ë{Ùpý/w½Êáò+Öÿ\Yý½ââÃõ?_¸²,.^pcý/»µþ—]­ÿ]ý˜ƒõ¿ëózýÏÙìâ7Öÿ²áúŸ«æ3ÿæ+\­ÿ…¢×åò“®ÿÍÊÊ_¾ÅÕúŸËfîò£¾±þ—ÝZÿË®Öÿ|–ϳ7ƒõë™Öÿ~'ÄÝÿôÐó_1êþ}C—¿þGŒ?wýOÏ\öÎ]vÍwýÇŒ„®ÿ~Ôõÿ×_"Œû7þÄõ_]ÿ)|‚¯ýÿïu/B!„B!„B!„B!„øÅÿç¤_ h 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2n2s2d.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,56 +0,0 @@
-Machine (phys=0 total=33331648KB)
-  NUMANode #0 (phys=0 local=16554432KB total=16554432KB)
-    Socket #0 (phys=0)
-      L3Cache #0 (9216KB)
-        L2Cache #0 (256KB)
-          L1Cache #0 (16KB)
-            Core #0 (phys=0)
-              PU #0 (phys=0)
-      L3Cache #1 (9216KB)
-        L2Cache #1 (256KB)
-          L1Cache #1 (16KB)
-            Core #1 (phys=1)
-              PU #1 (phys=2)
-    Socket #1 (phys=196611)
-      L3Cache #2 (9216KB)
-        L2Cache #2 (256KB)
-          L1Cache #2 (16KB)
-            Core #2 (phys=0)
-              PU #2 (phys=1)
-      L3Cache #3 (9216KB)
-        L2Cache #3 (256KB)
-          L1Cache #3 (16KB)
-            Core #3 (phys=1)
-              PU #3 (phys=3)
-  NUMANode #1 (phys=1 local=16777216KB total=16777216KB)
-    Socket #2 (phys=256)
-      L3Cache #4 (9216KB)
-        L2Cache #4 (256KB)
-          L1Cache #4 (16KB)
-            Core #4 (phys=0)
-              PU #4 (phys=4)
-      L3Cache #5 (9216KB)
-        L2Cache #5 (256KB)
-          L1Cache #5 (16KB)
-            Core #5 (phys=1)
-              PU #5 (phys=6)
-    Socket #3 (phys=196867)
-      L3Cache #6 (9216KB)
-        L2Cache #6 (256KB)
-          L1Cache #6 (16KB)
-            Core #6 (phys=0)
-              PU #6 (phys=5)
-      L3Cache #7 (9216KB)
-        L2Cache #7 (256KB)
-          L1Cache #7 (16KB)
-            Core #7 (phys=1)
-              PU #7 (phys=7)
-depth 0:	1 Machine (type #1)
- depth 1:	2 NUMANodes (type #2)
-  depth 2:	4 Sockets (type #3)
-   depth 3:	8 Caches (type #4)
-    depth 4:	8 Caches (type #4)
-     depth 5:	8 Caches (type #4)
-      depth 6:	8 Cores (type #5)
-       depth 7:	8 PUs (type #6)
-Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,35 @@
+Machine (phys=0 local=16591312KB total=16591312KB Backend=Linux)
+  Socket #0 (phys=0)
+    L3Cache #0 (9216KB line=128)
+      L2Cache #0 (256KB line=128)
+        L1Cache #0 (16KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+            PU #1 (phys=1)
+    L3Cache #1 (9216KB line=128)
+      L2Cache #1 (256KB line=128)
+        L1Cache #1 (16KB line=64)
+          Core #1 (phys=1)
+            PU #2 (phys=2)
+            PU #3 (phys=3)
+  Socket #1 (phys=1)
+    L3Cache #2 (9216KB line=128)
+      L2Cache #2 (256KB line=128)
+        L1Cache #2 (16KB line=64)
+          Core #2 (phys=0)
+            PU #4 (phys=4)
+            PU #5 (phys=5)
+    L3Cache #3 (9216KB line=128)
+      L2Cache #3 (256KB line=128)
+        L1Cache #3 (16KB line=64)
+          Core #3 (phys=1)
+            PU #6 (phys=6)
+            PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	2 Sockets (type #3)
+  depth 2:	4 Caches (type #4)
+   depth 3:	4 Caches (type #4)
+    depth 4:	4 Caches (type #4)
+     depth 5:	4 Cores (type #5)
+      depth 6:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-2s2c2t.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,49 @@
+BZh91AY&SY§ž˜± ’ÿ§ÿÐüó—ÿü}ÿ߀ÿïÿð   nø`_ÏU$€B×mÀvÔëÀr&­ƒ D P*ˆ…R”Š’ï@Ü
+        5OOJ~ˆ™ª©¡êh4  ¦€     ÕƒOßê©M
+¨            Õ<É¥)¨ i“&€         šPjˆTòj=@ Ѓ&€    @pÐ
+ €Ð  ¦4  ѦA‚¢ˆ  #&¦C$ÙMG©æ©êj¡íSÔ=@Úšzž Ú!é©ÿPýƒùÄ,CýÃýâ5`~±GóÒC%,¶‰ÿ`Ÿ¬`%0‹¸Gß
+##}?^4¨ÐR4],ú¢?‘IøN!ØI€´$)T•YxˆH\b	 ŸÞ°’I
+BÀ„Ÿ•‹¿£~•êߣ~‘Þæ›šÕÊ÷¶õι‹xlïqæRÔqºÕÕÌÆµG5T¡`X±s72Œ«©WSVÉ*jí—e„˜«Ã3Ìnó¦
+ѾlÞöo¶Ûjââå³qÑ&®êÝÕ’Kº·unêÔÄJ§»¼Þtï
+÷½Å0ÃÃLÛ†)†ûܳbîð»±v‚H+V.iÄ9ræ¦\™l6î’¤Q$Ä%J!¢Iˆµi·( Ôé–Ü33‡8sœ™˜f#˜fj®µrâܹÞ/{yz··4™˜g\Ë—åΝïJpU#4¤ƒCÇbîÍ€0«–5Si±)©¥P
+b¦Õ@4ÔÚ¨›7NmM*Ms7s|Ms»¹»®ø$	2$
+BI 舤À²”,´,¶P²ÊU*Ûm([BŒb1Ij’ÚQ­[JˆÕjµ)hTm•QX°´«BÕ–ÙD­UP¥”--¥jRÙQUU%¥YiV[-µUEUe¶ªËj¨[(ZU–¨¡R¥ËÕ•Òˆ–•Il¡l ‚Ê ‚¨,¶Ê[(ÄDR …ª-²‰Z"ª( ‘U%²…²‡@>`5;"NžV‡V–Ú)Àà2A]¢ª	4R8­ÒÔ¦¦L™3´bC¦ÕN…`“€„1z«¶ëT¶”¶Šrp!Ò+»JЬá!¨’¢î«rh,ÀÐjDX	Ój§e˜gw¢u¾n÷Û¨'psUè6\Û¢f§
+t]nVb4ÖÂ$>—<AŠ$WPÈ1!$,"BÄ‘	DȰ¢ÂÉŠZ,€IVÔBRÈ!TI*?Wä-
+[üóF¨RÞM‚0Dýâpú~zªª£¯¶QEQOë ùÿvªªª®È¤R)ŠE"“öxˆˆˆˆˆˆ‰ýøþ;§Zºu«§Zºu©0L˜&LF_7
+^Z	`’	`àAá›™³{›ÞÍîlÑ­MOê‚‚‚‚‚‚€ÜïÐ pXñèÎÉ‚¶ì‹A‚¶ì‹˜NaÄ`¶Ä¹‡Á¦Å135Áml.^¹§Y=r\½sN³:z䢪¯Æ|¦
+2¶Äµ:ÔŸ0Ør×Ú½¼`;da@ïïêÔií“—…íw¶ÜfÕ·¦þi¯.žˆ'ŒDHù†Ã>ä"B¢Hü¯èÑý!‘¨ûÃõR>þƒÚ&z~Þ‡:dbQ)G|;ôØ=ž^>YÇ¡¨îöwf5ÝÌŽ‚4ç±=zÿ·Ûž|ôç¯$j:ÑñkþàéÏ~ÐÜŰSóuu—· s‘‰¼68WØ
+¹ƒç« m°Þ¶÷ÛáñÛsàúúëÜꇼ!7Šõ `u
+=cⵝ—­gÏ.’›Õc­i5*Z.·¿@= òÈP„õŠ>‰!$Jæå³¸°YÖÝ(ý£dy1®¦gAŸ]çŒiœòÎfa(S(’’D™˜I%  Û 4àÍÉ™“&L——ÅîôߏÊ㣝ª¶Ú·˜êëj­¶­Ž8ä§                                        	 „!fffffffffUUU]íݶ¶¶Ûm­·â{ˆH@÷!^žžž|ùôÌÌÌÌÀ  $      !  I@  ü‰&&¤EQEî{ä@~ | „…Årå\©½«»w­[»mMï{Þý½Òa4bªªªàŠª¶Ûoa'nÝ·ß}øï‡‰Dè$ðוóm¾<êÕw·v–í»Õµw½ë{Úªª¶Ý-U¶Õ½üˆHx èK—.T©SÀ    330
+šQQtmDUE÷v®®êò¦ö®íÞµníµ7½ïk € ñÏ—LyLävkÀëÁÍÝhMoE¥S{é9{6nuãyf@ˆ1µ`ÉÉHdü4Ý*÷¾¿Ø%<‰˜ü:®$“‹ì3ç玷XÅø=ÿ{Ï?L3<2ð“Ñø‡Ç݁RECp*ŒP²Pì,ï¦'~s HBKñPFBš«b¬UбV*ÅY˜
+þÁUUU~hD‡çý/³ó˜üÁ‰‰‰Éœæ?åùæD¥¶”²—ÞÜš%(µ‰¹K-þAùFCÂ}‡Ù$û°ÿYþ£ºI¹¼Üæóssr7òã„㍣Å>Ãó¦+Á1&LÃ#2fdž­4Òf’’ÉeTû
+Œ0ý^Ï„ïžÓ¡ú$›šššÍf¤j'êý?§ôóúútéÒ(ù"4+ÔBDûð“HH|é÷>ˆD†	Ó?G:¾‚˜™g·[%„HQÆ»i²˜gY!%Bq¾›M˜Uší Ml×ZÎoÇŠlèõ8j}&3ŽàøÍ²RÐ@©«…¡ç gMw/™|x6xM8¬ÖÍÍ<l©zYÞ^ØÂº˜ˆlë{£}f÷m¤’IøSƒbq–só;@û©'=7ú»uîú†”T‘E"…¡d¡–·i߃ô‰8׿¨ñ
+v¸
+ÃyŽNY˜^AŒ9^!íÎ&6œfb^þAžë¦ÿ£—l¶ì'Mô©ÍÊaV·ÝukœMÆñ®ìS~qÙÆ¸F_‹Nœi½ó½Ð‰
+³­ã¿=Љ£ë6Øw¦Ïð4½uß.7™ÃÀNQÆûñÀé[:}n×ezŽ¡Ö7Û«\3žY;±M!(§hD…kõ»l.ÞxבÝåÏ!¶úvæÚ™¾=°­4g{fŽsv–iu1¢Jô˜îs“:cÀ$ìˆN‘%U=ƃú»1Ëy¯MÞ¡Å$QH¡hY(m6Õκn;³¯<‡M8¬fC|az
+ò¶îç
+wã<p	­’qÇMg&r3¦™Dt©Î£5$šP—z4fàn2À´W;€½˜ÄHãyÑ‘a÷äIÉ	ÖôBMJØg¦ÀèÐ&Ûßc/VñB$=‰ÉêëÃUם{nhèk×&Œ)´52ʝ&úföÚÝŒ¡B=¢xC^ï>}ºuÍžcZ*H¢‘BвPÒo=c×éï𓘊‡^6Ã$’IíæO*•PÄHÃ…à ïäç7Â9«šæùã¥÷·­*®è“…+_FÉäóàÕð¸»jy5|y4tzÚ:Éš(èc†³][¥›íº$Yæ•)¢Š‘mª©‘¨<`æ0,7ñ×|ã¶ygtD‡	â8¢¤Š)-%
+¶¼°–Qk	ƒ(K4À=4Sg“Fµ½hˆÍ”—o' ¼®ûnívhåቪÉáэÛÅ„HX ´&¤ˆP,6m&»«.fV3.'Å„H[‘¡­N4ÆzéÓ[no‹ÕžlŽZŽBFóžÛsa³swÇ
+ž£#nWTg\%åªñ¬í<a´–BÉdÖÌ+ÐòãŸO.þ;4‘öN¶c‰ëã–ºw<~Üé'¡ãzÄdœá8Èϝš޴¾–Ï#€wç“L”»ÌB$;¼]›
+îòØl›é¦³0ÍMd’0ŒT¾m'&tã	£a Îšfç,fp@¦^ì72O[Â
+3Û¯ªz7¹ãÓ|.Õv:txNñ£¦´šÕš;Jv9Óºkm©ì  |5éž9ðæøïǾžìÛqÉÈwäC´äÝÑ“”sÒã;®ûMòt=Ðã„$
+^69ǧ`B at y{6:´Ök»!mÛ[6ê!Ûý°‰
+Éç¹²Yb•9v圹öi²k9d {RY4RPÀ´¤¥¤ñ¢‡aG¡ ”Ö¨¥•]Ÿ(]žãÒúkážx
+Å
+ðÛ›¥™½5—FœîZ2á4šfäÍ3YnÎÉÝÑUÓS½÷Iïöóß? 0õ©Ã^ð7½Å Œúšã½Äc!á.ˆß±MVÁPö-3žþ÷¶èïBë~œ9²¦ù7¸›º		¡$}@²T6
+á¤ÜžÎòpeðjáêÏ•
+“™<ï`OxÀÂoŠña«oµˆ³uä’I¸ Ìȳî jÃYZÛô7Ƙ $ÄeÈw:è°.ÛÃQ¢Œý }#ïâþ×ø×"®Jm9	Öç•Êt¤ÄÄ<G#Ëþ;eðrNÁÅ…ÅËV‹œ–J¤
+Sh©	ÖçW)Ò“ñQÛ/€ÐÊ“°qaqrÕ¢ç ¥’©”Ú*Bu¹ÕÊt¤ÄÄ<GTvËà42¤ìX\\µh¹À)dª@¥6Аnur)11ÁÕ²ø
+©;-Z.p
+Y*)M¢¤'[\§JLLCÄpuGl¾C*NÁÅ…ÅËV‹œ–J¤
+Sh©	ÖçW)Ò“ñQÛ/€ÐÊ“°qaqrÕ¢ç ¥’©”Ú*Bu¹ÕÊt¤ÄÄ<GTvËà42¤ìX\\³e`²U R›EHN·:¹N”˜˜‡ˆàêŽÙ|†Tƒ‹‹–§·¶ÿE€þfççœìÜà Í*U© ¨°ßÊ ^"4Ê a•9û)õžÚç~Ú—öÒ?¼Š*PR‡öí€ÛêWøáÞpQ÷Ib`úLóç‘”QHûÃðŠ03?ô?~ão#°b¯éü{ÃL#ðþ_࿱Úl8¶¬·úËŽaÔdkñ|-¶Ûm¶ØOVúÛþEÂñ[çŒygî¹§ö
+ÿgîoÁº<øyùÛæô÷XÓ‰ ——Çð{þâ? ;†š„È|€‚£òOÓYþ!eYBË(Ye–·
+E†´>àŽAþajr,²Ü,²Ý²7û~ÀŒˆÈ÷p&šwî
+(Kë"C€ý°‰Tèʇÿ[`I¹ýAüMÆ=Hïô•ô
+7þ ê;Ñ`<' z„Ó#Ô(†„|³èf!ò‡Æ#Ø70Ž6Xh&¢>Øòæ8Н„wƒV=ð‰
+Æ„sŽc¿">Áõ‘ì?Œ}p‰§ñé<ÂHØb1'Ü$<i"$5‡¨h„‘¶£#A"cq≑ðÈ™Dˆ["È…²!lˆ["È…²!lˆyñ‘FÏHùÇÒãpæ#AóŽàÈà`.ƒ cácA`šø’#a²	
+"E£ýÂ=cå)EªýE˜}ØzFƒí
+(‰›ö“Áâ¬6pÆ¿zL†Bäs
+Cl"‰à7сä>çµÜðmÀŠ3„:ˆÈï‡ÛŒx½ƒaù‰#ç菹G]C´"CÃaà5	ÈgÎA!Òy,h.a ŒxH$0(‰¾cæ> pü‚a§¼z{ǶD÷u&€Š3	Ql(Ô琰£ÕØ6ƒãMžCÈSÈ&$$=nÈÐh¾>ÿ°O®!Ôj#q=ÃØ|R	¡ô	é
+Gö_0õ÷z?þ`|‰
+‘íFX„çNú'Æà<GÔÔq´•—Ò‰„sÍÎòCODHÄ<„žR'á|ïÖ(t¯@’!Ð|B9	=Âl#!ëÒ`z§£^¢OHì8òBBÏß;ÆD9ˆÑD¡5ïp:DÙuõ5u	èÖ	! ž?ƒ‡âmª:¢ˆj"FE"0,$ï†û«º'Òð…N¢tuÿÇyûEò΂‰ëJXyˆÆ_ß"¤ô Ž!ˆn$÷öŒIïuè£Ì<Dœ…	<†£í!Ô2(yÃçEŸHñyÛ<¡ï${‡Qê߯#gˆê<Ljö‰ò	9h:©·®ÃQºI"GA"`Q´"CêÈî
+ˆùFØ›†â>10#îøiÀ`‘9Ã¨Ðuý¨ŸÏ‡”“q‘”I!înÙÑÞ4죰¸Â$9Œ†G®½d$*	ǐ±µFÁ¨ŒzÄÔuÄ$ù] ’ôØj#˜ÈyŠü`F¢5Æá9tàEƒÜ¼áqɆ¡ý¹H$9¶ïù/„"B½Ú¯B/ÛDHj4ÀW§Ìv ½Â9CÈw÷pG@š	8æ#˜yë°Mð#ÍÀT‰$†ÿÃídô§€ì2‰ÀÄÅ‚eñqÈsá¸ý‰€þ‰!#Ä<»ÌC"=#¼3 ÒŒˆÉôÎᆣQ(v„|ãà$ÃÀEЄ†¢<ƒ$;@v‚>ù$Bü]ÉáBBžzbÄ
\ No newline at end of file

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,53 @@
+Machine (phys=0 Backend=Linux)
+  Socket #0 (phys=6147)
+    L3Cache #0 (9216KB line=128)
+      L2Cache #0 (256KB line=128)
+        L1Cache #0 (16KB line=64)
+          Core #0 (phys=0)
+            PU #0 (phys=0)
+    L3Cache #1 (9216KB line=128)
+      L2Cache #1 (256KB line=128)
+        L1Cache #1 (16KB line=64)
+          Core #1 (phys=1)
+            PU #1 (phys=4)
+  Socket #1 (phys=6144)
+    L3Cache #2 (9216KB line=128)
+      L2Cache #2 (256KB line=128)
+        L1Cache #2 (16KB line=64)
+          Core #2 (phys=1)
+            PU #2 (phys=1)
+    L3Cache #3 (9216KB line=128)
+      L2Cache #3 (256KB line=128)
+        L1Cache #3 (16KB line=64)
+          Core #3 (phys=0)
+            PU #3 (phys=5)
+  Socket #2 (phys=6145)
+    L3Cache #4 (9216KB line=128)
+      L2Cache #4 (256KB line=128)
+        L1Cache #4 (16KB line=64)
+          Core #4 (phys=1)
+            PU #4 (phys=2)
+    L3Cache #5 (9216KB line=128)
+      L2Cache #5 (256KB line=128)
+        L1Cache #5 (16KB line=64)
+          Core #5 (phys=0)
+            PU #5 (phys=6)
+  Socket #3 (phys=6146)
+    L3Cache #6 (9216KB line=128)
+      L2Cache #6 (256KB line=128)
+        L1Cache #6 (16KB line=64)
+          Core #6 (phys=1)
+            PU #6 (phys=3)
+    L3Cache #7 (9216KB line=128)
+      L2Cache #7 (256KB line=128)
+        L1Cache #7 (16KB line=64)
+          Core #7 (phys=0)
+            PU #7 (phys=7)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 Sockets (type #3)
+  depth 2:	8 Caches (type #4)
+   depth 3:	8 Caches (type #4)
+    depth 4:	8 Caches (type #4)
+     depth 5:	8 Cores (type #5)
+      depth 6:	8 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,18 @@
+BZh91AY&SY?NÍ– UË¥ÿУxçÿó5on€ÿïßð   jø`>½à[à	5=ÍÞñÛÞÌ#Ðt$¨„” >øè   Pý(         §¨ESóG½U(ýUGê˜M†C&&`CF@ÓF 5OÂ%Q=OQ¦ƒ@  ѐ  	4’OR	¨Ó@ `4` ™j20”¨h
+=@`	€ #&d1 R"š	‘£M#Dz4ž©ê ~¦£2šê?R2SÔgª|ȉöˆýB?PÿA O¼Ed##çúñðÀÚ‡³èú}¿Wæ÷èÆ3¾»í¾ñ DE@ˆ	xT£UÅQV	H‰P‰å‘"3·¯¡Ã£ž×µëU‹ÀV*í!VÂµÄ:yR³NbVYe™R™Âð¼/”Æ’H’M1ïßfèÆÃVeJR•œÖiR”¥7½ëDo{ÞË»°Æs–a–Yg›H\Ö1½cÓMc
+c
+c
+c
+aJ*JR“ZÓF“W7.j÷³zÞó¼ï,²Ê¡–Y™e–3jµzÕ*fg	$›ÌK»´šÒÔf)ÝK£S.‹xb¬Ç‡JÔ˜t­I‡K[ÎvÆ—­ã7¼‚L‘"Y%¢I Ø
+oy@´ &äEQ`î*®5­kZÅ
+E A²,QDX²LÈ*)–Ô­ATUSFˆŠ,F(¤5 2""*‹$Ë ¨ˆÄb’]øÐ'0ÚªêÚ¯C\ˉ™˜a™†˜a”¥¥-¢›BÅ¹f YÀs†—‹j²s‡ŠK
+°0“ÐòÉ!¨l2GvÛJФ7EÊ©,*U)UIÕr$Nh\BEÔ’‚Ð$ü„H”ˆ!Q‚¨"À¬dAdZjx¢nQ9Ê'«(œJ<2£Ã(ñõp<P° 8`  gô££º)”ó¸dà8d·…2æk–iÖ°×\¥²–Ê[)l¥²–Ê[” ­ö š2ô³b®²îU(i—R©CLº•JeÔªPÓ.®êèÛ.ìJ†™uU¥÷ÉiÖ%,erü¬Ø£ò1‘ëóz¬š³$…ðGZŽÎÎÜæîî'¦jD‰ò‰ï5óV‰p[J"L†$’¹$m¤y€
+ØÅÝÞ~¿Ÿw»ßw`¶tõÆ1U; ì;1U-Ök¿¿¼                                           Þ÷½ï{Þ÷½ï{UUU^7µmV•¶ÛJRT\DFµÊ#"#"#"#"#"#"#"#.Z𐐐‘@)P¤¶’[% ÛoBI$’I$‘¶’DMÈË+Èd…’JªªòŽQQS¤žG
+Ž­­¶îêªk­*QUS"ÆFFG\„‰Ë²«³³²»:ª¡ýýà   ox#…UUSfÕUUM]+—U])­+«mºÌ·VڝGƒÙ¾3ž’·otÓ,ÌfïK¸Ó,Ê©ª´©ÄD‰i ‘õqƒCcÊx§ÕªG~}®þŸøýÖ)$P´P¥	qAÜéìꘞC	 ‘T’	H•éüãúB‚‡¼{ǾI<õ‡Ø>Áø8©#DüéH¤rRå¢âââXŸ`ÀXkú>`Ò 8P2â§Óíͯ×jd\œ‚ÐQÃTà ¥À" *H"|o`ÀHõi=5#H•m1­ÍLF‘"Lh,’(ZÍh%ÊS54–ˆ.eE%AQ¢–¬ëxÒøh¥9\šêÞ	`DC&X¤²Ü$‘q®3­LPHûdÖ¡¤?IN’>qÎ…$ŠQAº>Ñî;+ó8s]ᢑ״ˆ‰EQh"X©Âø§:kXàN­¼šê‚&YÜ6à‰faMEDi´ìÓ[Üj‡»{ßsVøc#\hÓ6Ða	‰Ü¶wëçÓ¤yÍVfLpâ•0bªS~0ÒšQ!‘AÜ"4»ZTXU\.'YoHé8èfû‡”uP¤‘B*(4:j¹÷n¡Åhf«8™–iUK턚µ¦•*v^]WvXA"F‡’¸V qÁ;Y#Èr’(Ñ@…æ¬íPßZ«\fãQ#¬(e¥­UB7ã*•bs{¹ýdHŽ|¹]Jß^mk
+`´ê²ÃR\™Õ­%åÁ¦ò°€°‚w¤yE
+I"¢ƒsJR¼ xtjQ'\Áæ#0Ez´90S
+1”	
+D¡F"0CÀ¡H0d`‡hµ4r³ ÊJ©*„Ût.:{vsnËn/ݍñj\ª[6\«“j­nq¶Zk˜H'PÐ(G˜ÃJ¢ªp°»"DëèRH¡9tšÌŠ•9ݳE€‹'i`ŒUˆ½|kZDØ=–Å‹$F		M Ù†tÐ$\é©!ÖBEoZÈíPã|ï—vg2E»låcû‘:òA¼ætöS¤ìèË0¬ÎZÀÁrNÚã%ºÜ/˶%IQC"&ú"h_		(¥ÈÐT¬ÞQUé\†.æâ¦n4®)‘‰ å旅zÒK”QETÒŠŽç&úñvnÚ÷Ó³u4ÂæUZi¤œUVµ8¨èj:2äD߀å
+•Rª®Í{GN#xÀæçpØò$N]½2D!B$¦·/Š’wæävso‘Ô(:Ü6i¦-ÓM\¦­rË7w­®hÎd½ïjÖŒPÑŒ7"o°è»Ò†˜c
+p3Y™[ѝôL4”™ÎSÌ2D‰ŠÚH.ñ¤aƦc9¤)¦1Vc›«1[§˜æä'XkÜaÑ‘|Úh¢eDSïi à€´ Õ‡Q‰+ at J"€:rœéÍf®·ó•rKœ•rs.îªjnùÛsRunÍf®·ó•rKœ•rs.îªjnùÛsRunÍf®·ó•rKœ•rs.îªjnùÛsRunÍf®·ó•rKœ•rs.îªjnùÛsRunÍf®·ó•rKœ•rs.îªjnùÛsRunÍf®·ó•rKœ•rs.îªjnùÛsRunÍf®·ó•rKœ•rs.îªjnùÛzç]wÆÛí¶vÛ¢ÖÂããX£uG1Ú<ÿFƒÊx=/›ÑŸ«ïŸGõ}®/ü3øýÚ;Qíj…à1ØüËõú?ƃ›°߈ªªª°&Iô¯mûsˆsçÏžÜÆ™±6î~¬G˜Gò9Áåüb1ðôp"ÄXÿ[àG€•ÖH‰ ~â$N¹¾?€I¤>OØ<9ÇÖ(àÞÑül‰Ò#Ò#8ü°GÀGGÈ#эÄyˆ‘0ØIô"nGý`v©DÐ$ŽYpš!	:DWˆcðÜFáÍ	‘[Á6D‘4"¾";Ä¤ŠªªIAåñHòŠ¡)ª×Zw†~2Æ–=aÌE
+4ëÝ:çQÀa$O	çȍ=B<,F¼"PޤI«¦¦DXŽÄž¿(GÛä¾DJjD‰]„HšÁÑÌGLGVDrXù‡xûˆ‘5°yDPó¢H›‡süðö÷‘"z„H¡š>¯ |úz|]›ÕØäƒÚ…¡1=¾ŸWäâD‰ç€íñÈ’DõMR#lc«‘&¡Çå¿¿«—6Aï'³†>êÖòøöù„Š$æÚD‰ Žñ8Ža¯€Œ‡/Ètú»÷9yáCëŽÑà#:sQ'¡õŒü¦2#°GE"wdIæH](àØT £TuÁbPêëñù‘0#(2(Eˆ­„tvô^ÄH˜ÚDÈlH‘1£Ùa·¤‰0•	"k¸Œì;ØEˆì°tˆÈŽuê#Ê€’Ãéræj¼‰ã$Aû(‚¤¨#Ø#“£š	%XœÄVDHêÞ"»P
 ŽÉ	qqp’'ÈAÿrE8P?NÍ–
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,16 +0,0 @@
-‹ ÊÖ9K íÝŽÛØ•…ûºŸÂIxþÈRîÁ4f& 6r)°$–DX‰Õ=5O?¤T¬R±œÖ9»ÉåAïõ¡;¶ÛŠ)kk‘‡›ë¬}W—¹ÿ7²«?ý0YGBÿ£)Bvþµñþüã3?c3²Ì›îuÝÏMöÇ0Û;ºâñÔ–Ç~¸ß4›]½ÿ•×UÇâ
-a¹{­ÿéé4Ïw ®þÆyp./úúçÁ³þFõ_W?׫jâïAzý½-rÖÁ¿¨÷ó¶ú:Ñ× ¥þÞ›®þ!7ŽõGðëõ_'ø$Ô?Ër×Õ?wEÁú#¸]ÿîßü·}	âëï}÷;]ýëY‘õo›C³k6O¢/Brýmw7Àó?„Ôú·ÛcU®—§ú¾û°6qH_`©÷·ëoí¨þÞôçÿlæ¿ûåõJð‡Ë>ûñ{¿#‚$Uÿ‡íÓ©^•»å¡\})7Õ²^ß<ÆMýga¤ÿnh©¹ñ’×KªþWÍ1Jó×ÜÖÿøúo»ŸPÿx½×HÿI«Éúßå9õa¼þ÷<¨"Rÿ«rµ­¤]ÀÈþq!¸n9Úé?ë~dÿARýëýºú›ü5Hêÿg®ïÿ…þþõŸIýOõÿV)ÇH¿ÿ·®0¼þ#°!ÿ^òõ"ÑÙ¶Çúþ±­"õpSÿÆŽÎÿ.gÿÃ?u[ýµ\}áI@%ý·O‡¹¯ÿݏÔ?‚e[Rúz‘èWý\íŽ!èÿ‡ÞÿAýϏ¥øU#ÑÿªÙVÇj¿zZv‚éŸÜhÜÖ¿­ÿƒwúG`ìÏ Š‘èÿ—òé´l–åéԬ겭®Û§_9FüõОQÿ¨~݈úÿÛòX­—Ýo,¿–‡ÛǸ©ÿ÷þ_WðþÂPúu"Ñÿþñë}uìW §ªÐDúúß{Kÿ?r*^1éúÏ0þæ?@Ôzÿ‡çÿÈsžÿÚ?T#ÑÿôþðÞÿÁç?ÎþOÛcó¸ÙòD ‰þþWðúþÝHôñÐÿ
-ÁPüª‘èzÿ‡{ïÿ ÿBÎ
-Ÿª‘èâÿàý?Ê_7¢þ?ÀÿÁþ?†¡ôèD¢ÿéýãõ¿÷ÖSÿ¸þ×MºþÆÿÁü_’úOïÿÈGõ·®`ÿ‚é.¶t€èE¢ÿÉýÝ=ß;ÿŸÿ@ ôu#ÑÿäþóÎÿé©?íOíñqÕÖÍž§…Hôñ°ÿùº‘è’ÿÁç?˜ÿ¡‰þ!þêÕ¯Qÿ6ÿÇËó_æ€Jð‡á'<¨B¢ÿéýãýŸÞ;öÿ 
 ôÏÿ(y½¤ëßcüœÿARÿùüWûÙÿ…°°L ÑŒDÿù/Ô?ÎэDÿÓû?2æ|'>ï뇺ZSýJ‘èâÿ`þ;Gå«F¢ˆÿƒùÏèÿЍDÿÿõaAõ«FÔÿGÌáþOC	èÿЉDÿÿõáÎ,¸D1éú7ÿ‡¡ÿ¤þóÍyÍÿ`þº?t#Ñ? ÿ#ìÿ@ øu#Ñ? ÿÃQÿ˜ÿ¡‰þ!þö pþ‹n$ú‡ÌáüÌ֍Dÿÿ÷@ üu#êÿò?ØÿÇ0”€ó_t"Ñ?dþ÷@àú_7Qú·É–7ô
-ó<÷ÿLÑ­ èÿ@Yÿ¶94»fó$ú"$×ßv¿*X©õo·Çª\/Oõ}÷amâ>øõÿ‹ÿÛìÿA­ÿ3.t‘ªÿÃöéT¯ÊÝòP®¾”›jY¯oãöú?Œõ_0ÿCn| äõ’ªÿUsŒÒü5ñýÿ×ù?ìÿcàó݈ôŸ´ú—¬ÿ]¨ãþ?×ÿºˆÔÿ¥ÿ/<FdÿǸ\·íôŸ9“±ÿƒ ©þçç?éÍàøþ_8¯3k|X’úO¿ÿo|ÿß/ xýG`7 jF¢ÿyóŸíeÿõùϺ‘èòý߸þsþ†e[Rúz‘è±ÿÏpÿ/†?éF¢ÿyóŸíeÿçB`þ³n$úŸwÿŸ½ìÿ£þ!PýºõÿùÏ9ïÿ!% ÿW'ýO¿ÿo¼þ÷žù?lÈ©xŤë?Ãø?¸ÿ‚¤þóå?_ù?xþ‡ÀügÝHô?½ÿ#¼÷pÿ„³ÿãÓöØ<n¶<èC¢ˆÿƒ×ôèF¢ˆÿƒþOÜÿ©‰þç;ø?˜ÿ†ùoº‘èáÿ°¼ÿ‡@ùëFÔÿGø?xÿa(ý:‘èÞüç‹ÿƒû?0pý¯›tý;Œÿ#§ÿ¤þÓû?òQý™ÿÂt[:@ô"Ñÿ¼ó¿ŸýôÿC ôu#Ñ?dþ7¯ÿ8ÿ[7ýCæsÿ/æèF¢Hþ‡¡þ0ÿC7ýCò?¨T¿nDýÿYçÛ‹ÿƒóÿ %üœÿ­‰þ§÷Œ÷zoÙÿ‡Ð?ÿ£äõ’®ñpþ3Iýçó\=ÿaÿÂÂ2D3ýCæ¿Ðÿó_t#ÑÿôþŒù߉Ïûú¡®ÖT¿R$ú‡ø?øü‚£òU#Ñ?ÄÿÁë?ú?t#Ñ?ÄÿAýCXPýªõÿùÌÿ0”€þHôñpÿ„;³àŤëß`üžþ’úÏ7ÿå*ÿƒý_tèF¢Hþû?(~ÝHôÉÿàþÌÿЍDÿù/ìÿBàüÝHô™ÿBýC`þ³n$ú‡Ìáþ”¿nDýDþûÿ†pþ‹N$úGÌaþ'®ÿu¥ÿlùxC¯ð8ÿÇsÿÏÖsþ„Èú·Í¡Ù5›'Ñ!¹þÖ˜nIÈúH­»=Våzyªï»k÷Ä¯ÿ_üߦ`ÿÂhýoéÿÖEªþÛ§S½*wËC¹úRnªe½¾yŒÛëÿ0Òè þä]!(y½¤êÕ£4M|ÿÿåù¿wìÿCàõ^7"ý'­þ%ë—êÂxýÏÍ`ºˆÔ
 ÿ¥ÿ/<FdÿǸœñÝëlæŒcÿARýÏÏìÌûÿ\ßÿýýë??’úO¿ÿo|ÿÏüg6p f$úŸ7ÿٝ×ÿìÿa`þ³n$úŸ|ÿß·®ÿ¼ÿ‡ð±lKJ_/ýCòŸ¹ÿû}º‘èÞügwÉæü?Ì֍Dÿóîÿs—ügêÕ¯Qÿ‘ÿÌûC	èÿÕ‰DÿÓïÿ¯ÿ=ó?@ؐSñŠI׆ðpþ7IýçË~}þ“3ÿóŸu#ÑÿôþðÞÿÁç?ÎþOÛcó¸ÙòD ‰þ!þ^ÿ!Ðÿ¡‰þ!þú¿!0ÿY7ýÏ›ÿüìÿ ÿóßt#Ñ?ÄÿÁû”¿nDý„ÿƒ÷ÿ†Ðÿ¡‰þçÍ~öpþ®ÿu“®‡Éÿ`þ/Iý§÷ä£ú[W°ÿÁt[:@ô"Ñÿ¼ó¿Ÿý|þÒ׍Dÿ€ùßžúÇÀùߺ‘èâÿ`ÿó?t#Ñ?$ÿƒÏ 0ÿC7ýCüÔ?ª_7¢þÿ¬ó¿ó?€%æÓÿ¡‰þ§÷Œ÷zïØÿƒÐ?ÿ£äõ’®ñpþIýçó\íÿeÿÂÂ2D3ýCæ¿Pÿ8ÿE7ýOïÿȘÿñø¼¯êjMõ+E¢ˆÿƒù‰þ!þæ?C ÿC7ýCüÔ?„Õ¯QÿÿÁýŸ†Ðÿ¡‰þ!þêYpˆbÒõo0þŒþ’úÏ7ÿå5ÿƒùoèþЍDÿ€üP°ÿâ׍Dÿ€üGýc`þ‡n$ú‡ø?ØÿÀù/º‘è2ÿ…ó 0ÿY7ýCüÜÿò׍¨ÿÈÿ`ÿÂPÎщDÿù/ÜÿëÝDé?}äËz…Çù?žû¦èÎ ô ˆ¬Ûš]³y}’ëo±ôÿ@H­»=Våzyªï»k÷Ä¯ÿ_üߦàõÂhýŸq7˜.RõØ>êU¹[ÊÕ—rS-ëõÍcÜ^ÿ‡±þ‹‚ùŸrãsJ^/©ú_5Ç(Í_ßÿÿÃüo|þ¯‘þ“Vÿ’õ¿Ëõa´þ¿ãú_‘ú¿ôÿ…Ljìÿ‚3¾{Íœ1ìÿ HªÿùùEìÿóýýë??’úO¿ÿo|ÿß- èÿ‡`7 jF¢@þs`ÿóŸu#Ñÿäûÿ¾qýgþ3†e[Rúz‘è²ÿó¿ 0üI7ýCòŸ¹ÿóŸu#Ñ?dÿõê׍¨ÿÈæþ?C	èÿÕ‰DÿÓïÿ¯ÿ¹ÿ…
-´ÿj
 &]ÿÆÿèÿ@ ©ÿ|ùÏWþæ¿@`þ³n$úŸÞÿ1žÿáòŒÏ œýŸ¶Çæq³å‰@ýCü¼þC ÿC7ý#ü†þoÜÿ©‰þùÏ–þoÌӍDÿÿïÿ!PþºõÿþÞÿCJ@ÿ‡N$ú‡ä?sþ®ÿu“®ÿô0è^áñþËü ’úOïÿÈGõgþ
-Ó]lé Ñ‹DÿóÎÿ¶—üúÿ!Púº‘èŸó¿?pþ·n$úçüïßÌÿЍDÿóæXæ aþ‡n$úŸ×ÿa™ÿ„ê׍¨ÿ?ëüo{ñpÿ?„¡ƒÿƒó¿u!Ñÿôþ0Ö¿·ìÿCèŸÿQòzI׿Gø?BÆùÏ$õŸÏÿqõü‡ý_ËÍHô?ïüËü œÿ¢‰þ§÷dÌÿøN|Þ×uµ¦ú•"Ñ?ÄÿÁç?•¯‰þ!þ^ÿ!Ðÿ¡‰þ!þê‚êW¨ÿÈÿ`þ„¡ôèD¢ˆÿƒû¿ Ü™·€(&]ÿ3ÿ%§ÿ¤þóÍêÏù/(èþЍDÿóæ¸Kþýÿ(~ÝHôÉÿ þ!0ÿC7ýCæ¿°ÿó_t#Ñ?bþç?``þ³n$ú‡Ìáþ/”¿nDýÿYó?ç¿ JÀù/:‘è2ÿ…û? pý¯›(ý§[>ÞÐ+<ÎÿñÜÿ3…õ–þ‘õo›C³k6O¢/Brým÷+ú ¤Ö¿Ý«r½<Õ÷݇µ‰û@â×ÿ/þïîÀë?‚ñúŸfP]¤êÿ°}:Õ«r·<”«/å¦ZÖë›Ç¸½þcýœÿƒ!ï
-AÉë%Uÿ«æ¥ùkâûÿ/Ïÿ¹ÿŸÿëF¤ÿ¤Õ¿dýïò@ýC­ÿ-×ÿºˆÔÿ¥ÿ/<FdÿǸœñÝëlæ2ΆTÿóó‹™ÿíY’úO¿ÿo|ÿo9ÿ„
-Ü ¨‰þùÏÜÿ‚ùϺ‘èòý߸þ3ÿÃDz-)}½HôÙÿÇü'ì÷éF¢Dþ³åþ_Ì֍DÿˆügêÕ¯Qÿ‘ÿÌûC	èÿÕ‰DÿÓïÿ¯ÿ½·ÜÿÁ†œŠWLºþ3Œÿƒûÿ Hê?_þó•ÿƒçÌ֍DÿÓû?Æó?\àþ/gÿǧí±yÜly"ЇDÿÿ¯ÿèÿЍDÿÿýŸ¸ÿS7ýÏ›ÿüìÿ þ!0ÿM7ýCü¼ÿ‡@ùëFÔÿGø?xÿa(ý:‘èÞüç‹ÿƒû?0pý¯›tý;Œÿ#Ðÿ@Rÿéýù¨þÌÿ@aº‹- z‘èÞùßÏþúÿ!Púº‘èŸó¿?pþ·n$úçüïßì÷êF¢Dþçc`þ‡n$úGø?¨T¿nDýÿYçÛ‹ÿƒóÿ %üϪèzÿÇxÿ§÷–ýýó?J^/éú÷ÿç?CÔ>ÿÇUþû¿–	 š‘è2ÿ…þ_œÿ¢‰þ§÷dÌÿøN|Þ×uµ¦ú•"Ñ?Âÿaùü‚£òU#Ñ?ÄÿÁë?ú?t#Ñ?ÄÿAýCXPýªõÿùÌÿ0”€þHôñpÿ„;³àŤëß`üŽþ’úÏ7ÿå*ÿƒý_tèF¢Hþû?(~ÝHôÉÿàþÌÿЍDÿüö!pþ‹n$ú‡Ì¡þ!0ÿY7ýCæ¿pÿÊ_7¢þ?"ÿƒýC	8ÿE'ýCæ¿pÿ7®ÿu¥ÿôȏ7ô
-ó<÷ÿLa=ç¿@ˆ¬Ûš]³y}’ëo±†õGZÿv{¬ÊõòTßwÖ&î‰_ÿ¿ø¿MÁþ„ÑúßÐÿ­‹Tý¶O§zUî–‡rõ¥ÜTËz}ó·×ÿa¤ÿþ>€úG_PòzIÕÿª9FiþšøþÿËóïØÿ‡Àçÿºé?iõ/Yÿ»<PÿÆëžt©ÿKÿ_xŒÈþq!8ã»×ÙÌËþ‚¤úŸŸÿØ™÷ÿ¹¾ÿúû?Ö~$õŸ~ÿßøþŸùÏ(là@ÍHô?oþ³;¯ÿÙÿÃÀügÝHô?ùþ¿o\ÿ™ÿŽácÙ–”¾^$ú‡ä?sÿ?ú}u#Ñÿ¼ùÏî’ÿÌù˜ÿ¬‰þçÝÿç.ùÏÔ?ª_7¢þ?"ÿ™÷ÿ†Ðÿ«‰þ§ßÿ7^ÿ{怰!§â“®ÿáÿàüo’úÏ—ÿ|åÿ`þ?æ?ëF¢ÿéýá½ÿƒÏ œýŸ¶Çæq³å‰@ýCü¼þC ÿC7ýCòŸéÿ†Àý^º‘èÞüçgÿýߘÿ¦‰þ!þÞÿC üu#êÿ#ü¼ÿ‡0”€þHô?oþó³ÿƒóß pý¯›tý;Lþó!Hê?½ÿ#Õߺ‚ý¦»ØÒ¢‰þçÿí.ó¿ùü¥¯‰þ!ó¿©œÿ­‰þ!ùìÿ@`þ‡n$ú‡äðùæèF¢ˆÿƒú‡@õëFÔÿŸuþ·cþ¡Ãüoú?t!ÑÿôþñþOï-ûú甼^ÒõŸ>¼Wx²ÿƒó Hê?Ÿÿãêùû¿–	 š‘è2ÿ…ú‡Àù/º‘èzÿGÆüïÄç}ýPWkª_)ýCü̇à¨|ÕHôñ0ÿýº‘èâÿ þ!,¨~Õˆúÿ€üîÿÄ0”€þHôð0ÿÝYpˆbÒõo0ó_
-ú?Hê?ßü—×üæ¿a ûC7ýCò?Øÿ@ñëF¢Hþõùº‘èâÿ`ÿç¿èF¢Èü΀ÀügÝHôñpÿÊ_7¢þ?"ÿƒýC	8ÿE'ýCæ¿pÿ®ÿus[ÿ§Nùëåék»<4¿t²?•?×ûMŠz…ç±ëÿüüüÏòþ¯÷º‰ºþgÉ–¯7ô
-ó=÷ÿMa=ç?Aˆ¬Ûš]³y}’ëo»_ÖAjýÛí±*»å@}¿‹^Äßÿ¿ìÿ0¯ÿF÷ÿŸê"Uÿ‡íÓ©^•»å¡\})7Õ²^ß<Æíûÿ0ÖÁü¹ñ%¯—Tý¯šc”毉þ÷âÿñ|þ‡÷ÿºé?iõ/Yÿ»<PÿÆÏÿ¸þ×E¤þ/Ïÿ„Ljìÿ‚3¾{Í\–³ÿƒ ©þçç¿væý¿ö²ÿ×±þ$õŸ~ÿïøþ¿[ ðù?¸X3ýÏ›ÿn/û©Ì׍Dÿ“ïÿýÆõŸó_0|,Û’Ò׋Dÿˆý¿†ûÿ!0üM7ýÏ›ÿnÏû-çÿB`þ»n$úŸwÿ¯=ïÿ¥þ1Pýºõÿùï9ïÿ!% ÿW'ýO¿ÿw¼þ÷žù_lÈ©xŤë?}3`¯ðdÿ÷ÿAÔ¾ü÷+ÿÏÿ˜ÿ®‰þ§÷„÷þîÿ‚pö|Ú›ÇÍ–'}HôñðúþÝHôñÐÿ	ý^ÝHô?oþû³ÿƒú‡ÀüGÝHôñðþå¯Qÿáÿàý?„¡ôèD¢ÿyóß/þîÿÀÀõ¿nÒõï0þOÿIý§÷ä£ú3ÿ…é.¶t€èE¢ÿÉýÝ=ß;ÿýÿ(}ÝHô?¹ÿü÷2ÿÃOûS{|\µu³ç©@!ýCüÜÿùº‘è’ÿQPÿ˜ÿ¡‰þ!þêÕ¯Qÿ>ÿG^áüü7£þ!%üœ¤‰þ§÷Œ÷zoÙÿ‡Ð?ÿ£äõ’®?£ÿÇ¢È{ÿG°œÿARÿùüWùìÿBXX&€hF¢ÿùæ¿ç—sÿÎэDÿÓû?2æ|'>ï뇺ZSýJ‘èâÿ`ÿ‚£òU#Ñÿ|þaý|àý?ú?t#Ñÿ|þAÿyFýcXPýªõÿùÌÿ@ÿ‡n$úŸÏÿ1\ÿ½†úGpgÜ¢˜týLþ‡¥ÿ¤þóÍyÍÿìÿB ûC7ýCò?øüů‰þ!ù¼ÿƒÀüÝHôñ°ÿyϺ‘è2ÿ…ú‡ÀügÝHôÉÿ`þ;Ê_7¢þ?"ÿƒú‡0”€ó_t"Ñ?dþýŸ¸þ×M”þ‹dËÇz…Gæ\ú¦°ÝËèÿ Yÿ¶94»fó$ú"$×ßc9ÿBjýÛí±*×ËS}ß}X›¸$aý?ø¿mÆçÿFëÿ;ú¿u‘ªÿÃöéT¯ÊÝòP®¾”›jY¯oãöú?Œôú[ê@n|NÉë%Uÿ«æ
 ¥ùkâûÿ/Ïÿ½§ÿ¯÷ºé?iõ/Yÿ»<§þ!Œ×ÿLƒÐE¤þ/ýá1"û?Æ…àŒïŸÿe®ŸÿÎþÏü$ÕÿüüÇμÿϝóŸ3æ?CÔúýãûë8ÿƒ
-Ü ¨‰þçËÎÿ.gÿóŸu#ÑÿäûÿÞ_ÿ}Æû˶¤ôõ"Ñ?bÿ÷ÿ``ø“n$úŸwþ·;ïÿsôÿB`þ³n$úŸwÿŸ;ïÿ£þ1PýºõÿùÏÌÿÁ0”€þ_Hô?ýþ¿ñúß{Gÿ?hÿÕLºþ3ŒÿÃÐÿ@RÿùòŸ¯æ3ÿóŸu#ÑÿôþðÞÿÁç?ÎþOÛcó¸ÙòD ‰þþWðúþÝHôñÐÿ
-yoº‘èÞüçgÿýߘÿ¦‰þ!þÞÿC üu#êÿ#æóþÂPú?t"Ñÿ¼ùÏÿç?`àú_7éúwÿó!Hê?½ÿ#Õߺ‚ý¦»ØÒ¢‰þçÿýìÿàó”¾n$úÌÿöÔ?Îÿ֍Dÿÿû?˜ÿ¡‰þ!ù|þùº‘èâÿ þ!Pýºõÿgó¼<ÿeþˆ¡Ãüoú?t!ÑÿôþñþOïûú甼^Òõï1þÎÿ ©ÿ|þ«ý¿ìÿBXX&€hF¢Èüêç¿èF¢ÿéýó?¾Ÿ÷õC]­©~¥Hôñ0ÿ‚£òU#Ñ?Âÿá™ÿþÝHôðPÿT¿jDýÄüîÿ„0”€þHôñPÿîÌ‚[@“®ƒñXú?Hê?ßü—×üæ¿a ûC7ýCò?Øÿ@ñëF¢Hþõùº‘èâÿ`ÿç¿èF¢Èü΀ÀügÝHôÉÿàþ”¿nDý@þûÿ†pþ‹N$ú‡Ìáþ\ÿëæ×õ¿oÖU²Ýã½Â#üÆ…àŒï^gòàèÿ€Qÿþ²ßò-ˆ¬ÿëù¿{•ãüÑõï–¹ðçúōú;“»Nöýël(Bwý·üãŸ^þùöÊDú–^aý£ëo…ǐÔßÇÕ_ú–^aý£ë/=‹ôï£êÿÛ/¬\ý»›¾²û¨ZÁ1nÝÿ™0ö—ñþB_Öå¶n?˜ÌÜ……_øðãù¿}­O§Ùåçͱª7ûî—õ¾­Ž»ªü¹:ÿŸò®ty¾øq׬Êݲÿ¢\ÿ9M»­Ž—ÿʶÒÿSRÎÿNxÑù?‹:ÿKßÒ+Êõ]ÿ¯Õ×zÿÐHŽqãüo¬)Æçcèÿƒðãßϧç
 ÿU}ýÔ´åîÏzLæÅ"Ø_þzõ‚¿«êòûÖ/ì]ööŸOÕúùÝeÀßåÅõŸð—U[ÿüúøÜ:»È¯^ðÓ¾¼~‰_ä6·þêÿ^o¶WïòB6zÁ›w9~Á6¿üú_³{Á¯ÿ5?ÖÇöéúÏÏsï®ÿ„s¢Þ}¹úò¯Þäßê]õßå¦:]^°°Yè¾úןdy8¼|ç—ûæÙ7û«?჻Ë‹ëô¿ù©¼ß½¼ÂúðæÿÛ?–Ÿ÷ÝW¿{ÍŸ¿õ&ÿÚ<îWo?Ç·/øÇ®¼¿þm{çrw]‹ÇÍ对¼úij÷¿{õqs• 'åúo„ÇÝÿÇÝÿIßÒ+ÊÏÿ)õ÷ÂcˆÖ6ªþÒ·ô
-ëWÿuÝ}PÝ%ApŒ[÷ÿïý_Ærþ^ru“rþ—êQtý;ÿÿöS„rý§Ô?Êì÷
-nžÿßùÿ²‚þC	žý¼¨"Eÿ…ð’ó×ÿ•¾¥W”ëŸB!„¢‡ÿ~v· @ 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/8ia64-4s2c.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,53 +0,0 @@
-Machine (phys=0)
-  Socket #0 (phys=6147)
-    L3Cache #0 (9216KB)
-      L2Cache #0 (256KB)
-        L1Cache #0 (16KB)
-          Core #0 (phys=0)
-            PU #0 (phys=0)
-    L3Cache #1 (9216KB)
-      L2Cache #1 (256KB)
-        L1Cache #1 (16KB)
-          Core #1 (phys=1)
-            PU #1 (phys=4)
-  Socket #1 (phys=6144)
-    L3Cache #2 (9216KB)
-      L2Cache #2 (256KB)
-        L1Cache #2 (16KB)
-          Core #2 (phys=1)
-            PU #2 (phys=1)
-    L3Cache #3 (9216KB)
-      L2Cache #3 (256KB)
-        L1Cache #3 (16KB)
-          Core #3 (phys=0)
-            PU #3 (phys=5)
-  Socket #2 (phys=6145)
-    L3Cache #4 (9216KB)
-      L2Cache #4 (256KB)
-        L1Cache #4 (16KB)
-          Core #4 (phys=1)
-            PU #4 (phys=2)
-    L3Cache #5 (9216KB)
-      L2Cache #5 (256KB)
-        L1Cache #5 (16KB)
-          Core #5 (phys=0)
-            PU #5 (phys=6)
-  Socket #3 (phys=6146)
-    L3Cache #6 (9216KB)
-      L2Cache #6 (256KB)
-        L1Cache #6 (16KB)
-          Core #6 (phys=1)
-            PU #6 (phys=3)
-    L3Cache #7 (9216KB)
-      L2Cache #7 (256KB)
-        L1Cache #7 (16KB)
-          Core #7 (phys=0)
-            PU #7 (phys=7)
-depth 0:	1 Machine (type #1)
- depth 1:	4 Sockets (type #3)
-  depth 2:	8 Caches (type #4)
-   depth 3:	8 Caches (type #4)
-    depth 4:	8 Caches (type #4)
-     depth 5:	8 Cores (type #5)
-      depth 6:	8 PUs (type #6)
-Topology not from this system

Copied: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.output (from rev 7493, mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz.output)
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.output	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,382 @@
+Machine (phys=0 total=528473984KB Backend=Linux)
+  NUMANode #0 (phys=0 local=132101504KB total=132101504KB)
+    Socket #0 (phys=1)
+      L3Cache #0 (16384KB line=64)
+        L2Cache #0 (3072KB line=64)
+          L1Cache #0 (32KB line=64)
+            Core #0 (phys=0)
+              PU #0 (phys=0)
+          L1Cache #1 (32KB line=64)
+            Core #1 (phys=1)
+              PU #1 (phys=4)
+        L2Cache #1 (3072KB line=64)
+          L1Cache #2 (32KB line=64)
+            Core #2 (phys=2)
+              PU #2 (phys=8)
+          L1Cache #3 (32KB line=64)
+            Core #3 (phys=3)
+              PU #3 (phys=12)
+        L2Cache #2 (3072KB line=64)
+          L1Cache #4 (32KB line=64)
+            Core #4 (phys=4)
+              PU #4 (phys=16)
+          L1Cache #5 (32KB line=64)
+            Core #5 (phys=5)
+              PU #5 (phys=20)
+    Socket #1 (phys=0)
+      L3Cache #1 (16384KB line=64)
+        L2Cache #3 (3072KB line=64)
+          L1Cache #6 (32KB line=64)
+            Core #6 (phys=0)
+              PU #6 (phys=1)
+          L1Cache #7 (32KB line=64)
+            Core #7 (phys=1)
+              PU #7 (phys=5)
+        L2Cache #4 (3072KB line=64)
+          L1Cache #8 (32KB line=64)
+            Core #8 (phys=2)
+              PU #8 (phys=9)
+          L1Cache #9 (32KB line=64)
+            Core #9 (phys=3)
+              PU #9 (phys=13)
+        L2Cache #5 (3072KB line=64)
+          L1Cache #10 (32KB line=64)
+            Core #10 (phys=4)
+              PU #10 (phys=17)
+          L1Cache #11 (32KB line=64)
+            Core #11 (phys=5)
+              PU #11 (phys=21)
+    Socket #2 (phys=2)
+      L3Cache #2 (16384KB line=64)
+        L2Cache #6 (3072KB line=64)
+          L1Cache #12 (32KB line=64)
+            Core #12 (phys=0)
+              PU #12 (phys=2)
+          L1Cache #13 (32KB line=64)
+            Core #13 (phys=1)
+              PU #13 (phys=6)
+        L2Cache #7 (3072KB line=64)
+          L1Cache #14 (32KB line=64)
+            Core #14 (phys=2)
+              PU #14 (phys=10)
+          L1Cache #15 (32KB line=64)
+            Core #15 (phys=3)
+              PU #15 (phys=14)
+        L2Cache #8 (3072KB line=64)
+          L1Cache #16 (32KB line=64)
+            Core #16 (phys=4)
+              PU #16 (phys=18)
+          L1Cache #17 (32KB line=64)
+            Core #17 (phys=5)
+              PU #17 (phys=22)
+    Socket #3 (phys=3)
+      L3Cache #3 (16384KB line=64)
+        L2Cache #9 (3072KB line=64)
+          L1Cache #18 (32KB line=64)
+            Core #18 (phys=0)
+              PU #18 (phys=3)
+          L1Cache #19 (32KB line=64)
+            Core #19 (phys=1)
+              PU #19 (phys=7)
+        L2Cache #10 (3072KB line=64)
+          L1Cache #20 (32KB line=64)
+            Core #20 (phys=2)
+              PU #20 (phys=11)
+          L1Cache #21 (32KB line=64)
+            Core #21 (phys=3)
+              PU #21 (phys=15)
+        L2Cache #11 (3072KB line=64)
+          L1Cache #22 (32KB line=64)
+            Core #22 (phys=4)
+              PU #22 (phys=19)
+          L1Cache #23 (32KB line=64)
+            Core #23 (phys=5)
+              PU #23 (phys=23)
+  NUMANode #1 (phys=1 local=132124160KB total=132124160KB)
+    Socket #4 (phys=4)
+      L3Cache #4 (16384KB line=64)
+        L2Cache #12 (3072KB line=64)
+          L1Cache #24 (32KB line=64)
+            Core #24 (phys=0)
+              PU #24 (phys=24)
+          L1Cache #25 (32KB line=64)
+            Core #25 (phys=1)
+              PU #25 (phys=28)
+        L2Cache #13 (3072KB line=64)
+          L1Cache #26 (32KB line=64)
+            Core #26 (phys=2)
+              PU #26 (phys=32)
+          L1Cache #27 (32KB line=64)
+            Core #27 (phys=3)
+              PU #27 (phys=36)
+        L2Cache #14 (3072KB line=64)
+          L1Cache #28 (32KB line=64)
+            Core #28 (phys=4)
+              PU #28 (phys=40)
+          L1Cache #29 (32KB line=64)
+            Core #29 (phys=5)
+              PU #29 (phys=44)
+    Socket #5 (phys=5)
+      L3Cache #5 (16384KB line=64)
+        L2Cache #15 (3072KB line=64)
+          L1Cache #30 (32KB line=64)
+            Core #30 (phys=0)
+              PU #30 (phys=25)
+          L1Cache #31 (32KB line=64)
+            Core #31 (phys=1)
+              PU #31 (phys=29)
+        L2Cache #16 (3072KB line=64)
+          L1Cache #32 (32KB line=64)
+            Core #32 (phys=2)
+              PU #32 (phys=33)
+          L1Cache #33 (32KB line=64)
+            Core #33 (phys=3)
+              PU #33 (phys=37)
+        L2Cache #17 (3072KB line=64)
+          L1Cache #34 (32KB line=64)
+            Core #34 (phys=4)
+              PU #34 (phys=41)
+          L1Cache #35 (32KB line=64)
+            Core #35 (phys=5)
+              PU #35 (phys=45)
+    Socket #6 (phys=6)
+      L3Cache #6 (16384KB line=64)
+        L2Cache #18 (3072KB line=64)
+          L1Cache #36 (32KB line=64)
+            Core #36 (phys=0)
+              PU #36 (phys=26)
+          L1Cache #37 (32KB line=64)
+            Core #37 (phys=1)
+              PU #37 (phys=30)
+        L2Cache #19 (3072KB line=64)
+          L1Cache #38 (32KB line=64)
+            Core #38 (phys=2)
+              PU #38 (phys=34)
+          L1Cache #39 (32KB line=64)
+            Core #39 (phys=3)
+              PU #39 (phys=38)
+        L2Cache #20 (3072KB line=64)
+          L1Cache #40 (32KB line=64)
+            Core #40 (phys=4)
+              PU #40 (phys=42)
+          L1Cache #41 (32KB line=64)
+            Core #41 (phys=5)
+              PU #41 (phys=46)
+    Socket #7 (phys=7)
+      L3Cache #7 (16384KB line=64)
+        L2Cache #21 (3072KB line=64)
+          L1Cache #42 (32KB line=64)
+            Core #42 (phys=0)
+              PU #42 (phys=27)
+          L1Cache #43 (32KB line=64)
+            Core #43 (phys=1)
+              PU #43 (phys=31)
+        L2Cache #22 (3072KB line=64)
+          L1Cache #44 (32KB line=64)
+            Core #44 (phys=2)
+              PU #44 (phys=35)
+          L1Cache #45 (32KB line=64)
+            Core #45 (phys=3)
+              PU #45 (phys=39)
+        L2Cache #23 (3072KB line=64)
+          L1Cache #46 (32KB line=64)
+            Core #46 (phys=4)
+              PU #46 (phys=43)
+          L1Cache #47 (32KB line=64)
+            Core #47 (phys=5)
+              PU #47 (phys=47)
+  NUMANode #2 (phys=2 local=132124160KB total=132124160KB)
+    Socket #8 (phys=8)
+      L3Cache #8 (16384KB line=64)
+        L2Cache #24 (3072KB line=64)
+          L1Cache #48 (32KB line=64)
+            Core #48 (phys=0)
+              PU #48 (phys=48)
+          L1Cache #49 (32KB line=64)
+            Core #49 (phys=1)
+              PU #49 (phys=52)
+        L2Cache #25 (3072KB line=64)
+          L1Cache #50 (32KB line=64)
+            Core #50 (phys=2)
+              PU #50 (phys=56)
+          L1Cache #51 (32KB line=64)
+            Core #51 (phys=3)
+              PU #51 (phys=60)
+        L2Cache #26 (3072KB line=64)
+          L1Cache #52 (32KB line=64)
+            Core #52 (phys=4)
+              PU #52 (phys=64)
+          L1Cache #53 (32KB line=64)
+            Core #53 (phys=5)
+              PU #53 (phys=68)
+    Socket #9 (phys=9)
+      L3Cache #9 (16384KB line=64)
+        L2Cache #27 (3072KB line=64)
+          L1Cache #54 (32KB line=64)
+            Core #54 (phys=0)
+              PU #54 (phys=49)
+          L1Cache #55 (32KB line=64)
+            Core #55 (phys=1)
+              PU #55 (phys=53)
+        L2Cache #28 (3072KB line=64)
+          L1Cache #56 (32KB line=64)
+            Core #56 (phys=2)
+              PU #56 (phys=57)
+          L1Cache #57 (32KB line=64)
+            Core #57 (phys=3)
+              PU #57 (phys=61)
+        L2Cache #29 (3072KB line=64)
+          L1Cache #58 (32KB line=64)
+            Core #58 (phys=4)
+              PU #58 (phys=65)
+          L1Cache #59 (32KB line=64)
+            Core #59 (phys=5)
+              PU #59 (phys=69)
+    Socket #10 (phys=10)
+      L3Cache #10 (16384KB line=64)
+        L2Cache #30 (3072KB line=64)
+          L1Cache #60 (32KB line=64)
+            Core #60 (phys=0)
+              PU #60 (phys=50)
+          L1Cache #61 (32KB line=64)
+            Core #61 (phys=1)
+              PU #61 (phys=54)
+        L2Cache #31 (3072KB line=64)
+          L1Cache #62 (32KB line=64)
+            Core #62 (phys=2)
+              PU #62 (phys=58)
+          L1Cache #63 (32KB line=64)
+            Core #63 (phys=3)
+              PU #63 (phys=62)
+        L2Cache #32 (3072KB line=64)
+          L1Cache #64 (32KB line=64)
+            Core #64 (phys=4)
+              PU #64 (phys=66)
+          L1Cache #65 (32KB line=64)
+            Core #65 (phys=5)
+              PU #65 (phys=70)
+    Socket #11 (phys=11)
+      L3Cache #11 (16384KB line=64)
+        L2Cache #33 (3072KB line=64)
+          L1Cache #66 (32KB line=64)
+            Core #66 (phys=0)
+              PU #66 (phys=51)
+          L1Cache #67 (32KB line=64)
+            Core #67 (phys=1)
+              PU #67 (phys=55)
+        L2Cache #34 (3072KB line=64)
+          L1Cache #68 (32KB line=64)
+            Core #68 (phys=2)
+              PU #68 (phys=59)
+          L1Cache #69 (32KB line=64)
+            Core #69 (phys=3)
+              PU #69 (phys=63)
+        L2Cache #35 (3072KB line=64)
+          L1Cache #70 (32KB line=64)
+            Core #70 (phys=4)
+              PU #70 (phys=67)
+          L1Cache #71 (32KB line=64)
+            Core #71 (phys=5)
+              PU #71 (phys=71)
+  NUMANode #3 (phys=3 local=132124160KB total=132124160KB)
+    Socket #12 (phys=12)
+      L3Cache #12 (16384KB line=64)
+        L2Cache #36 (3072KB line=64)
+          L1Cache #72 (32KB line=64)
+            Core #72 (phys=0)
+              PU #72 (phys=72)
+          L1Cache #73 (32KB line=64)
+            Core #73 (phys=1)
+              PU #73 (phys=76)
+        L2Cache #37 (3072KB line=64)
+          L1Cache #74 (32KB line=64)
+            Core #74 (phys=2)
+              PU #74 (phys=80)
+          L1Cache #75 (32KB line=64)
+            Core #75 (phys=3)
+              PU #75 (phys=84)
+        L2Cache #38 (3072KB line=64)
+          L1Cache #76 (32KB line=64)
+            Core #76 (phys=4)
+              PU #76 (phys=88)
+          L1Cache #77 (32KB line=64)
+            Core #77 (phys=5)
+              PU #77 (phys=92)
+    Socket #13 (phys=13)
+      L3Cache #13 (16384KB line=64)
+        L2Cache #39 (3072KB line=64)
+          L1Cache #78 (32KB line=64)
+            Core #78 (phys=0)
+              PU #78 (phys=73)
+          L1Cache #79 (32KB line=64)
+            Core #79 (phys=1)
+              PU #79 (phys=77)
+        L2Cache #40 (3072KB line=64)
+          L1Cache #80 (32KB line=64)
+            Core #80 (phys=2)
+              PU #80 (phys=81)
+          L1Cache #81 (32KB line=64)
+            Core #81 (phys=3)
+              PU #81 (phys=85)
+        L2Cache #41 (3072KB line=64)
+          L1Cache #82 (32KB line=64)
+            Core #82 (phys=4)
+              PU #82 (phys=89)
+          L1Cache #83 (32KB line=64)
+            Core #83 (phys=5)
+              PU #83 (phys=93)
+    Socket #14 (phys=14)
+      L3Cache #14 (16384KB line=64)
+        L2Cache #42 (3072KB line=64)
+          L1Cache #84 (32KB line=64)
+            Core #84 (phys=0)
+              PU #84 (phys=74)
+          L1Cache #85 (32KB line=64)
+            Core #85 (phys=1)
+              PU #85 (phys=78)
+        L2Cache #43 (3072KB line=64)
+          L1Cache #86 (32KB line=64)
+            Core #86 (phys=2)
+              PU #86 (phys=82)
+          L1Cache #87 (32KB line=64)
+            Core #87 (phys=3)
+              PU #87 (phys=86)
+        L2Cache #44 (3072KB line=64)
+          L1Cache #88 (32KB line=64)
+            Core #88 (phys=4)
+              PU #88 (phys=90)
+          L1Cache #89 (32KB line=64)
+            Core #89 (phys=5)
+              PU #89 (phys=94)
+    Socket #15 (phys=15)
+      L3Cache #15 (16384KB line=64)
+        L2Cache #45 (3072KB line=64)
+          L1Cache #90 (32KB line=64)
+            Core #90 (phys=0)
+              PU #90 (phys=75)
+          L1Cache #91 (32KB line=64)
+            Core #91 (phys=1)
+              PU #91 (phys=79)
+        L2Cache #46 (3072KB line=64)
+          L1Cache #92 (32KB line=64)
+            Core #92 (phys=2)
+              PU #92 (phys=83)
+          L1Cache #93 (32KB line=64)
+            Core #93 (phys=3)
+              PU #93 (phys=87)
+        L2Cache #47 (3072KB line=64)
+          L1Cache #94 (32KB line=64)
+            Core #94 (phys=4)
+              PU #94 (phys=91)
+          L1Cache #95 (32KB line=64)
+            Core #95 (phys=5)
+              PU #95 (phys=95)
+depth 0:	1 Machine (type #1)
+ depth 1:	4 NUMANodes (type #2)
+  depth 2:	16 Sockets (type #3)
+   depth 3:	16 Caches (type #4)
+    depth 4:	48 Caches (type #4)
+     depth 5:	96 Caches (type #4)
+      depth 6:	96 Cores (type #5)
+       depth 7:	96 PUs (type #6)
+Topology not from this system

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.bz2
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.bz2	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.bz2	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,142 @@
+BZh91AY&SYšYd 3­ÿÿçyìÿÿð}ï_€ÿÿßð
+    #ø`|Ÿîñ@ P_l€ @ (ÞáÇ ð^«"RjǼÞ<Z÷G$’ID’AA@  À wŠ_3ƒß1@À¾Üà           ßx¢à ëß 6ã
+b‰…‡—(.,Àuž ¼äÀSë< ”‹æxòOë”ç€[£
+€õÇxèÀ=s஘6ÚÌz-àµhàu\@         s@           =£T½USÔ¨~©©†‚¦ ¦ dÀ˜ ˜˜jž=R©JzP           
+3I5R”
+4    C@      I¢‘ªjP	6£Ñ=A
+ ¡ =@     "PÔd	5#Mú 4Ð6‚4 h4  hÕ”Dh™4G¨ “Ô4z“Ô=@@~¦)ê0€zLž£Ô4z™©§õÈÿpñ ¿‰Iü‚“ùE'¨
+„Еù…'
++…&"Äþ¸ù)?”ÄèeBÓÂP÷©$Åà=p„v•@kBT²Š#%HaRÈ„Jý8"¢¢Ð$E EŸ7ÔÏÕ>·Ö¾ÅZ›Ž©Í[®®ŸUÔ•uÒ®º«ª¥Sª›ÚÏ{Ç‹ÖW¤ãNëöëÓ{ÁÛE}+¦÷ƒ¶Š_k¾g3Ìݯ—¡Ðö“e½äáí&Ë{ÐO¥)â[Þ‚})EãÎڝN]Å:rë®Rë“{Ôú›®uÕÛ—]U
+ðîð×yÆÜqóùÕ9¶û“o¸î¾÷Ÿ‡GGâH¼^ÓÄ$ñáYzoeó*¯Þºoºµ´C»tô¼É½®›êý¯´áêà=G/{‡Ý$~ç½t}¾>î¿]¼Î’mn·GíÑ᝝œF¯F·£[Ñç&×y½gUɐUtÕɐUa«“ô%<«ÓË“ qïEî÷‡³ÔÙ¦€m@:§P¥¶ö€u êÔ©ï¾ õ êÔ¨GxêÔ©¶ÞÓÓŽÓ¯_möž¶ö€u õ êׯ^ @:m)Þ=|êêÔ¨P GÓ¨P¤Ón€m êu´§[Ju´§[JÑÞ:€u ê-šhР@:€u êÔ¨úu+¶60 @:€u êÔ¨€ê :ˆ¢a:•Û@:€u êÔ¨P @:€u6i£“§€êÔ¨RŽm›ÏÞº]>rI%WwI$u/»›mÕ>îî’UI'I%T“»ºJ­’ã}ÝUÝ:»§WWrîí©•¯¤rwwwvʶ«»u®ç½}Ùokcš#§¹ÎtWÛÕ‡·”»Þ”·S¾¯Üºynô—³6û1ºÞî’IUÝÒIKîæÛuO»»¤•RIÒIU$îî’ªI'wrîîîîî®îînTo¤“ª»ºI#©}ÜÛn©÷wt’ªI:I*¤Ý$ª’Nîî]ÝÝÝÝÕÝÝɾ™9Ìë퓲êg_I#©}Ý}}rIUîé%T’r××}•ÝÝ;§ÒI'wvUvóéÝ÷m÷võWIÒúd¸®]G*«§T’Dê_w9.\¹u;»ºIU$$•—“fÎu&ÉÝÜ»»·ŸNèö³»ººêt’I*»ºI#©}ÜÛn©÷wt’ªI:I*¤ÝÒUI$îî]ÝÝÝÝÕÝÝÙ™—j×/w.\¹råÒ(¹råÝË—.î!råˤQE.Õ¨¢åË—w.]v­råË—(¡éí¥===:téÞõTéÓ§N:téÕ\¹råË—.\ºIË—.\»»g¯Kê­½9:wMÉ$’«»ºIKÜÛuM÷wI*¤“¤’ªIÝÝ%T’NîåÝÝÝÝ
 Ý]ÝÝÞîë6´iÜ´÷jèÛt¤ôðIJE(E<N	Ó‚)ÁàŠpE8"œN	)H¥§S‚)Áàäú‘N§S‚tà†Ý"šM§S‚)Áàò=ÄS‚)Áà’”ŠPŠpE8"œN§S‚qÁàŠpIJE(E8"ž§S‚)Ááò¼N§”¤R„S‚)ÁàŠpE8"œN	Ó‚2;i¡àŠpE8"œN§S‚)ÁàŒàŠpE8"œN§S‚)ÁàŠpIJE:lS‚)ÁàŠx'¯6Ëj$éÓ»§N=:)'N:{ºté¼§N7ÞžžŠI³Ó§N»§E$œtôé8ééé²°žž†:t4÷6ßM:ztéÓ§FútéÓ§N:tS޾¾¾ºwÛJmM$’«»ºIKÜÛuM÷wI*¤“ºIU$Ý>’I;»—wwwwuwwsr¤}$’«»ºIKÜÛuM÷wI*¤“¤’ªIÝÝ>’I;»—wwwwuwwr»¾»V¢Š(¢Š(ºíZåË»—.\»»1bÅË—H¢Š)v­EË—.]ܹuڵ˗.]ܹrëµk—.\¹rŠ)v­EQråË—U.\¹råË—.]w|¹råÍÂ|,ınž‘qðÞõÖ·~Ä{ÂÜ!àå}ëj¾õµ^õµ^õµ^õµ^õµ^ö­[¾¶«ï[Uï[Uï[Uï[owmªõõªúúÕzúÕzøwkåïvÚ¯_Z¯_Z¯_Z¯_Z¯_[ݻ֫wÖ«îõªû½j¾ïw—½zÕ{½j¾äÞ@Žäî@ŽäîR.÷ Fû­WݽåïvÚ¯tÝ[:n­7VΛ«gMÕ³¦â™Ïun7j§ºÕN~Õ»íµSÝj§uªÖªwZ©Ýj§uªÖ«îsT÷´Ý›«JÁMó;˜)ÜÁNæ
+w0S¹‚Ìî`§s;¥ª[Žè4wA£º
+ÐhîƒGt; ÑÝŽè4wÕ7ÑEîáßFøB;„#¸»»ÇÂؐº
+\ƒ~¸?s`”QE.\¹ræ1ŒcÆ1ŒcÂI ÂI r¤ÄE.´’k]sžýqœë¯=:.÷6ßN :ÛUªÞÕº·wVêÝÞ÷·wVêÝÝ[ª«AP"’HÖtîîî^æÛéÀÇUmV«{VêÝÝÝÝÞ÷–îêÝ[«wv«zÕm E$‘¬Æ±âI¼qˆ1ƒ"E„ˆªö÷m¯ovÚöÚVv¬êˆÎÙÜÁŒw““´QIE%;ÐÓKAAEAKÁÁÅÓšäæs999¹œÎnNNNNNkžnW'3§K¥ræ¹9œ¹s9årrssÍÁÄààݾóss}¦ÆÖ­kVžto¹“¯K§áC}KwÝvïwnðRûÞ=»²ƒ"ÑDÜm¼i<æšx×Lá	ˆQ¨êájÕ5›šŒ®<ߦļ„…åå꛳Á¢^W*«Ë¯&¶pN×*·*åÙښ輤žUojܪª»;¶F¹D/ª¶«U½«Rµ*¹r÷x\`¹Uj··ww{ÞÊ•Uvow­¶%ÈHZ»VêÝÝÕmåP„.^Þîݶ‰j©jÕɶÛéi½¿­r‹ywsm½ûVý«S]"m´Þ­Þ¿­Ziòîæ›M¶ŸÍ¦šï¤M¦÷g]«‰÷wtR)#M-[ö©óz·{s2“ؤi§ÒIù´škžîí«ºIm¶›Z–­Qn,Ë»zšm¶¤^õ@…åŽÕKíZ·v‰RF*ç9e(ѼÛZV¶–²µ¶Ò½ÔæYZ½7bO®Õ¯w{FÝZm7Sº¬W[mbª‘Q‘I¨‰ÖˆDM
+!u	\*µnÚHf£«½{»¶”X–&¢m·îâMoÚµEÑH¤´Þý«wíMO¢‘Im6ÚoÚµDšrI"‘Iinýª&Ûm7$’Oµ-Z¹6¤R6›mjÅ‹Q¦›m©›y‘U·Û«wfE ªÛ"‘I at j;KRµ‘"H±XŠÅF"°D‹!HÀˆ10c"$ZÅœß9N§F5:<óm®m÷2uétíôWÐÞ¶ñö4ñ®‰Lá	&g:®>¹«§±o›KÊ籿/,ºz…=žÏm£ìâ	䏓‡}6¢{<=“Àç³ÙsSžz*P|CÙ}zÏA•_gtO
+óRö<ÜòôO
+ósÉä[ž^ÛfSž%òy<¶†áÉž
+¥t¥‹D­gj"vÆb˜ï3øðð¾&棫½_¦Ä¼„…ååëgƒD¼®UW—w{Óƒ®UnU˳»Þðº«{Våʪ䛊M[«v4ÒÝûTM8¤6Û’}©UW-[Ë»·m¼ª…ËÛÝÝÞòÝ[¶d\¦©$M­[²þµiµ"“qfKµq´ÛæÙ7nRךëm-kY$QT‘,$ê¯ovÚö÷m¯m¥C¡êΨŒíÁŒÁ§y9;àPQE%”ï¶Ã³°ìÅ-GNk“™ÉÉÉÍÊæss999œœ®y¹œœÎnk‡ÁÄèåÊç•ÉÉÌ÷ÙàyÀáÐàp9ƒ–P¥²¹Ñ¾ ëx´ëb§F¼Ómsi¦¹Åщ¡D.¡#«…V­ÛYÕpZ»ÞÝ×
+Òò«W–î­×%ÅQ•U«¼¤RJyªÝ}JóíMO¢‘I1¶ñ»Oæšj|Ü’J¸šs%z“QtŠI>®‘Ìϱ&¢äÚ‘I™®µ;Z­b‰¶›r÷\¡™W‘UµÃn—5U@–Ûb‘HØ \ÒÒÚªö÷m¯ovÚöÚVv®si§3„„$!#:åÎÔµ-Z·­J
+wÛaÙØv
+ƒb–‚–‚‚ö]ƒiÌääææs9¹œœœœœ×<ÜÎNgN—JåÍrs9råsÊääæç›ƒ‰ÁÀpáÈp8ÁƒK(RÙYØDÎ0îæØŽ
+ºÔp#Ý)»»»Ãç=EÇËi|£ÊZ§„ `’O£žà
+&\ªp™(Å‚ Æ"(ŠC¡ zs¹uÄ«I´¬™AB­U[]J«mJÚ­Ëjªª!)$‹Ù‰`—+î$† ¡­–”´¥)iURÈ‚0Xˆ"1b"Á N¤±/+ܺ¤«Må‘*­V«]U[nUm©[mÊ @„)‘y$°GN{¡!¤È³ZÙm--(Š¥ œ‚ˆˆÄAŒA°`¢ÌKÊ÷.©*ÓjÉ”„Z­Vº­VÕUVܪÛR¨E“=‰,§=АÒdS[-¡m–ÛDDYH‚0Qˆ1ˆ(v,Ìò½ËªJ´Ú²*j¶×U¶Õmµ[mT ¢’Eå‹—+áf“"šÒÛ-²ÛjªXàŒDDDF""Á!È@ôçzw€V›VE at H@%j¶ªêµ[UªÚªáÎrpÛÛ)iCÒÁÓžèHi2)­-²ÚÒÑDD)pF
+""""ƒ€'B@ô9ܹ\J´Ú²*j¶åuZWU¶Õj¶ª­µT@’g³Ág%}АÒdSZ[Kl¶Ëmª+,8ÁDDDDDb1:,ļªîo:¬U¦š²* F ­Ëj©ÕiZªÛj¶Ú­¶ª RI–"btáé‚Cȉ­)im-¥¶ÕT¤	ÁEŒDDDDDX$	Ù ôçzw€q—–ÒÞc^cm‹m§²CN{‚™UT²C‚ɘÆ1™0]6g?±”»Ø¡X©Tµ”˜F¦FLÈÉ‘ÞåÜìÙŒcƦ8I$8 8pᏻäzN==1ŒcÆ1ŒcÍ›6lÙÏ4¹K22d¦b¦f&21‘˜•J²`ˆÄÂ#:a e”‰2€“ôËÔD½| ¿8._z/Ïü€¶†ËmikQ¥® ¶­–Ú¥%H¤kú µU€bZ¬UV EXIeUUV0
+K_€µUV*°KUUÀJª­ 	û p›ŠÏÊ O@	²ªªðŒªªªÆ’ÕUUb«I­fffe†À¶ _8,ù7áÇù?@ý?П¤¾E}бV*ÅX«ý„UбV+ú1_Ò5ª[T¶©m`OÓQòÅhŠˆ¿"¬UбV*ÅX«éò×EX«b¬UбV*„§Í\J|ÕÁ$§uÍŠµk3EZµ™¢33È…¿˜ö úUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU_óøªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªªª¸ #²**E
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•
+•í2îS!’¡R¡yL†å2**”ÈnS!’¡R¡R¡yL†å2**”ÈnS!’¡R¡R¡yL†å2ÑBþ
+d3*ö´ÈkEÊd3*”Èd¨[EÊd3*”ÈkEÊd3*”ÈkEÊd2T+*”ÈkEÊd3*”Èo>óÅd÷ Åd¶ÛŠIF‰T1Y*É1	LjöÛ‹dݶâ’ZжÜRK°x¬—¶Ü[&í·’Ö¬…õ¸¶M÷­Å²nõ¸¶Mß³·É»ñn-“_Á1Y+rb$=ñn-“_Á1Y+ø&+%>-ÄIN·%:ÜD”ëqUÁŠÉW+%\¬•8ñ‰ŠÉo[‹dÝëql›½n-“u+%䬖õ¸¶MÞ·ɺ#’ü~•¸¶MÔ¬•Lj¡ŠÉhŒVJô˜¬•Ljqâ$O [qP1I 1I) âx‰C’©1
+LD‚Šb$>M·ɺ¬–†+%¢1Y/zÜ[&ëVALj¡ŠÉhb²^VKC’ÐÅd´1Y+ ãÄH8ñ
+GˆRb$˜‰&"AIˆàÅd·mŲh¤††+%¡ŠÉ|¬¼æÐ弿Ðå¼çæ 'ìäüd>
+Â)?ì‹Xµ…¬ZÂÖ-b»Áx‚ÿ°/ pÛšî‹óñlmão
+_Ö+kZØÞÛ÷²üýGUÔa;ÙàÌûs:x™w·Ùvž°žÎ÷“¤’_jI/Šžöîù»mãtÛzÓmÓmënÛxÝ6Þ¶í·¶Ûm¶ÛmÑUUUEUUUWÐ   µ67ßUn9ÅmSòcüž®È{Ó5k<½„‡TôôñÊJ½½}» ^mùW³³=«Æ{{ð’Ká)òI/¸ ¾mÅ» €ç*¦q·\Þ÷ã¾¼üÚXæ÷°Šhs9΁g9œàw(Ûœæp0ç9Ì=ÕUUv׎<s¸ü~5nîë÷½íîï{{»ÞÞî÷·»½í ö€{{»ÞÞî÷·»½íîï{{»ÞÞî÷¶ÒI}ú¿V’”ÀY%	dA¢Uˆ‹Þ’ÿˆ,Önˆ¥øÏyªúIº‰¡V‰ç¡Œs‰
+²¾¬¬°‰øÁi8zi«Y›ì9ÒªÑ0Qœéû౶ٝi$ØÖ+@=ü_óóv»~`sš„5$’Ëm ’’IgÓ¤’Én§¸I%–•¸'  B |¤’W€XÈÐæÜ¨.À_ /æÿ€\ò ^ ¹ó‚ðñ¼õ¯fÚðùwã|k~7Ö$ä!U-£mV
+(JñÈ›–*¬ßnÓ3m÷Ù­÷Ý»Ž<A}`»Ð.ð/ÎùÁ} ¼@¸ú`/ \èâ Zî¸/h.AnÞ pÞ¼¸¼ñ©U°/ÌDZ÷Ѝ|‡‰ùõáù3Œã8À Ÿ¨"¢*"¢/ï"¬Uб_Ô-ª[T¶©m~EX«b¬UбV*Èà|ð>gÆq€Ob¬Uб_…µKj–Õ-¯È«b¬WámRÚ¥µKj| 	x)>I
+*aÜX¦™‰‡qbšf&Ł·åÛÕ@s$€È„Œ‰$Š{À€| "d‚‡íܰ3Ëy¶ÛZH€    H $`É    	  ‘ƒ$   @@  $’6Ð2@    Ø"(Á’    6$ I#l      a lŠ0h‘„ À@    #H  Œ       À>ý$–}BI,ÝÝ èoÄúiý^»  °’I€4°Ǐf`y{/WÕöÚøÞ«ÓÓÓÓ{ß§=/ÓÓÓЀXI$‚Ö hÐI™˜½íŬ X °  X£@	$ff`÷·°`Ö ’I °F–xñàÌÌ ÞöâÖ , X  , Ñ¥€ž<x33 7½¸µ€    4i`'ÌÀ
+ïn-`À€ À
+ I#33 7½¸µ€E 
+ @P £@	$ff`÷·°`À ` $‘™™€ÞÜZÀ€  €4 ’Fff o{qk  ,   hÐI™˜½íŬ X °’I¬ Ñ ’330{Û‹X °`  °F€HÌÌÀ
+ïn-`À€ À
+ I#33 7½¸µ€    4h$ŒÌÌ ÞöâÖ , X  , Ñ ’330{Û‹XP   E 
+4 ’Fff o{qk  ,$’Ak 4h$ŒÌÌ ÞöâÖ , XI$‚Ö hÐI™˜½íŬ X °’I¬ Ñ ’330{Û‹  -`	$’X£@	$ff`÷·°`ÀI$°F€HÌÌÀ
+ïn-`À€$’H-` $‘™™€ÞÜZÀ€ I$ZÀ
+ I#33 7½¸°k  ’I µ€4 ’Fff o{q`J  ’I$ŠP £@	$ff`÷· , ZÀI$°F€HÌÌÀ
+ïn, X µ€$’H-` $‘™™€ÞÜX °k I$ZÀ
+ I#33 ]¶µ€ °’I€Ñ ’330{Û‹  -`	$’X£@	$ff`÷· , ZÀI$°F€HÌÌÀ
+ïn, X µ€$’H-` $‘™™€ÞÜX °k I$ZÀ
+ I#33 7½¹ , ZÀI$ /F€HÌÌÀm­`À¬$’A`ôh$ŒÌÌvÚÖ , ZÀI$ /F€HÌÌÀmé@X5 ’I °JPI#33 ÒçÈ 0dˆ°	   @ $`É  `  I l‘ƒ$   @
+€  #m$     l⌠    ’ $‘¶’      ƒ"Œ$l     8  #      B 0–’IgÊÄ’Ä’KÌ}:téæ*}÷ßÚ–ûãvII@ÛpÀB€„ HÚÙ$  À b"FÐ6É   ؤQ7€Û$€  	#hd   ƒ l@¢‰¦6É     Š7€Óm’D      FÔ$€#h       € =ñ‹’Åï{ÀÕUTUUUEUUTUUEUUTUUEUUTUEUUTUTUUUTTUEUUUUEU\HCÙUUUVر2@ $`É`@  $€€F  I   ’ Ù#H   €  I#m$    @
+€ÜQƒ$    @@ $’6Ð2@     ÂdQƒDŒ!     	2@  $`      È Fò$’Ï—›­lRk$h" lH$$  HÛˆ0 !‚Dd2F €@6bÁŠ0m€  „$a$l  À`€€`R5`Ñ 
 €Á 0’6ðlŠA„   6
+±H  ‘€      A m¶ÛiUUUUUQUUUUQUUUUQUUUUUUQUUUQQUUUUUUq!HCeUUUUÄ1
+â ;ªP‚çœçZçm¶óß}ü÷ßóf~lÏÍ™ù³.ëÞõû3=»»æÛ~’Ié$ž’wîïß¿~ù™™Îrï@€j—MîœåéV«UªÕzM*ÛÖ¶åÝó‹Öf/YŽíï¿~ëïß¿}ffkœ«Ð )¥Þ›«oZUª×¯*òºò<ªü³=µ¾m½ô“7Û'¶nÏI6s33|殁JZïnsnq½·µí»»ÔK6m{mzM.ãœäç9¬Úï#7Žs™½r Òî›Ýiº].—K¥Ö¨z׳³6½ºÝ眛žrnyɹç&æ·™­~|ùóç×ÏŸ>wª¨ªªª¨ªªªŠª¨ªªªŠªª¨ªªªˆªªªŠªªªªªªªŠ¨¨ªªªªª«ôHCá!
+•UUUWÒ
+ªª¢ªªª*ªª¢ªª*ªª¢ªª*ªª¢ªªªªªª¢ªªª¢¢ª**ªªªªªã*¢¨ˆŠ*¨Šª(Š*ˆªª(ˆ‹UUUQUTQˆªªª¢,b¢ªªªˆª©²ªªªªìªªªˆ¿¸ @œ}yÌϳê"[Ç%´¶QûraæÜÉQych••­GíéÓŒÀÆfˆ#{¡E(ˆ#݉gKtU2vúéÏ,-d«:q쏖׫¯´â+§§¬<hzQAJ|êzfsÛå<âÎl¡”B«.ÙC.Ø2š•b¬UJ0m9¤ò¨úØ[b¨{±„¥%<Û_õ+¼ØÔžCÐUÛE fºFÖuï<ò¼|§^/$,$ (+T°d¥P=L®·kp0¿”)î܁]õΰv®múë;gt3$’I$¾ÝÖv×» L è~o»èÛéÞÆKã0bcæª0TòÚ¨ÅLmߟNž\8 0áÇ	ÙÚ«µeUUvõ|xçS¯SËÔöÀ                                             UUUÛªÕUUvÕjªªª»u×]u×]uÐ   @yUUUvóí]«½kUªïRªªûvk,Ë2M¦j
+ á§l»eˆâ`0ˆ
+
+
+1GÄÃñÉL’•|ŠøyjžZ§–©å© B:‹õh @ÎÎNÍ4ÓM4ÓL0`ÛoËȯ"¼Šò+Äâq8
+ÍÍÍͶÛo¶—¨RþÊgõ¸û÷p6[)l¶Rû¸0ÅL2S”Ãa’˜²SÃ	ùO©øëS¦0XÄ`Éd‚	 ‰
+‚„Yr3LÊfOÈhŸŒ-ÍÔ¿ p¸Gâ~!øÄN•N‚…J
+(¡J
+E()¢…() ¡BŠP ¡B‚…J)R‚…JZ((R†JJE(¡J.
+pqGƒ‚vuHü‡ä¦Wc`
+U(¥J(R‚J(RŠ ¡RŠ¢()¢„(¡J
+(¥J
+¥ RŠT¢•8œJpp§#ƒŠ8p†0XÅ1Šc(ÆTÃÆ)ŒLC½
+‚li
+¤6ÚCb@ÚC`˜ÒHm!!´6†Á°m!´†ÒHl`›@ÚÁ6	´†ÒÒÒChm"È(E€´Ì,e3'ü=ÿßúÿ!ñà}OÔð®T?h>Ò»îû©AJ¥R•JPP)T
+P4*U!T…"JUAB¥¥R”4ŠUE)C@¥PU%?ô~._{ï}íÛ·nÝ»vî÷Å3VjÍY«0Ã!B„!B¿2¥R©T€„„„€7bË—.VíÛ·nÝ»wlD~f „`"@b‚21#1#I1‘#I1HŒ`Æ`Æ1„1„1„,FHÆ1ŒcÆ"1ˆŒb#ˆÆ1Œc„ƒÆ1ŒcˆÉˆÉˆÉˆ€1ŒcÆ1ŒDcÄDŒHÄŒHÄŒAD€Ä 1T#0c0c0 °c†+XeX!” ÈÉT¥Áí°Ìý¨yÆô²U×w8-ÿG4·¸ÉÂed‹xÞ––̨«ðe¬"®Ø‘\G#è¢yÉ#dQERJƒþj‚•º9¶ˆ[#\ìU+¶J•ŒmhÞU˜èfòãU˜ÌÆf'vո؝#™K
+ôZRRé”’¹Á%–PvÀw@ûêÁX¨˜8Ä’c r†f˜nÙ¼lQtõ³‰[#º4RRd%„ž°>W¼yÉ>¹`˜Ü“IIî䛨bk ©ïžYœnÃ3fãd*ç…\Å`2ŒmC¨¾m¡½±Æô¸QæûÐ Æ[%i
+ñqÄ{î 7î»ÅyµW"Û“¯YMl¬²¥Vµ>Þûðšk(VŒ[k±ˆ"”—»N¼W†Œ½NhQa[;'‹=¯<O\•gžO×bÚX•(°==ô¶…FÙ{²†RØ*ÅP¦ÙCʱV*Îzi™/)­¤ÜëQPUØ  T¢‘‹Ñ™¶î¨÷ÔÊ뛑Ú*¬vоóšq*WÝEΧxùæ|O} Oç‹àQ­2æ|g?<k»c}¹Í¶É	$’M·ë[m®8¸ è¢ÒBHŽú@ñwçÉæóóóø                                              UUUÛªÕUUvÕjªªª»u×]u×]uÐ  ­gZÖµÀ 8Òlh׊K˜ ¢ò
+ÇPȱ!bY	‰2,…‘e%ˆ°°_†ü?ˆ‰“îÈCŸª/‰Uüp>Ѝª+HY
+(DUüp>ÿ¬S_½ú´ü†›7æyy¶1£¿¸Y°^Ç’ø]Â['øGšê¼ÑçÞå±n0Ý@5	á:ìð’ÁT_ƒáÏ>Û,ôÞÞJ&ƒ`U L[ϱÎ1§rvI~Ä{óÍY{Q7èg¨±xWŽÇ¶NàJã(¨¾ÀAð><r¾O$ 
+ûžhª áñIâ3¿p{Îô½¨”íêÏ»\$dHAŒÁsã ès©íöïí %C×x. °„yd½üiìÌc)—w‹­¼:ñ9Q2ydˆª s£êèÉ•m«Wã}ÍÔLðüœ‡}bì¹hsKZÅ¡hÈ}¸c^8EšØ•+nûÞú}C…DÊR]´4Ô,D…æ0W"³ÅáUq™Þž0õ³—Ðãâ+λƧ¶s“ÛB¶¥6”
+á务לœÑT)j‚ÄV*ËÍ”1¶¦¥Xª ¤õ©I¼YÖÆµƒiIîÓ[Í1«v•º[Ž›•Ú+*]´ÊýÚkZõ¡ç]‹nãà“ÉôB€œüò²…ÌQfsc 	ìµøç­{2o$’BI5XÕm¾µ€O° <\3,ÛAî Î$„‘®Òªª»{ªªíÏë¯/Yåë<ýx                                             ÕUUvêµUU]µZªªª®Ýu×]u×]t    åUUUÙYÚµZªí®Ëšìϕ碑ŽTMý¤Œ’O‘ai!$„’)	„’Or湸$ (FH‰½Ä—öóÔåD¢¡É{,6D—MF)0mÕ™™˜¦ZÑf‚ðuë ëIÅx.«Áw]ti`[΂Ña{¸œÛûr›X)Œç¹Tp?&;¼	c#]ô¢nª¥â
+¦Ë"‰ ¬ñ,H"¢"+ÌAѬüs…³"ÛÉÝÆtï²NLé“h‰a0ÞÚ2=ôÔ$¨&+×Xœ(™àMíkA‹1V˜™ŠLïÛjŒÌbm”eFLÆÑ
+‰Ì +xíŒ“•}”›ØJ—ˆ‰¿ºa nŠ¡=6˜Ìí–°ºa˜G7}ÑÛ¾“zƒ$‡\)n¤ìÊÒoÜÚÙ,aÃM
+Nq)8ÞlçzNïÚÐ-Àû(ª œñ:£ŸµíbBñ–³bKX)¼ÕÏ.Ö*ʼnR±_¯Â÷bhø°ÜƆ5…–Ê…C­CÆäJm*<e´+Îγ®¾ø¶ú̧–qœ^yï±T=²²d¶Ù9çµF´›Ëeµb©lª«B–¨Uí•b* ¡™.¶{ämŠÊÐb¥ÏÑ$Î&Å-C)‘õ-z\®ÒÜŽÓ*±Úe Ðõ¡Œ"$+X’Ìv~p ƒ[`}E[Êg®93ä{ÖÜëZ¶¡©$’I%³Š­µ­`ÿ( û¹ßïÏ<sé­h                                             UUUÛªÕUUvÕjªªª»u×]u×]uÐ    •UUhMä$‚Ú*ȁä>¾0 ›¨œmÑŒUʤË ^ì;ÞÍkˆÛ$Æ]“µÛ‚íIÊ:áÔÁÉ̼¼"Ä„й2¢_囁¯O>d1{9ì ÂÒ&Ѻ½@@^;ìÇj&]Ä,æÂ8ɆìÔ®®"Ø"®…2eD¥N g|·eí`́ˆ-ÈH dGŒšQ6:2
+X2j,‚«¥]:= Ë£¥ŵÅõ Œ"DX€ÌK†8በ\–bÞqÁ¥'u°™‹#×)&’Â
+*Á‚³Ô²­˜‹ðoº‰ñW \wÖr¢kh}”U ëÄÇ]›–…¶-b“}ÎnZW%TX¢¦j±áÙŸ{ÃD”B÷››…¬¢‡,œm‰î2‚–*†ï³ÛB¼ï¥j½¶[´m
+¯¾+ë`‚m)<âøŠ†Éi¥X«-«o¸4EEYÛT8mƒ)¬¦¤´³Äêxž$c#í¡ÚKJL˜}aëŽB8ò¦Wz™]¢²¡ÐËÎn'òœxõ—P!$„œB Â"XªÃ2–e™™•L’,#k0aŒÁac1L¢) È"ÈY „AARc2LÌLf&M…ñ33ڐ¥¾1V`³f0½Ê`brm< TÎ:Æs¿PÔ¾¤’I$/œzÖxãÀ8/r}{\‡eI	"9¾oιãŸ=kZÐ                                                 	­kZÖµ¬ëZÖ¨ ºl—Œ,A· ȏ‚ôòBÒëIÊ^+Ç3™ŒÌÑ|pøeEQVA"*ŠþÆá
+,YQVX…XÄŠéSM%*4N0^Ýô2…†
+XÉ^à^o#3ƒlƍT×BÌfCÍæy(•ϧ­ÐT /ÐÙç×ÖÇL{mL±a-vȲwÙÚ‰Ù×\ô–ä-Ìm`,@œ’$’2Ï'*&ŽLž!ÏV¤¿P´²ÂZ0!"´Ú*€ÈŠZGƒZ
+OEÑz#³7À8ÀÀpzèÚ_˰»'r0‘Ék¤ŽTM÷‘ñk9µ‚@‘ÄψI	-d± ›ñ‰G[d˜Žc$„…HH>yʉ³«š(°€ìê'yçt.Ž)3Ã.A~YTûeP¢¨ aDD™ðqhù…­iPø~“”¨¿—rÔÖŠ£­5ªo}ì´¤¥ 1ˆÂ÷¼90x”žûN0õ³F‘ò«[
+ßb¨tñ|mo¨mb­jcÏ_QX ¡ÖK­=Yëe5§xb"¬Sl¡eUX«/vP˶ðæ4-(êM˺!ÖuȤgKJ,——¾ó/:Ù›2&áûfÇŒ¯Ú[‘ÚUc²µXÌçÞY¹hHBâ* A«	ƒUf1ŒfPÅY•™Y‹0YFXa–fU„ÀÊ002Œ0ʰ˜a‚|€ ÁöŠLz[qÈïÅø®wñ›m$’I­W—;ùgw“µUWns|™âO\                                                  ß9͵%X´‘©,Š ɺ‰ÏÅöš©Usñ}RûÞ?`©òÚ%\Èëµ­,X/4äÁÌßJ$Þ,Š‚º´I¹`×´ßkì¼F&/%¡kHœœœ(šVÑbªD"Íò¡­´´,ÙÑléDÐ7‚d$k:
+A‘j›˜´e¤qeZÒ‰Ÿv„-ÈÂ-âK—ÑÄq1hhòáDÐfU„-$f-h¥ÍHºÛZÉ~NL êJ“žîºi°jÕª‰£F”Ž$ ŸZšBxüùóçŒ>Å¥Š[F¥^:\m|å3¹LÊ5-ihù÷¸…¥–…–”-,)ï9Âsޏ01=ÖfxîuŨ¨wÕ}lÞ_-*‚«[YëçˆzÐí%¥“&jù%Yê=ÊMJ±V]”2íƒDV*ÅPÇvSÎc
+ÚP8óÔí°ª…g\b‹´ gÛÏ}ògz`ÀPÈá0}ºeÛnWÅfW³[uÉÜÇ>òÍÌ@$Ÿˆ '>¹ìø 7 Aè |\6Ús|ZÓ~· oÖÛu¾·È ÞöÚúÆúç‹!pÉĶXUвo§¿(                                                                                              Mûò*¥õ%T¢%	mÝãy%íã£~'$Â‰°p”ž‘lm0Á†²1•ŒexwšB	H©pzém$äÒ‰r†@?>ë×{äúœ¨‚ ¢@ÛNð/;ß…jña9áàB$#	ˆ,T¿yn6ã…UÕ‚Ä#«$Ѧš4ïѧ²ζøc,ÄÆÆ.ÖRÚìç #²µ&çsF­Zµ4i¥©¦–—’"–ÖÕ×q³jÐÖ–j¾™TÝ«³*Ì3,f˜U´ç²ïr¾ç’|2"²…”³ÌK߬. „BC–F
+]´HÏþ¹ßIÑ:wêK»sŠ®€»ÉP ŒE=šJA’ñûÞýŽ;é7Uܦ*ÄeS¦CXïÔ. Þévâ﹜øÒ‰±¶ÅÔM¹ $U ¹çG1êÖ´ZÅíiibfé¯5Ù+P¢êT¨-m¯§¡ô¥š”-…K…÷›[/¾»N[3ÞZÊž7ʨVÎwÔVsv³Ç8‹×ÖYr%s+ij˜¤Q6²ziÞ3
+Ù•7x³.Ø2ÄVÕ
+m–e5•EX«/lébT¢Þö*ÎÚkB´m(•( y½|Þ{ìñóÚ`S	‚Ø÷Là3_‰ƒ']ØÕ{6bؼŋÌLC‚ ¾€æ> Füfqé_†³sœ“ò¯¯»ñ§¿‹âÛl?(                                                                                              ^}õWÉ/ÉIR¥]òÏ’´•|”²›œl¢`Ë¥ˆîêb F0ƒ~®¥–E‹ ø3’h(!!I>yóä„9º‹m¶VÄ”¥!BÒJKÔŠ,“éš#Ô:;ûfwRu‡ŠbbXX«€È±V*ÅXG¦•hMu׸̆é¤ÛÛ*¶7{­'T·¼5&¤´¦ƒD´ÔµE‘’Y10¦¥kR5*gŒº6µ•Ù[ÄÅ‘èáãÙ·~Ý©9ƒjK
+ÉTBÌ"Ξ?VÙ Xd@¤˜~ºvDèv•@`éË»c®MwmmzRIaFD'¶'d–RP
+'m'S•a,‹€^Âf-ù°Þ ˆˆVLÀ±Qˆ0”‚1P,!!õH hŒEPQ#‰0&‡$”…`°I0?>$!Ž  >Ê‚"ÀF"“³J2:J0Š
+$±‘ÉP‚ÄP¢*ˆ¥Y± È‘ Âup¸Á.£hÙ°AŒ,#£9ʉãg‚ª”NÊ7Üö’OA at oZæ×æZýwŸ÷x»[Zß®3óÀÈÎq6¾/Œ^Zý’ª•U|¾4ŸŽüwçÀ                                                                                          8 €?S÷æŸ|ó’üãÕEQ_΁ø
+¨ª*ÈB at a$„“܇;<º8Q-bÊ'–«ÅRwù=<Ýýð]z´÷º÷RytôÎAt)DÚù1…ŒqÐ Õ(wåÀêm©§ÉçÀwÒy®õèõçØ.‚ܰ¼ÎL¨Ÿï·~\yúzzfþηÍoÆúÊ åwßZ®7üfÖï9ßž                                                                                           à  ü¿…|¾^Ëñ0¢qb­u5Œ’Æû›(”ZÊ&7!¨mT¢qÐ ã>ÿÁþÿvÇÝø}Æc
+Ä*Õ_ü¼“ó³gÿ±küì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­e×ÍzóG´·ëÉ=›Zý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ:ú—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­c¯©z÷G´·ëÉ=›Zý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ:ú—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­c¯©z÷G´·ëÉ=›Zý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ:ú—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­c¯©z÷G´·ëÉ=›Zý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ:ú—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­c¯©z÷G´·ëÉ=›Zý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ:ú—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­c¯©z÷G´·ëÉ=›Zý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬j•/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÆ©Rõîi;o×’{6µû$–­cT©z÷G´·ëÉ=›Z
 ý’KV±×Ô½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬j•/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk}K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­cT©z÷G´·ëÉ=›Zý’KV±ªT½{£ÚNÛõäžÍ†-~É%«Xëê^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk¥K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÇ_Rõîi;o×’{6µû$–­c¯©z÷G´·ëÉ=›Zý’KV±ªT½{£ÚNÛõäžÍ†-~É%«XÕ*^½Ñí'múòOfÿd’Õ¬j•/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk¥K׺=¤í¿^IìØb×ì’ZµR¥ëÝÒv߯$öl1köI-ZÆ©Rõîi;o×’{6µû$–­cT©z÷G´·ëÉ=›Zý’KV±ªT½{£ÚNÛõäžÍ†-~É%«XÕ*^½Ñí'múòOfÿd’Õ¬uõ/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk¥K׺=¤í¿^IìØb×ì’ZµR¥ëÝÒv߯$öl1köI-ZÆ©Rõîi;o×’{6µû$–­cT©z÷G´·ëÉ=›Zý’KV±ªT½{£ÚNÛõäžÍ†-~É%«XÕ*^½Ñí'múòOfÿd’Õ¬j•/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk¥K׺=¤í¿^IìØb×ì’ZµŽ¾¥ëÝÒv߯$öl1köI-ZÆ©Rõîi;o×’{6µû$–­cT©z÷G´·ëÉ=›Zý’KV±ªT½{£ÚNÛõäžÍ†-~É%«XÕ*^½Ñí'múòOfÿd’Õ¬j•/^èö“¶ýy'³a‹_²IjÖ5J—¯t{IÛ~¼“ٰůÙ$µk,|&¾Ý|1ýÆ1ŒcÆ=~Ot·Ä|e¿” ~ÛíÌŒ]©…BÂØ%ŠU±?ø÷ÅU]
+›æ5?Ý?O_Û"N½tTSïþø,¿Wîa™t¡~€[lfÏæüÚ|@·Ö_¦ e>RI3kûÓé À ÷«€Fÿ /Ò}÷ËÀÂ@¾P_ÙhÇ8gM
 Ak+0醰ÀŸû¦±ÔýÙ”ü`½?/éœôË.gÓÝ™™™ïÖ½óáþ€^@]&ÜÇyôýtúgˆ/¸°-À_Ý÷`èúÀ/°Ô .N.êÀtrê@«äòJ 0”¨ƒÈºM§ôÍÁ%|¯ØŸ/@_4ìÞp^³ìÀ-o /x.À^*az‚À^WP^€´‚, ¾KØÄ×8•@| /`Ss`_ÐùÀ^‡`É5: ½eP [§ _ åtûÒ¨*–ààÀ\‚÷dýð[Š€àrV ´R.ð]A`/ו@w€´`ZÐ-Ázܼ
+ ´SÔçØÌ¹ìî<À°ìJ 5üøPºxŠt‘+¼TP°À_X-À¿HÕ…&)0¤ÅXLL'Ì`¸œ‚ÜÀ¿Xôì_0/P,¬Kh&îòyLÃS´ð¹ÞÀ¹4°. X Xƒçžà.ιg”ߘ¢îx‚À[Ð,©}²¨¥^ ½³  -} ]qԐ/¤‰ö °¹Ìªï{ÁxýGp¨óÜÆ1™-ÁlÔP «ÐT¥} »×Èñ€.€¶Ÿ‹ñ};fßéÏ”ïñù׉°.À°ØÎµ>™2N©ì•@aÅ*€Ð.@·€´
+½ ¾À½	+â7rÄlÀíx€]຀»ÀIóŠ€Ð. ]Œ•‘•‘‘0{{Àº
+}g¸à> _Ó´ªìK¸@æ³ÄÀSÐܘ/Ûš>ƒè}3˜/~ -ÒÃEë:zдÞ	>0,æÚ@¶ÓªüâÔ²|癩ð€·àÔÏ*€ù@.AP´€^ËÔùÁW€€-À½À¼êP)>2ýWp.ð€»øAyÏ€P[‚Éâ©áêÙÜÈzÀ.À¸À™Tz~U©ÿ9à¨,<§ˆ¨
+X$øHP\w‚òØŸlærÀx`Zìlí?	‡qìê½Ò¨Žø«|À/í‰ña1„ÅOP/pï•@| º‚®à¨*ÜØô;§p.A|À«Àúlò0ö”÷ªuö'°ÆA~à/Œ¯x/P[h _h™ ]à°Æ
+¼Auànæ\‚âwö‚ë|¼UO€P.Azï`,€²E]à»åP°.{Á| °à¶ °úà¹~Ì›€°¨/ÿMŽê´•P ^ÉÀ«åð•@`.rh<`,€°½ÑPp;ÁlÜp ,€¾©í÷¥P ¾€¾ ]A&€[ ¸퀻WÆð‚ó7À,ö€´óÍÌá*€ÜíR€ð¸/ÕáÜ*P›‚ê4Ôˆ/ו@p†àóÕL‘ Þ{¸Ú¤A†çP\ ½À¾0_¸àÈ*ä /p.À½À/„ ]| µØ ²w ¼ yØÑö–འY…†^Ùîÿ¬ªõ€¿ªU¸/oŠ{Ï@UñÁP€·`)öÞ€-äÀìÔ
+^ °
+X}@»| / _@*Ôä¸#@/(¨ ô™R€÷{`ƒ÷$R“ÿâîH§
+K,€ 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,230 +0,0 @@
-‹ ÜbJ ìý_sÛÚ¶å	ž×:Ÿb?vGìʰðGʧ®LGU9ºª£¢²²ûQSº´ÂÞ¦‚¢o^×§o´|%R¤¸01‡6=¿ˆÌ­kùîÉL¬5æX×íÝ_m½ùëoõmZôÕbõÿ17Å–®i†–]SŒÿwY×ã?ò²¬RQÕ–eªÚê4³ÿ›¼Â÷ÇM¿þã|Z®–_￝ø{wëGÅ¿–ëÃú?¬W‹Y/‚3ë_uuÙvm·­]5-õWp¬þ‹‡ï÷ßþe5Ëgnwõ>¬ÿ¶äMÝ>Õ¿+Š´­ÓÖÝ?þ(fùô7^ÿ¡Øw«õÿðŸþ(þù¯wßnWë›ûÛíÿõ¿Ü}Û^w¿mî¾þs{9üñ/ý_÷_lÓþó¯ÕíÝ×ÿaûcu½ûùoý_wÿþúcüOý?þÏÿçÿåÿøoðÿú£úmû¿ü¯ÿ÷?7w÷ß–Ûÿh9~Èÿþ¿þßãoÛ6ÿ¡¾êþ¹èŸïþx¼ÿ¿‡ÿö²MWõÿïÿüχÏ?ïý×?ÆÓòŸ÷Ÿ¶µ[>Žÿr‹ÕúnøÅø¿høïþ`÷«þá~±ûÍÕ?ÿåáûðÏ»ÇáÇ›»[Ü=lîWß~þÙ €Û?¾Þýëöèö#Êþ÷‡_ýk¿ý¨íÿ±ýÏýñ¯Ýýq{÷ÇÃãÝ›ÇÅ=®ÿxèïþøkq÷Çâß®þ>ñÇ»‡?þÚ¬·¿Y¿éÿXüµú×í_Ûÿ±Ôþ±øú/_¿?~þãvóøG¿x¸ÿ㯿þíù·íÕãö¿vûÿªíÿ÷ÇçÍ›¿þxüñ¸ý¾ýÂÿ폯mÿ§}Û^¿ß67Ãg?|Ûþ'Wßî7«õ·7‹‡¯Û»ûãîqøV۝²ýãß6ë?¾öŸÿåæë_ÿü´Z®þº¾›&¥ô®¶_ÞÏ•Ÿßx[ï*pÓ½_~ûëîÛf÷‡ýííö;}ÿÚð¯‹?>ÝoÿíŸ
-óçõÕîOþõ~½ùÞýçÃê¿ß­ÿø«ÿÖ/ï†ÿžÿôÏ>¿öʽöŠ	×^Áµ·íÿ¡¼z·k¯ºÐk¯špí•-ßáÅW\¿ÛÅ—.ôâK.¾ªæâ{åÎW¿ÛÅW_èÅw¼ã+^|×\{¯\{å»]{Í…^{Ç;¾ã×^ɵ÷ʵ÷~oí…^{Ç;¾×^ÇÅ÷·zÝè.ôâ;Þñ¿øª†‹ï•‹¯{·‹ïêB/¾ã_uüÎÇBËk_õnßõ…^|Ç[¾ã_ŵ÷·ºñ•—º»q¼ç;qçc{ãïõÂQ^êþÆñ¦ïÄ­5æ×®¾æý®¾KÝá8Þõ¥ã÷>[þ^]_y©[ÇÛ¾ãW_ââ;¼øª÷Ûá(/u‹ãxÛwâÖÇÇßìê»ÔMŽãmßñ«¯b¡ùoöÒq©ÛÇÛ¾úø½—×®¾ô~WߥîsoûŽ_}[þf·¾KÝç8Þö¿ø*ö9þfWߥntoûN\}¬5¿rõµï·ÞR]êNÇñ¶¯9Þö±àòÚÕ÷~÷¾êRw:Ž·}ǯ>Ü-¯\|Íû­·T—ºÑq¼í;~ñUltü½,Õ¥ntoûN\}¬5ï_}Õõ¸z¿A¢êRw:ê	“D‰Õ¾×ž¼ï·ÚW]êNG3áê«Ypyåê«ßo–¨ºÔŽvÊÕÇ‚Ë+W_zÇ«ïRw:º	W_ƒ¹ïovõ]êVÇñ¾ïø<Qb¹ï5‡Ë;.÷]êVÇñ¾ïøÕW³âòÚ½ïýV\Ò¥nuïûN\}¬¸¼rõ]ïwõ]êVÇñ¾ïøÕ×àî{mÅåý†:Ò¥îuïûŽ%V¯mÞt©{Çû¾ãW_Íjóßë7]ê^Çñ¾ïøÕ×°ÚüÊÕwõ~{éR÷:Ž÷}'®>V›_»÷½ã“÷R÷:Ž÷}'Æ)qXý½vÚÒ¥îuïûŽ_}5«Í/—AºÔ½Žã}ßñ«¯aµùµ'ï;®÷]ê^Çñ¾ïÄÕÇjókOÞ÷»÷Õ—º×q¼ï;>T”p¼vï{?wi}©{Çû¾Ó¼¬6¿æ2x¿}ÞúR÷:Ž÷}ǯ¾†Õæ×ž¼ïØ\_ê^Çñ¾ïøÕײÚüšËàû¾KÝë8Þ÷Ÿ*J¸^»÷½ã“÷R÷:Ž÷}ǯ¾šÕæ×®¾÷‹2¨/u¯ãxßwb˜œÕæ¿×4y}©{Çû¾ãW_Ëjók}ßûùûêKÝ븚0UÔ²âòÊÕ×½ã½ïR÷:®'\}+.¯=yßoµ¹¹Ô½ŽrÊyÐW,¹\~å»My©›åñµ—¿¿×³·¹ÔÝŽãßñ¹¢–5—Wn~Å;Þü.u·
 ãxçwüêëXsyÍgð~»Í¥îvœèüŽ_~W,ºü½Î*j.u»ãDçwâòÃã÷ÚTåû9L›KÝï8ÞùŸ,jñø½öÞñ~>—æR÷;Žw~ǯ¾Žç×]ÞqÍïR÷;Nt~Ç/¿+–œÿ^g¤6—ºáq¢ó;~ù]³äüÚŽÇû={ÛKÝñ8ÞùŸ-jqùý½üõí¥nxïüŽ_}+ί9]ÞoʽÔýŽßñËïŠ%ç×^{ßoɹ½Ô
-ßñËïš%ç¿×tQ{©;Ç;¿ÓEx
-^Ûí}ÇÎïR7<Žw~ǯ¾Žç×ö;Þñê»ÔýŽßñËïŠ%ç×]Þñò»Ô
-ßñËïš%ç×r$ß/ɯ½Ôãß‰ù"¼³×ÞKÝð8Þù¿ú:Vœ_{ë}?§Kw©û':¿ã—ßKί¼öVï·ÛÛ]ê†Ç‰ÎïøåwÍ’ókßûMxt»ãqü òãF×,»¼öð}?«Uw±;ÇO*?~ù•ë.¯<}ß1¾»Ô-rÊYåeÉÂËk×ß;v—ºéQN9­¼¬0û½fxyÇçïÅn{oÿŽO]³öòšÓþ¿»íq¼ý;~ù•‹/¯½ý¾ãÚߥî{œhÿN\%«/¯ÜÿÚw|ü^êÎljöïÄõWáøû{àvu±{ÇÛ¿£FXþ^Ûø}¿ÛßÕÅî}oÿŽ_~eÁêóßËuuu±›SN./KVŸ_»ÿ½ãõw±»SÎ./+VŸÿ^ñ~W»ûq¼ý;1o„ïïïµúru±›ÇÛ¿ã—_Y°úüÚíïý6ß®.vócÊæeÉêókÖ¿÷›6¿ºØÝ)G˜—«Ï¯Í¼½Ÿïþêbw?Ž·LJŽÊóÁkýß;.ÿ]ìîÇñþïÔõÇòókËï÷ü½¾ØÝ)™—%Ëϯõï·üw}±ÛSŽ2/+–Ÿ_ëÿÞ/ïåúb·?Ž÷ÇGÊ÷ÁkæÓ÷s\_ìöÇñþïÔõÇúókëïxý]ìöÇ”ÍË’õç¿—ùþúb÷?¦i^V¬?¿òþ!ÞûÇß–ëöÞüõ·ú6-új±úƒXþã_wÝû—Õ,ŸQliëzøgÙ5Åø—»ÿ{÷cÙþ£,«ª«Ë®(«eÓ–Í?þ(fùô7ø¾½ªÖüñOËÕr«­ïný¨øÒò¿ßýõ­6ý×ÿ4Þ±šªkË®»ºúãËþçöWÿóúîn÷›?êt]WuªêáWÿùû¿üËöëøOOwºòª¾*ÆÿÐ4tûô‹«º)¯®švøÍýïýÃËß
 n)†ßüO‹Íý¿>}Îötµý¬rüÏ|üÖ?û]W]ESVÃoþ×ûåçgÿâÏþÛ†ß<û÷~ö›ÿmõߏýoÝþêØÿÖáßûÙ¬.¯«ëÿÍóÿÔ¿ÿæÃöVðãÅ¿Àö»?èÿ·¾ßÜ}ê_þ½ÿ§o«oÿÇö–ñë[­‹ºÝ¢xxñ­•ÅU7~ÿõkÿéÙŸ§”º«Ýføoú¿úO_Ÿý×Õ×ãwúÿùŸÿëÍî¥Û_þ§ÿÿyõýÛânï_{üÍYýõ×ýæ»ßþÛ_WíÕVµW»í~µ¹»½ùŸþëÿÝʦÿCÿß¿¶wïÕâçw—êÔ\wé*µÝ³_þ·ÇŸÿöÿÝÕóÿØùüýÛ—Ÿÿ±º½ÞÞÆâ~_ލ_Òͳ’ÏþøY=žÿñÿùø¯·/þøaøãí-}÷‡UQßÚ{«QÏ+÷ÿís÷?ÎúÃM¾kšc÷ÿ§û]Û?ß>Šî4³þ[!øýÿHýoïþõ~Û1Ïsä׿iRIý¼QÿíÏ›»¿Œ—A~ý»bûש¿€óê¿}E4\yõo†ú·5õ—p~ý·ÿ¯l']yõoÿQTE»½
-P¹õ߬V_WË9Böý¿ªê¦¥þ
-&×óy}×ßÞ<­HžúŒ7Öвܝÿ¶ÿ«XÿQðTƒ?'ÿP?|sþ=˜¬ÿ§õ~ñ¥_ÞÝÜßûŒ·ô_ÕžþÛ”jô¯ D¹¡™¬ÿa³ñ„染¯ÿÔuìÿH¨Ñhlú?§ûŸÔÿWeBÿ
-Ìý9Â]äBÉÕÿè‘É\®”¼õ¿²­Ùÿ“0­þ÷ßnïþ­:÷2ȯ*ê‚ú+0Õ0Pœño÷ÿí~ý»aÿ—ç¿?©èªÿ7Oï°˜ôÿk
-p+œ»›‡~½¹|ÅûŸ‘÷þ?è¿kÛý+ sIÿ›³<ÿ˃þ¯K¼ÿKøoßîÿåþî–»@PLúg†ÞþŒüç]´ìÿK¨P~hLú_¬>ß­ï¾-~ì^ Ž-¼­ÿ´§ÿ¶ëØÿ—в“þÿ{ÿãñfõ/7ýããjqßoîÿõ~óãð3òõߥ®Eÿ
-J€ÐØÖÿ?÷ë»Û›íonþêŽ~Æ[ú/Þÿ›®Âÿ#áµ-ý¬Jü¿—ŒIÿß¾ÿõén=t w›ãâxûùßè¿+п‚º¸no\ú/<ý‰ù/	¦úÏæÿ¨öèÿ4$Ü¡1éßÓÿþ%àÿˆIÿsù?ÞÿR—п„ý¦ç“þ=ý¬ÿHàù“þ=ýø¿$àÿˆIÿ³ù?Þÿ·/ è_ÁòmýßÑÿþ%<srLüÿÇ%cÒÿlþýþ¿éZüßèÿccÐrÍÿ ÿ_‚©þ³ù?:æ߉ñ¬9, a1éßÑÿÿWû?±1éß3ÿƒ÷?	äÄÆ¤Oÿý¿„„òCcÒ¿§ÿÿ§ÖccÒ¿gþùŸJ¦Cc[ÿwôÿ#ṓcÒœÿqјô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tÍÿàü	¦ú{æÐÿI ÿ#6&ý{æ 	¼¹ÅƤÿÙü‡Ïÿ„þ%|üö¸Y_·mî1éßÓÿÁùxþÇÆ¤Oÿþ/	ø?bcÒ¿gþþo	äÄÆ¶þïèÿ@ÿ^³täý@þÇ%cÒ¿gþþo	ôÿ±ÉÒ{®ãã%ƒÂÏö”i«ÿ¢©ÈÿYÿÍêaõuµü‘u!dÕ¿Øþ½ªÏÿ¤þþL­ÿæóú®¿½y¼ÿ´ýÒ–§¿˜¼þ¨S7ø?%Øûÿ-5ýÿ¥2Uÿ¿¬?ýâK¿¼»¹¿=úo÷ÿÕžþÛí ý+àøçØLÕÿbµ>©ùçäë?u%ïÿØÿIÿguÿ“úÿ’üG
-æþ¿á.r¡dê·üŸùÕ’·þW6Cþ7ë?þLªÿ¸ýS}ä׿þ:õ`©ÿ™ãyóßcýS[ãÿ—ŠŽ	ÀÀXôæø_Þûÿ¨ÿ®-Xÿ“Àûl,ú?sü//ÿùçó¿!ÿ]ùϱ±èÿÌñ¿	ÏÿÔ‘ÿ¨ý¿ØXôæø_žÿwÔÛ•ÌÿJÀÿ‹þÏÿ› ÿ.•ìÿI(i BcZÿ?oü/oÿÔÓÖø%¼¶¥Ÿýûÿ‹EÿgŽÿñüoöõßøÿ$ÔÅ5'@fºþ_ÿGÂÿ¡ÀRÿùüõ¡ÿƒþOùϱ±èßÕÿþ%àÿˆEÿ³ù?ÞÿRËü·†ý¦ç‹þ]ý¬ÿHàù‹þ=ýþ/	ø?bcÑÿ|þƒ÷ÿTâÿ–@þslLëÿžþô/aÏÉAþ[0,úŸÏÿ±ßÿ7]ÿ[ýl¦ë?ùú?Èÿ•`©ÿ|þŽùßw¢lÓU$,ý»ú?Øÿ‘À
 þOl,úwÍÿàýOù±±èßÏÿQ¯„è_ at Bù¡±èß5ÿÿ§ÖccÑ¿kþùŸJ¦CcZÿ÷ôÿ#aÏÉÁùÁ°è>ÿÇ~þƒÿ[ĸÿ‡zÃ2]ÿ¥¯ÿƒó$XêïšÿAÿ'üØXôïêÿ@ÿðÄÆ¢ÿùü‡ÏÿýKøøíq³þ¾îÛÜ	bÑ¿kþç?Jàù‹þ]ýø¿$àÿˆEÿ®ùø¿%ÿÓú¿§ÿýKxÍÒ‘ýù‹Eÿ®ùø¿%ÐÿÇ&KÿõÕÙžç
-?ßÿ±ý}U´þ	¹õ߬V_WË9BVý‹fðÿÔ-õ—0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þMCþŸ†ÉmùâOh".”Éúÿeþyè_úåÝÍýí±Ïx»ÿ¯öôß&ÎÿÒÀú_l&ë±ZŸÒüsòõ_øÿ4ð䎍Mÿçtÿ“úÿªbý_„þ¿,ÿ,·Ðÿÿä귐÷Ãrþú_¹Õ9濲þãÏ´ú@Õ¹—A~ýS1ìÿRLõ?s ðíþ¿Ý¯—xÿ—ŠŽ	ÀÀ˜ôæ `Öûÿ¨ÿ®íXÿ—€ÿ?6&ýŸ9 ø¦þ˃þ¯Kä¿I ÿ96&ýŸ9 ˜ÿü¯‹–õ	ʍIÿg ¾­ÿ´§ÿ¶ë8ÿEþߨ˜ôæ `¾þ»Ô‘ÿ(¡¤mýÿ¼À·ô_¼ÿ7]Eþ‡„§äúÙÿÿ=0éÿÌÀ·Ÿÿ́þ;ü?êâš cÐáéÿHþ¦úÏæÿ¨öèÿ4ÿ“þý-ú—€ÿ#6&ýÏåÿ8xÿK]Bÿ>ô›ž[@\Lú÷ô°þ#çlLúwñ;ÿóðÄÆ¤ÿÙüïÿ©Ãÿ-ü—ØØÖÿýè_ÂS
-È‹‰Iÿ³ù?öýŸM×âÿ–@ÿƒþ“kþG…ÿC©þ³ù?:æ߉²MW5°˜ôï™ÿÁþöbcÒ¿gþïÈÿˆIÿžþú		凯¤ÏüüŸXÿIÿ~ùuAþ§„’éßÐØÖÿýäÿHxªçÄĤÿÙüûùÿMבÿ)aÜÿC½a1è¿tõpþSý=ó?èÿ$ÿ“þ=ó?пü±1é6ÿÇáó?¡	¿=nÖßÃm›;A at Lú÷ô0ÿ/çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽþô/á©äÄĤÏüüßèÿc“¥ÿtväÇ…Ÿíÿ(º­þ‹¶¨ñ(È­ÿfõ°úºZþȹòê¿ý󪪷ú˜\ÿÍçõ]{óxÿiû­-O~3YýÿXÿ¦Iä?H˜ÜÿTôÿ—Îdýÿòþ<ô‹/ýòîæþöØg¼ÝÿW{úoSÂÿ-¡A¹¡™¬ÿÅj}JóÏÉ×bÿOÇ¿ÇÆ¦ÿsºÿIýUâÿ‘0½ÿ¯¶üYUôÿM®þwëÿyŸ1\ yëe[sþ³„iõ÷*—ù¿±þÌÿ©0Õ¶ù¿v¿þëRÑ1“þ=æÿFý3ÿ§ÿlLú÷È~zþ³þ/üçØ˜ôï1ÿ7
 êŸù?¬ÿÇÆ¤ù¿QÿÌÿ©Àÿ“þ=òŸwïÿ‰üw
-%
- at hlëÿó£þ™ÿSñbK?ó‡
-ÿïÅcÒÿló́þ;ΐPל ƒþOÿGjñ(0Õß#ÿùçþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿqþ·Šý¦ç“þ=ý¬ÿHàù“þ=ýø¿$àÿˆIÿùÏOþüßÈŽmýßÑÿþ%<Õ€ü·˜˜ôï‘ÿüSÿ-þo	ôÿ±1èÿì0èAáÙù%þ¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ¿£ÿÿ¯öbcÒ¿gþïÈÿˆIÿžþú		凯¤OÿþO	¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þïèÿ ÿGÂS
-8ÿ#&&ýÏæÿØÏÿoð‹÷ÿPoXú/]ó?8ÿG‚©þžùôÈÿˆIÿžùè_þØ˜ô?›ÿãðùŸÐ¿„ß7ëï‹á¶Í  &ý{ú?8ÿQÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÿÀÿ-üØØÖÿýè_ÂKGîä\<&ý{æàÿ–@ÿ›,ý—WçZ>^0(ü|ÿG»ÕÑœÿ"!·þ›ÕÃêëjù#çBÈ«ÿöÏ«ªòŸ©¿?“ë¿ù¼¾ëooï?m¿µåÉo&¯ÿêß4Ìk0õÿã5ýÿ3Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛÄþ¿ŽŽÍdý/VëSšN¾þSÇü§^ÿccÓÿ9Ýÿ¤þ¿*Yÿ“`îÿëî"J®þwëÿyŸ1\)yëeېÿ+aZýÇýŸÊgþ¯Ýå?WÔ_©þ³Íÿµûõ'ÿYD*:& cÒ¿Ëü_»ËÆÿ/ÿlLúwÉn9ÿ[ùϱ1éßeþ¯ÝÍÿ±ÿ/ý¿Ø˜ôï2ÿ×îæÿØÿ—€ÿ76&ý»ä?ïÿÛ¢%
- at hlëÿóínþÿ„×¶ô³~¨ñÿ^2&ýÏ6ÿ×èŸüg
-uqÍ	1è¿põ0ÿ%ÁT—üçÝþýŸòŸccÒ¿£ÿ£EÿðÄÆ¤ÿ¹üï©Kè_‡~Ósˆ‹IÿžþÖ$ðüIÿžþü_ðÄÆ¤—üçv—ÿŒÿ[ùϱ±­ÿ;ú?п„gNމ?àÿ¸dLúwÉÞéŸó5ÐÿÇÆ ÿäêÿHø?˜ê?›ÿ£cþ÷(ÛtUc	‹IÿžùìÿH`ÿ'6&ý{æðþ'üØ˜ôïéÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿ~þDþ„çNŽI?pþÇEcÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒ
 ÕÿÁù?LõwÌÿ ÿÓ@þGlLú÷ô 	ø?bcÒÿlþÃçþ%|üö¸Y_·mî1éßÓÿÁùxþÇÆ¤Oÿþ/	ø?bcÒ¿gþþo	äÄÆ¶þï˜ÿþ%¼féÈûüKƤÏüüßèÿc“¥ÿê\ÇÇK…Ÿïÿè¶ú/šŠó_$dÖ³zX}]-d]yõßþyU¥ÿ„©õß|^ßõ·7÷Ÿ¶_Úòô“×ÿõoêšõ?	öþ€&âR™ªÿ_ÖŸ‡~ñ¥_ÞÝÜßýŒ·ûÿjOÿmUÓÿKàøçØLÕÿbµ>©ùçäëÛþáÿ‘ÀÊ]lLú?«ûŸÔÿ—¬ÿk0÷ÿÌ^4™úß-ÿg~Æp¥ä­ÿ•MKþ¯„Iõ·Î_ίÕ55õW`©ÿ™ã™óßCýSËúŸ†TtL Æ¢ÿ3Çÿ2ßÿ»qþ¯Àÿ/ÿl,ú?sü/3ÿùçóŸõ	ä?ÇÆ¢ÿ3Çÿ&<ÿS‡ÿ_û±±èÿÌñ¿Lÿo7Îÿ±ÿ§ÿol,ú?süo‚þ»Trþ“„’ 4¦õÿóÆÿ2÷ÿý7mMþ»„×¶ô³`ÿÿb±èÿÌñ¿3žÿ;þ»‚üg	uqÍ	™®ÿÂ×ÿQáÿP`©ÿ|þúpÿ‡þOùϱ±èßÕÿþ%àÿˆEÿ³ù?ÞÿRÛ 	úMÏ- .ý»ú?Xÿ‘Àó?6ý{ú?
-ü_ðÄÆ¢ÿùüïÿ©Àÿ-üçØ˜Öÿý	ýKØsrÿ‹þçóì÷ÿMWàÿ–@ÿ›éúO¾þÿ‡KýçótÌÿ¾e›®j, a±èßÕÿÁþöbcÑ¿gþGÃûŸò?bcÑ¿«ÿƒþ_BBù¡±èß5ÿÿ§ÖccÑ¿kþùŸJ¦CcZÿ÷Ìÿ ÿG¾“ƒó?baÑÿ|þýüÿÿ·ˆqÿõ†eºþK_ÿçÿH°Ôß5ÿƒþOù±±èßÕÿþ%àÿˆEÿóù?Ÿÿ
-ú—ðñÛãfý}1Ü·¹Ä¢Wÿç?Jàù‹þ]ó?ðIÀÿ‹þ=ó?8ÿIù±1­ÿ{ú?п„×,ù?ÐD\*ý»æàÿ–@ÿ›<ýŸæËs…Ÿïÿh·ú/šaþÿ‡?¹õ߬V_WË9B^ýëÁÿSùïÔߟÉõß|^ßõ·7÷Ÿ¶ßÚòä7“×ÿõošŠõ	æþ¿ ‰¸P&ëÿ—ùç¡_|é—w7÷·Ç>ãíþ¿ÚÓ›*Öÿ%°ÿ›Éú_¬Ö§4ÿœ|ý§®cýOBƒþCcÓÿ9Ýÿ¤þ¿bþKƒ½ÿá.r¡ä귐÷Õ’·þWŽó?¬ÿø3­þãPuîe_ÿT$æÿ$˜êæ àÛý»_ÿ®"ÿUB*:& cÒÿ™€yïÿí8ÿ×2ÿ#Î=6&ýŸ9 ø¦þ˃þ¯«xÿ—@þslLú?s 0ÿù_
-ûÿ*”“þÏ |[ÿiOÿmײÿ/ÿolLú?s 0_ÿ]êðÿK(i Bc[ÿ?o ð-ý—ïÿMWáÿ‘ðÚ–~Öåh æ&r¡˜ôæ àÛÏÿæ@ÿ-ç?H¨‹kN€ŒAÿg
-Ïö0ÿ%ÁTÿÙüõáþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý{ú?ðIÀÿ“þgó¼ÿ§ÿ·òŸcc[ÿ÷ó”è_Â3'Ç´È»hLúŸÍÿ±ßÿ7]ƒÿ[ýlúO®þÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿžþú		凯¤GÿùÿXÿIÿžùäJ(™þ
-mýß1ÿƒü	ÏœÓ~àü‹Æ¤ÿÙüûùÿ
-þoãþê
-‹Aÿ¥«ÿƒó$˜êï™ÿAÿ'üØ˜ôïéÿ@ÿxs‹Iÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžùø¿$àÿˆIÿžùø¿%ÿÛú¿cþú—ðš¥#ëò?.“þó?ÈÿÖ@ÿ›,ý·gG~¼`PøÙþ²Úê¿h··ürë¿Y=¬¾®–?r.„¬úÛ¿WUuËù?&×óy}×ßÞ<ÞÚ~kË“ßL^ÿ?Ô¿iþO	ÓÚþ«ý?¡‰¸P&ëÿ—÷ç¡_|é—w7÷·Ç>#¯ÿôߦšþ_£±™¬ÿÅj}JóÏy[ÿÕžþë¡%DÿȈMÿçtÿ“úÿŠüo
-úÿ««?¯¶Ðÿÿäê·þŸ÷Ã’·þW¶uËú‚iõ÷*—ù¿±þ©HõW`ªÿlóí~ý9ÿSD*:& cÒ¿Çüߨÿ®Åÿ«å¿Ø˜ôï‘ÿüôü'ÿMùϱ1éßcþoÔ]0ÿ¯¡Bù¡1éßcþoÔÛuœÿ"ÿolLú÷ÈÞ½ÿ§ÿŸ„’ 4¶õ‡ù¿QÿMW‘ÿ!á©™þß«½?á&r¡˜ô?Ûü_s æÿ5ÔÅ5'@Æ ÿÂÕÿÑàÿP`ª¿GþóÏýú?
-ä?ÇÆ¤Oÿú—€ÿ#6&ýÏåÿ8xÿK]Bÿ>ô›ž[@\Lúwô4¬ÿHàù“þ=ýø¿$àÿˆIÿùÏOþüßÈŽmýßÑÿþ%<Õ€ü·˜˜ôï‘ÿüäÿÀÿ-þ?6ýŸ=(<×ÿ1ä?âÿðÇTÿÙüó¿ïDÙ¦«HXLú÷ô°ÿ#ýŸØ˜ôï™ÿÁûŸò?bcÒ¿gþý¿ò¿ccÒ¿§ÿÿ§ÖccÒ¿gþùŸJ¦Cc[ÿwôÿ#ᩜÿ“þgóìçÿ7ø¿EŒû¨7,ý
 —®ùœÿ#ÁTÏüú?	äÄÆ¤Oÿú—€ÿ#6&ýÏæÿ8|þ'ô/áã·ÇÍúûb¸ms'ˆIÿžþΔÀó?6&ý{ú?ðIÀÿ“þ=ó?ðK ÿ#6¶õGÿú—ðTò?bbÒ¿gþþo	ôÿ±ÉÒs®ãã%ƒÂóüESvø?dÖ³zX}]-d]Yõ/¶¯ªÆó?©¿?Së¿ù¼¾ëooï?m¿´åé/&«ÿëßÔ
-þO	Óúÿ½*úÿKeªþYúÅ—~yws{ô3Þîÿ«=ý·UÃû¿”›©ú_¬Ö'5ÿœ|ý§®äý_ûÿ±1éÿ¬îRÿ_’ÿ¨ÁÜÿW#ÜE.”Lýï–ÿ3?c¸RòÖÿÊfÈbýÇŸIõ·ª³/ƒüúWÝðþGýý±ÔÿÌñ¿	óßiøë<ÿ¤¢c00ýŸ9þ7iþ¯ ÿ—Àûl,ú?süoJþs[“ÿ&üçØXôæøß„çê:æ%°r‹þÏÿ›4ÿWpþ‹ü¿±±èÿÌñ¿IùÏ%þ?	%
- at hLëÿçÿM™ÿkkò?$¼¶¥Ÿýûÿ‹EÿgŽÿñüoæÿ
-ü¿êâš 3]ÿ…¯ÿ£Äÿ¡ÀRÿùüùô"ÈŽEÿ®þô/ÿGl,úŸÍÿqðþ—ÚýKøÐoznq±èßÕÿÁúžÿ±±èßÕÿÿKþØXô?Ÿÿã0ÿ¹Àÿ-üçØ˜Öÿý	ýKØsrÿ‹þçóä?·þo	ôÿ±™®ÿäëÿ¨ñ(°Ô>ÿGÇüï;Q¶éªÆ‹þ]ýìÿH`ÿ'6ý»æðþ'üØXôïêÿ ÿ—P~h,ú÷ô”ø?%°þ‹þ]ó?Èÿ”P2ýÓú¿gþù?öœœÿ‹þçóìçÿ7ø¿EŒû¨7,Óõ_úú?8ÿG‚¥þ®ùôÈÿˆEÿ®þô/ÿGl,úŸÏÿqøüoп„ß7ëï‹á¾Í  ý»ú?8ÿQÏÿØXôïšÿÿKþØXôïšÿÿ[ù±1­ÿ{æ 	¯Y:² ÿãb±èß1ÿ£#ÿ[ýl²ôŸê³=Ï~¶ÿcÛøoŸ'íàÿÂÿáOný7«‡Õ×ÕòGÎ…WÿzðÿÔMKýL®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¬þ¬Ó$æ?$˜úÿúןÐD\(“õÿËüóÐ/¾ôË»›ûÛcŸñvÿ_íé¿M‰ý?	ŒÅf²þ«õ)Í?'_ÿ©ë˜ÿÀäVllú?§ûŸÔÿW%ùo¦÷ÿõ–?ëšþÿ¢ÉÕÿn ï3†$oý¯ÏÿcýÇŸiõ7€ªs/ƒüú§¢æüo	¦úŸ9 øvÿßî׿cýOC*:& cÒÿ™€yïÿÝ8ÿ×±ÿ/ÿlLú?s ðMý—ý_Çú¿òŸccÒÿ™€ùÏÿºhYÿ“ÀúlLú?s ðmý§=ý·ìÿ‰Àÿ“þÏ Ì×—8ÿSCIÛúÿy€oé¿<xÿoºŠù	/¶ô3¨ñÿ^<&ýŸ9 øöó¿9ÐGþ—„º¸ÆƒþOÿÇ0ÿÿÃSýgóÔû?ôÈŽIÿŽþýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý{ú?ðIÀÿ“þgó¼ÿ'ÎÐ@þsllëÿŽþô/á©ä¿ÅĤÿÙüûýÓµø¿%ÐÿÇÆ ÿäšÿÁùßLõŸÍÿÑ1ÿûN”mºª±€„ŤÏüö$°ÿ“þ=ó?xÿ“@þGlLú÷ôÐÿKH(?4&ý{ú?ðJ`ý76&ýûåÔœÿ©¡dú74¶õGÿù?žjÀù
 11é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéêÿàü	¦ú{æÐÿI ÿ#6&ý{æ 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿§ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwô 	/,¹?ÿqñ˜ôï™ÿÿ[ýl²ôßµçZ>^0(ülÿG™¶ú/Úÿ‡„ÜúoV«¯«åœ!«þÅöïUU=ä?Q&×óy}×ßÞ<ÞÚ~kË“ßL^ÿ?Ô¿ijò$d·ýå«¿¢‰¸P&ëÿ—÷ç¡_|é—w7÷·Ç>#¯ÿôߦšõ	œÿ›Éú_¬Ö§4ÿœ·õ_íé¿,Áè_ ûÿ±±éÿœîRÿ_Uø$dõÿåýÿoD®þwëÿyŸ1\ yëeÛ$ÖL«ÿ¸ÿS¹ÌÿõOÅðþGýý1Õ¶ù¿v¿þä?ŠHEÇ``Lú÷˜ÿõßµä?hàý?6&ý{ä??=ÿ™ÿ“@þslLú÷˜ÿõ_øÿ4°ý“þ=æÿvýAþ«ü¿±1éß#ÿy§ÿº`ÿOþŸØØÖÿæÿFý7]Âÿ+á©çûÙÿÿ0é¶ù¿æ@ÿäh¨‹kN€ŒAÿ…«ÿƒó¿%˜êï‘ÿü´ÿCÿ'üçØ˜ôïéÿ@ÿðÄÆ¤ÿ¹üï©cþ[Ç~Ósˆ‹IÿžþÖ$ðüIÿnþÎÿVÿ#6&ý{ä?ïÞÿS‡ÿ[ùϱ±­ÿûù?8ÿQÁ“ƒü·P˜ôï‘ÿüäÿÀÿ-þ?6ý'Wÿù¿LõŸÍÿÑ1ÿûN”mºª±€„ŤOÿû?Øÿ‰IÿŽù5ïÈÿˆIÿžþú		凯¤ÏüüŸXÿIÿžùäJ(™þ
-mýß1ÿƒü	NÎÿ…Iÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ5ú—ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ó?ðIÀÿ“þýò?jÎÒ@þGllëÿŽþô/áÀÉAþG(Lú÷ÌÿÀÿ-þ?6YúoÚs-/~¾ÿ£Üê¿h‹ÿ‡‚ÜúoV«¯«åœ!«þÅöïUUÝâÿ‘0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þMCþ‹†ìþ÷CIÿÿ{0Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛÄùXÿ‹Ídý/VëSšN¾þë‚ó
 ß5pü{llú?§ûŸÔÿWëÿ&ôÿeùçn”þÿòÉÕÿný?ï3†$oý¯lëŽõÓê?îÿT>óånþ¯ þ
-LõŸmþ¯Ý¯?ç‹HEÇ``Lúw™ÿ+Çù?ò5àÿIÿ.ùÏ?Ÿÿä¿I ÿ96&ý»Ìÿ•»ù?Öÿ%°þ“þ]æÿÊÝüç¿HÀÿ“þ]òŸËÝùßä?J(i Bc[ÿ÷˜ÿ+wç“ÿ!á©yþßÿïo‚Iÿ³Íÿ5úçüo
-uqÍ	1è¿ðô¤ÿ‡Sý]òŸwû?ôÈŽIÿžþô/ÿGlLúŸËÿqðþ—º„þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLúwÉþéÿÀÿ-ü—ØØÖÿýè_ÂS
-È‹‰Iÿ.ùÏ;ý·ø¿%ÐÿÇÆ ÿäšÿQâÿP`ªÿlþŽùßw¢lÓU$,&ý;ú?ðÿj`ÿ'6&ý{æðþ'üØ˜ôïéÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽþò$<Õ€ó?bbÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒ5ÿƒó$˜êï™ÿAÿ'üØ˜ôï™ÿþ%àÿˆIÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžþü_ðÄÆ¤ÏüüßÈÿˆmýßÑÿþ%<Õ€ü˜˜ôï™ÿÿ[ýl²ôuu®åãƒÂÏ÷lÿ¼*Úí?ðÈ­ÿfõ°úºZþȹ²ê_lÿ^UÕÃü?õ÷grý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›¦¦ÿ—`kûéÿ/Éúÿåýyè_úåÝÍýí±ÏÈêÿGý·©fþKç?Çf²þ«õ)Í?çmýW{ú¯‡H8ô/€×ÿØØôN÷?©ÿ¯8ÿSCVÿ_–»ÁOúÿ߆\ýïÖÿó>c¸@òÖÿʶaþK´úû?•Ïü_=Îÿ5¬ÿI0Õ¶ù¿v¿þ]ÿWB*:& cÒ¿Ëü_½Ëæý_þÿؘôï’ÿüóùÿ_ùϱ1éßeþ¯×ÿÉÒÀö_lLúw™ÿûÿ!ýÀÿ“þ]òŸGý×ùðÿÄÆ¶þï1ÿWó?‰ý	;ù§÷ÿýŠ›È…bÒÿlóÍžþÛퟡuqÍ	1è¿ðôÔ-þ¦ú»ä?ïöèÿ4ÿ“þ=ýè_þØ˜ô?—ÿãàý/u5ú—ð¡ßôÜâbÒ¿§ÿƒõ	<ÿccÒ¿§ÿÿ—ü±1éß%ÿù§ÿÿ·òŸcc[ÿwô 	O5 ÿ-&&ý»ä?ïôÏùèÿccÐrÍÿ(ñ
 (0Õ6ÿGÇüï;Q¶éªÆ“þýüþ_
-ìÿÄÆ¤ÏüÞÿ$ÿ“þ=ýôÿʍIÿžþüŸXÿIÿžùäJ(™þ
-mýßÑÿAþ„'焤ÿÙüûùÿ-þoãþê
-‹Aÿ¥kþçÿH0Õß3ÿƒþOù±1éß3ÿýKÀÿ“þgó>ÿkô/áã·ÇÍúûb¸ms'ˆIÿžþΔÀó?6&ý{ú?ðIÀÿ“þ=ó?ðK ÿ#6¶õGÿú—pàä ÿ#&ý{æàÿ–@ÿ›,ý·õ¹–
-?ßÿQmõ_´CÿÿßÜúoV«¯«åœ!«þÅöïUUÝVÔ_Áäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7
-þ
-yýÿÏzÑÿÿ6LÖÿ/ïÏC¿øÒ/ïnîo}ÆÛýµ§ÿ6Õä¿H`ý/6“õ¿X­Oiþ9ùúßþƒý	¼þÇÆ¦ÿsºÿIýU2ÿ-aBÿ_–îÆ@éÿ/Ÿ\ýïÖÿó>c¸@òÖÿÊ–ù/
-Óê?îÿT>óÕnþ¯ þ
-LõŸmþ¯Ý¯—èÿ%¤¢c00&ý»ÌÿUãü_Kÿ/ÿlLúwÉþùüÇÿ/üçØ˜ôï2ÿWëÿ-ùO*”“þ]æÿý·œÿ'ÿolLúwÉßÿù?J€ÐØÖÿ=æÿªqþ§bþGÂS
-òöÿ~ÅMäB1é¶ù¿æ@ÿþ_	uqÍ	1è¿ðôó?ø?ü1Õß%ÿy·ÿCÿ§üçØ˜ôïéÿ@ÿðÄÆ¤ÿ¹üï©Kè_‡~Ósˆ‹IÿžþÖ$ðüIÿžþü_ðÄÆ¤—üçŸþüßȉmýßÑÿþ%89È…Iÿ.ùÏ;ý·ø¿%ÐÿÇÆ ÿäšÿQâÿP`ªÿlþŽùßw¢lÓU$,&ý;ú?ðÿj`ÿ'6&ý{æðþ'üØ˜ôïéÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽþò$898ÿ#&ýÏæÿØÏÿoð‹÷ÿPoXú/]ó?8ÿG‚©þžùôÈÿˆIÿžùè_þØ˜ô?›ÿãðùŸÐ¿„ß7ëï‹á¶Í  &ý{ú?8ÿQÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÿÀÿ-üØØÖÿýè_ÂS
-Èÿˆ‰Iÿžùø¿%ÐÿÇ&Kÿ×͹–
-?ßÿ±ý{UÑ–	ÿ‡‚ÜúoV«¯«åœ!«þÅPÿªn9ÿGÂäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7MÿSBVÿuôW4Êdýÿòþ<ô‹/ýòîæþöØgdõÿ£þÛTÓÿK(¤™Éú_¬Ö§4ÿœ·õ_íéüú€üccÓÿ9Ýÿ¤þ¿"ÿ[C^ÿ?Bÿÿ‘«ÿÝúÞgHÞú_Ù6¬ÿH˜Vÿqÿ§ò™ÿkvùÏÌÿI0Õ¶ù¿v¿þ]Mþ«„TtL Ƥ—ù¿f—ÿÌüüÿ±1éß%ÿùçóŸý?	ä?ÇÆ¤—ù¿ÝúÇüŸ„
-凯¤—ù¿±ÿþýÀÿ“þ]òŸGý×ìÿk(i Bc[ÿ÷˜ÿ÷ÿ9ÿIÄÁNþéýÿc¿â&r¡˜ô?Ûü_s ÎÐPל ƒþWÿGƒÿC©þ.ùÏ
-ç
-!ÿ96&ý{ú?пü±1é.ÿÇÁû_êjô/áC¿é¹ÄŤGÿGËúžÿ±1éßÓÿÿKþØ˜ôï’ÿüÓÿÿ[ùϱ±­ÿ;ú?п„'ùo¡0éß%ÿù§ÿÿ·úÿØôŸ<ýÛ¿†ÿC€©þ³ù?:æ߉²MW5°˜ôïéÿ`ÿGû?±1éß3ÿƒ÷?	äÄÆ¤Ïüú		凯¤OÿþO	¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þïèÿ ÿG“ƒó?BaÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒ5ÿƒó$˜êï™ÿAÿ'üØ˜ôïéÿ@ÿðÄÆ¤ÿÙü‡ÏÎ×ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýK8prÿ
-“þ=ó?ðK ÿM–þ›«s-/~¾ÿ£Úê¿h‹ÿ‡‚ÜúoV«¯«åœ!«þÅpÿ¯ê–ó$L®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¬þ¬ÓÔø?%dõÿÿþCMÿÿ{0Yÿ¿¼?ýâK¿¼»¹¿=öYýÿ¨ÿ6qþ‡†é†f²þ«õ)Í?çmýW{ú¯™ÿÁñï±±éÿœîRÿ_UìÿK˜Ðÿ×õŸõúÿ߁\ýïÖÿó>c¸@òÖÿʶ©XÿQ0­þãþOå3ÿWíæÿõW`ªÿlóí~ý9ÿ[D*:& cÒ¿Ëü_µ›ÿ£ÿ—€ÿ?6&ý»ä?ÿ|þ“ÿ&üçØ˜ôï2ÿWíÎÿfþWëÿ±1éßeþoÐÛqþ‹ü¿±1éß%ÿ¹ÚÍÿáÿ“PÒ „ƶþï1ÿWíæÿÈÿðTƒ<ÿoÿ÷7Á¤ÿÙæÿšýsþ·†º¸æˆÀô_¸ú?Jü
-LõwÉþ¹ÿCÿ'üçØ˜ôïéÿ@ÿðÄÆ¤ÿ¹üï©«Ñ¿„ý¦ç“þ=ý¬ÿHàù“þ=ýø¿$àÿˆIÿ.ùÏãûêðK ÿ96¶õ?ÿG…þ%<Õ€ü·˜˜ôï’ÿ¼Ó‹ÿ[ýlúO®þÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿžþú		凯¤7ÿG7,	¡¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þï˜ÿAþ„§pþGLLúŸÍÿ±Ÿÿßàÿ1îÿ¡Þ°ô_ºú?8ÿG‚©þžùôÈÿˆIÿžþô/ÿGlLúŸÍÿqøü¯Ñ¿„ß7ëï‹á¶Í  &ý{ú?8ÿQÏÿؘôï™ÿÿKþØ˜ôï™ÿÿ[ù±±­ÿ;æ 	O5 ÿ#&&ý;æÿ­þ?6Yúo¯Ïµ|¼`Pøùþ´ÕÑ–ø?$äÖ³zX}]-ä\Yõ/¶¯ªê!ÿ‰úû3¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þMS“ÿ aBÿ_½ò+šˆe²þyúÅ—~yws{ì3Þîÿ«=ý·©Æÿ-áå†f²þ«õ)Í?'_ÿõ0‚þ4è?46ýŸÓýOêÿ·o€è_Á”þ¿ú³ÚBÿÿ;«ÿÝúÞgHÞú_Ùnÿ:ë?¦ÕÜÿ©|æÿÒnþ¯¥þ
-LõŸmþ¯Ý¯?ù"RÑ1“þ]æÿÒnþõ?	øÿccÒ¿KþsbþOùϱ1éßeþ/ëÿøÿ4T(?4&ý»Ìÿ¥]þ3ù¯ðÿÆÆ¤—üç´ËfÿOBIÛú¿Çü_Úå?ãÿ•ðTƒ¼ýÿƒ_q¹PLúŸmþ¯9Ð?ùêâš cÐáêÿàüo	¦ú»ä?ÿôÐÿI ÿ96&ý{ú?пü±1é.ÿÇÁû_ê˜ÿÖð¡ßôÜâbÒ¿£ÿƒó¿5ðüIÿžþü_ðÄÆ¤—üçŸþüßÈŽmýßÑÿþ%<Õ€ü·˜˜ôï’ÿüÓÿÿ[ýlúO®þò%˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLú÷Ìÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽþò$898ÿ#&ýÏæÿØÏÿoü߯ý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ5ú—ðñÛãfý}1ܶ¹ĤÏüΔÀó?6&ý{ú?ðIÀÿ“þ=ó?ðK ÿ#6¶õGÿú—ðTò?bbÒ¿gþþo	ôÿ±ÉÒWŸkùxÁ ð<ÿGÑ-þ¹õ߬V_WË9BVý‹íß«ªºMÔ_Áäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7Mbý_B~ÿ_¿ö+šˆe²þyúÅ—~yws{ì3²úÿQÿm"ÿACIÿšÉú_¬Ö§4ÿœ·õ_íé¿.Xÿ×À“;66ýŸÓýOêÿ«Šù/	Yý=Bÿÿ‘«ÿÝúÞgHÞú_Ù6%ë?
-¦ÕÜÿ©\çÿ*ê¯ÀTÿÙæÿöç¿9ÿ[E*:& cÒ¿çüþ_	øÿccÒ¿cþs"ÿMùϱ1éßsþù_	ʍIÿnómÇù/ðÿÆÆ¤Ïügöÿ$”4 ¡±­ÿûÍÿUø%ìä¿õûÿ¿&ýÏ6ÿ×pþ÷;Qל ƒþWÿGÿC©þŽùÏôÈŽIÿŽþò5àÿˆIÿsù?ÞÿRÇü·†ý¦ç“þ=ý¬ÿHàù“þ=ýø¿$àÿˆIÿ~ùÏ©Ãÿ-üçØØÖÿýè_“ƒü·P˜ôï˜ÿÜâÿ–@ÿƒþ“«ÿƒü_	¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ¿gþû?Øÿ‰Iÿžù¼ÿI ÿ#6&ý{ú?èÿ%$”“þ=ýø?%°þ“þ=ó?Èÿ”P2ýÛú¿ãùßäÿH8prpþG(LúŸÍÿ±Ÿÿßàÿ1îÿ¡Þ°ô_ºú?8ÿG‚©þŽùôÈÿˆIÿžþô/ÿGlLúŸÍÿqøü¯Ñ¿„ß7ëï‹á¶Í  &ý{ú?8ÿQÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÿÀÿ-üØØÖÿó?п„'ù¡0éß3ÿÿ·úÿØdéÿº:×òñ‚Aáçû?¶¯*Ú’ó_$äÖ³zX}]-ä\Yõ/†úWuKþ‹„Éõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoòÿ5dõÿåÑ_ÑD\(“õÿËûóÐ/¾ôË»›ûÛcŸ‘ÕÿúoSMþ‹ÎŽÍdý/VëSšÎÛú¯öô_„þ4È?46ýŸÓýOêÿ«
-ÿŸ„¼þ„þÿ7"Wÿ»õÿ¼Ï.¼õ¿²mXÿ‘0­þãþÏÙ‹ÁùõOÅö×Ô_€©þ³Íÿµûõ'ÿYD*:& cÒ¿Ëü_³›ÿÃÿ/ÿlLúwÉn8ÿ[ùϱ1éßeþo·þÏù_Øþ‹Iÿ.ócÿ?,	¡øccÒ¿Kþs³Ëfÿ_þŸØØÖÿ=æÿš]þ3ùïžjpæþÿ±_q¹PLúŸmþ¯9Ð?ùÏêâš cÐáêÿ¨ð(0Õß%ÿùçþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥®Fÿ>ô›ž[@\Lú÷ô°þ#çlLúwó´ù¯ðÄÆ¤—üçf—ÿŒÿ[ùϱ±­ÿûù?*ô/áÀÉAþ[(LúwÉþéÿÀÿ-þ?6ý'WÿGƒÿC©þ³ù?:æ߉²MW5°˜ôïéÿ`ÿGû?±1éß1ÿƒó¿5ÿ“þ=ýôÿʍIÿžùø?%°þ“þ=ó?Èÿ”P2ýÛú¿cþù?œœÿ
-“þgóìçÿ7ø¿EŒû¨7,ý—®þÎÿ‘`ª¿gþýŸò?bcÒ¿§ÿýKÀÿ“þgó>ÿ9ÿ]ÃÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ÌÿÀÿ%ÿGlLú÷Ëÿ¨9ÿIù±±­ÿ;ú?п„'ù¡0éß3ÿÿ·úÿØdé¿>ûÈ—
-?ßÿ±ý}U4Ãü7þrë¿Y=¬¾®–?r.„¬úÛ?¯ªºÁÿ#arý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›†ü?
-YýÿËJúÿËg²þyúÅ—~yws{ì3Þîÿ«=ý·‰ó¿4ÐþÇf²þ«õ)Í?'_ÿ©Ãÿ§ýÇÆ¦ÿsºÿIýU²þ/azÿ?Œ‚þ:ž»È…’«ÿÝúÞgHÞú_Ùù¯¬ÿø3­þãþOå3ÿWŒóÃþ/õ÷ÇTÿÙæÿÚýúwïÿRÑ1“þ]æÿŠqþ¯aý_þÿؘôï’ÿüóùOþ›òŸccÒ¿Ëü_1Îÿ5¬ÿK¨P~hLúw™ÿ+Æù¿–ó_$àÿIÿ.ùÏãûjÉ”PÒ „ƶþï1ÿWŒó?%ù^légýPâÿý
-0é¶ù¿æ@ÿ-þ	uqÍ	1èÿìaÀAá¹þªÅÿ¡ÀT—üçÝþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥®Bÿ>ô›ž[@\Lú÷ô°þ#çlLú÷ôàÿ’€ÿ#6&ý»ä?ÿôàÿ–@þsllëÿŽþô/á©ä¿ÅĤ—üçþüßèÿccÐrÍÿ(ñ(0Õ6ÿGÇüï;Q¶éªÆ“þýø5°ÿ“þ=ó?xÿ“@þGlLú÷ôÐÿKH(?4&ý{ú?ðJ`ý76&ý{æÿ)¡dú74¶õGÿù?žjÀù11é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéšÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷Ìÿ@ÿðÄÆ¤ÿÙü‡Ïÿ
-ýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžþü_ðÄÆ¤ÏüüßÈÿˆmýßÑÿþ%¼°täý@þÇo€Iÿžùø¿%ÐÿÇ&KÿÍÙG¾¼`Pøùþr«ÿ¢é8ÿEBný7«‡Õ×ÕòGÎ…Uÿbû÷ªªîÿÔߟÉõß|^ßõ·7÷Ÿ¶ßÚòä7“ÕÿõošÄú¿„ÉýýâOh".”Éúÿåýyè_úåÝÍýí±ÏÈêÿGý·)ñþ/¡Dº¡™¬ÿÅj}JóÏy[ÿÕžþSס	È?66ýŸÓýOêÿ«’ù/	úÿºþ³ÞBÿÿ;«ÿÝúÞgHÞú_ÙÖäÿJ˜Vÿqÿ§ò™ÿ+wùÏõW`ªÿlóí~ýÉ‘ŠŽ	ÀÀ˜ôï2ÿWîòŸYÿ—€ÿ?6&ý»ä?—œÿ-„üçØ˜ôï2ÿWîæÿXÿ—P¡üИôï2ÿWîæÿ˜ÿ—€ÿ76&ý»ä?ïÿ©ãü'	%
- at hlëÿóånþüw	O5Èõÿ²ÿÿ{`Òÿló́þÉÖPל ƒþÏžíÿ(ð(0Õß%ÿy·ÿCÿ§üçØ˜ôïèÿhпü±1é.ÿÇÁû_ê*ô/áC¿é¹ÄŤOÿë?xþÇÆ¤Oÿþ/	ø?bcÒ¿KþóÎÿÑâÿ–@þsllëÿŽþô/á©ä¿ÅĤ—üçþ9ÿQýlúO®þ„ÿC©þ³ù?:æ߉²MW5°˜ôï™ÿÁþöbcÒ¿gþïÈÿˆIÿžþú		凯¤OÿþO	¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þïçÿ¨Èÿ‘ðTÎÿˆ‰Iÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß1ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžþü_ðÄÆ¤ÏüüßÈÿˆmýß1ÿýKxªù11éß3ÿÿ·úÿØäé¿9×òñ‚Aáyþ¢-Èÿ[ÿÍêaõuµü‘s!dÕ¿Øþ½ªª‡ùêïÏäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7M¢ÿ—0µÿ¿zù'4Êdýÿòþ<ô‹/ýòîæþöØgdõÿ£þÛT3ÿ%¡d04“õ¿X­Oiþ9oë¿ÚÓÿöè_òMÿçtÿ“úÿŠó?5Lèÿ¯®þ¼ÚBÿÿ;«ÿÝúÞgHÞú_ÙÖ-ë?
-¦ÕÜÿ©\çÿ:ê¯ÀTÿÙæÿöç¿ñÿ«HEÇ``Lú÷œÿcý_ïÿ±1éß1ÿ9‘ÿ.üçØ˜ôï8ÿײþ/¡Bù¡1éßqþ¯cþWþߨ˜ôï™ÿÌü¯„’ 4¶õÇügò_%<Õ ÛÿËþÿoIÿ³Íÿ5‡ùÏø$ÔÅ5'@Æ ÿÂÕÿÑàÿP`ª¿gþ3ýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{æ?³þ#çlLú÷ôàÿ’€ÿ#6&ý;æ?wø¿%ÿÛú¿£ÿýKxªùo11éß1ÿ¹Åÿ-þ?6ý'OÿG]àÿP`ªÿlþŽùßw¢lÓU$,&ý{ú?Øÿ‘ÀþOlLú÷ÌÿàýOù±1éß3ÿƒþ_BBù¡1éßÓÿÿS뿱1éß3ÿƒüO	%Ó¿¡±­ÿ;ú?Èÿ‘ðTÎÿˆ‰Iÿ³ù?öóÿüß"Æý?ÔƒþK×üÎÿ‘`ª¿gþýŸò?bcÒ¿§ÿýKÀÿ“þgó>ÿú—ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýKxªù11éß3ÿÿ·úÿØäé¿;×òñ‚Aáyþ¢-8ÿEBný7«‡Õ×ÕòGÎ…Uÿmዪª‡û?õ÷grý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›¦fý_ÂÄþ¿Úûšˆe²þyúÅ—~yws{ì3Þîÿ«=ý·©fý_Â5Ê
-Ídý/VëSšN¾þëaI ýàø÷ØØôN÷?©ÿ¯*æ¿$Lèÿ«êÏjýÿï@®þwëÿyŸ1\ ç¯ÿU[ý—mS²þ£`ZýÇýŸÊgþ¯Úå?WÔ_©þ³Íÿµûõ'ÿQD*:& cÒ¿Ëü_5Îÿ‘ÿ ÿlLúwÉ®˜ÿBþslLúw™ÿ«vóøÿ$°þ“þ]æÿªÝüù¯ðÿÆÆ¤—üçñý¿.ðÿI(i Bc[ÿ÷˜ÿ«vóœÿ&á©yþß
-ÿïo‚Iÿ³Íÿ5ú'ÿCC]\sD`ú/\óŸ;ü
-Lõ÷ÌfýGùϱ1éß3ÿýKÀÿ“þçò¼xÿû™ÿŒþ%|è7=·€¸˜ôï™ÿŒÿSÏÿؘôï™ÿÌü‡ü±1éß3ÿÿ§òŸcc[ÿwÌFÿžj@þ[LLú÷ÌfþKýlúO®ù	ÿ‡SýgótÌÿ¾e›®j, a1éß3ÿÿ¯öbcÒ¿gþþ	äÄÆ¤Ïüú		凯¤Ïüæ%°þ“þ=ó?ðJ(™þ
-mýß/ÿ#‘ÿ#ᩜÿ“þgóìçÿ7þO
-ãþê
-‹Aÿ¥«ÿƒó$˜êï’ÿñsÿ‡þOù±1éß3ÿƒõ_	ø?bcÒÿlþÃçÍó_ÂÇo›õ÷ÅpÛæN“þ=ó?ðJàù“þ=ó?Xÿ•€ÿ#6&ý»äT»üüßÈÿˆmýß1ÿÿ·„§ÿ“þ=ó?xþK ÿM–þ««s-/~¶ÿ£è¶ú/ÚmK€ÿC at ný7«‡Õ×ÕòGÎ…WÿíŸWUÝâÿ‘0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þMCþ‹†‰ýÿÓ%ýÿe3Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛ”ðÿH ýÍdý/VëSšN¾þë‚óß5°ÿ›þÏéþ'õÿUÉúŸ„éý¹åϲ¤ÿ¿hrõ¿[ÿÏûŒáÉ[ÿ+Û†ü_	Óê?îÿT.ócýS±ý5õ`ªÿlóí~ýÉ‘ŠŽ	ÀÀ˜ôï1ÿ7ê¿k9ÿOïÿ±1éß#ÿùéùÏú¿òŸccÒ¿ÇüߨÿºÀÿ§¡Bù¡1éßcþo×ÿìÿiÀÿ“þ=òŸwú¯æÿ%”4 ¡±­ÿ;ÌÿúoºDþ»„§Lõÿ²ÿÙ˜ô?Ûü_s ò?4ÔÅ5'@Æ ÿÂÕÿQáÿP`ª¿GþóÓþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥®Fÿ>ô›ž[@\Lú÷ô°þ#çlLúwó´ù¯ðÄÆ¤üçÝûêðK ÿ96¶õ?ÿG…þ%ürrLûü·Ǥüç'ÿþo	ôÿ±1è?¹ú?ü
-LõŸÍÿÑ1ÿûN”mºª±€„ŤOÿû?Øÿ‰IÿŽùœÿ­üØ˜ôïéÿ ÿ—P~hLú÷ÌÿÀÿ)õߨ˜ôï™ÿAþ§„’éßÐØÖÿó?Èÿ‘ðËÉ‘ýçü˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tõpþSý=ó?èÿ$ÿ“þ=ýè_þØ˜ô?›ÿãðù_£	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éß3ÿÿ—ü±1éß/ÿ£æü'
-äÄÆ¶þïèÿ@ÿ^X:ò ÿãÂ1éß3ÿÿ·úÿØäé¿:×òñ‚Aáçû?Ú­þ‹v˜ÿÀÿáOný7«‡Õ×ÕòGÎ…WÿíŸWUÝàÿ‘0¹þ›Ïë»þöæñþÓö[[žüfòúÿ¡þMCþŸcÿ¿-ýÿ%3Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛÄù_8þ96“õ¿X­Oiþ9ùúOþ?
-
-úMÿçtÿ“úÿªdý_‚½ÿá.r¡äê·þŸ÷Õ’·þW·ÖL«ÿ¸ÿsöbp~ýS‘È–`ªÿlóí~ý»Šùo	©è˜ ŒIÿ.óí8ÿÇùŸðÿÇÆ¤—üçÝóÿŸòŸccÒ¿Ëü_;Îÿ5ìÿK`ÿ/6&ý»Ìÿµ»ù?öÿ%àÿIÿ.ùÏíîüoòŸ%”4 ¡±­ÿ{Ìÿµ»ó¿ñÿHxmK?ë‡z4 s¹PLúŸmþ¯9Ð?ù?êâš cÐáêÿ`þK‚©þ.ùÏ?ýôÈŽIÿžþô/ÿGlLúŸËÿqðþÇù*>ô›ž[@\Lú÷ô°þ#çlLúwô´ø¿$àÿˆIÿ.ùÏ?ýø¿%ÿÛú¿£ÿýKxæä˜öùoIÿ.ùÏ?ýø¿%ÐÿÇÆ ÿäêÿhñ(0Õ6ÿGÇüï;Q¶éªÆ“þ=ýìÿH`ÿ'6&ý{æðþ'üØ˜ôïèÿhéÿ%$”“þ=ó?ðJ`ý76&ý{æÿ)¡dú74¶õGÿù?ž99¦ýÀùIÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿gþç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýKxÍÒ‘õùIÿžùø¿%ÐÿÇ&Kÿg'~¼dPøÙþm/PTESrþ‹„ÌúoV«¯«å
 ¬!«þÅöÏ«Á BýL­ÿæóú®¿½y¼ÿ´ýÒ–§¿˜¼þ¨S׬ÿK0÷ÿ#¬"\*SõÿËúóÐ/¾ôË»›ûÛ£Ÿñvÿ_íé¿­Öÿ%0ÿ›©ú_¬Ö'5ÿœ|ý§®dýO+w±1éÿ¬îRÿ_VÌI0÷ÿW#ÜE.”Lýï–ÿ3?c¸RòÖÿʦ!ÿW¤úÛ?ÕÙ—A~ý·?vÔ_¥þgŽÿå͏õOmÍû¿„TtL Æ¢ÿ3ÇÿòÞÿGýwMÇú¿üÿ±±èÿÌñ¿¼üç§ç?þ	ä?ÇÆ¢ÿ3Çÿ&<ÿS‡ÿ_C…òCcÑÿ™ãyþßQÿmW0ÿ/ÿol,ú?süo‚þ»Tpþ“„’ 4¦õÿóÆÿòöÿGý7m"ÿ]Âk[úÙ?°ÿ±XôæøßÏÿæ@ÿþ	uqÍ	™®ÿÂ×ÿÑàÿP`©ÿ|þú`ÿ‡þOùϱ±èßÕÿþ%àÿˆEÿ³ù?ÞÿÒð×Ñ¿€ý¦ç‹þ=ýœÿ¥çl,úwõàÿ’€ÿ#6ýÏçÿ8xÿOþo	ìÜÆÆ´þïéÿ@ÿöœä¿âÿùüûýÓvø¿%ÐÿÇfºþσžëÿòñøc©ÿ|þŽùßw¢lÓU$,ý»ú?Øÿ‘ÀþOl,úwÍÿàýOù±±èß5ÿƒþ_ùÿ±±èßÕÿÿS뿱±èß5ÿƒüO	%Ó¿¡1­ÿ{ú?Èÿ‘°ïäàüXXô?Ÿÿc?ÿ¿Áÿ-bÜÿC½a™®ÿÒ7ÿƒó$XêïšÿAÿ'üØXôïêÿ@ÿðÄÆ¢ÿùü‡ÏÿýKøøíq³þ¾îÛÜ	bÑ¿«ÿƒó%ðüEÿ®þü_ðÄÆ¢×üüßعiýßÓÿþ%¼féÈÿ»È¥bÑ¿kþþo	ôÿ±ÉÒٝíùxΠð³ýE»ÕÑœÿ"!·þ›ÕÃêëjù#çBÈ«=øꦣþ
-&×óy}×ßÞ<ÞÚ~kË“ßLVÿ?Ö¿ièÿ5Øûÿjø&âB™¬ÿ_柇~ñ¥_ÞÝÜßûŒ·ûÿjOÿÛ×öÿ% ÜØLÖÿbµ>¥ùçäë?uóŸxýMÿçtÿ“úÿªdýO‚¹ÿ¯F¸‹\(¹úßm ä}Æp¥ä­ÿ•-ù¿¦ÕÜ ªÎ½ò럊º¤þ
-Lõ?s ðíþ¿Ý¯ÇùRÑ1“þÏ Ì{ÿôßµøÿ5àÿIÿg ¾©ÿò ÿëïÿÈŽIÿg æ?ÿë¢eÿ_+w±1éÿÌÀ·õŸöôßvähÀÿ“þÏ Ì×—8ÿICIÛúÿy€oé¿<xÿoº
-ÿ„×¶ô³~¨ðÿ^2&ýŸ9 øöó¿9ÐGþ³„º¸æˆÀô_xú?ó_LõŸÍÿQìÿÐÿi ÿ96&ý;ú?Zô/ÿGlLúŸËÿqðþ—º„þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLúŸÍÿqðþŸÈÔ@rkllëÿŽþô/ᙓcâø?.“þgóì÷ÿM×âÿ–@ÿƒþ“kþG…ÿC©þ³ù?:æ߉²MW5°˜ôï™ÿÁþöbcÒ¿gþïÈÿˆIÿžþú		凯¤OÿþO	¬ÿÆÆ¤¿üí?Ñ¿‚’éßÐØÖÿýäÿHxîä˜ôç\4&ýÏæÿØÏÿoð‹÷ÿPoXú/]ýœÿ#ÁTÏüú?	äÄÆ¤Ïüô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽþô/á5KGÞä\2&ý{æàÿ–@ÿ›,ý§î\ËÇ…ŸíÿØöÛGJ[ÿ!!·þ›ÕÃêëjù#çBȪ±ý󪪇ügêïÏäúo>¯ïúÛ›ÇûOÛomyò›Éëÿ‡ú7
-óß,ýõïBq¡LÖÿ/ïÏC¿øÒ/ïnîo}ÆÛýµ§ÿ6±ÿ¯¡A¹¡™¬ÿÅj}JóÏÉ×]0ÿ©ü‡ØØôN÷?©ÿ¯JÖÿ$Lïÿ‡±Ï?w§¿Óÿ_,¹úß­ÿç}Æpä­ÿ•mݰþ£`ZýÇýŸÊeþo¬*†ó©¿?¦úÏ6ÿ×îןù?©è˜ ŒIÿó£þ»–ó?4àÿIÿùÏ?Ÿÿ‰üw	ä?ÇÆ¤ù¿QÿuѲþ/ä¶Ø˜ôï1ÿ7ê¿í:æ%àÿIÿùÏ»÷ÎÿQÒ „ƶþï0ÿ7ê¿é*ò_%¼ØÒÏü¡ªðÿ^:&ýÏ6ÿ×èŸù?
-uqÍ	1è¿põÔø?˜êï‘ÿüäÿ ÿ“@þslLú÷ô 	ø?bcÒÿ\þƒ÷¿Ô%ô/áC¿é¹ÄŤGÿGÃúžÿ±1éßÓÿÿKþØ˜ôï‘ÿüäÿÀÿ-üçØØÖÿýè_ÂS
-È‹‰IÿùÏOþüßèÿccÐrõtø?˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLú÷Ìÿ ÿ—@þwlLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽþò
 $<Õ€ó?bbÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒÕÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôï™ÿÁùxþÇÆ¤Oÿþ/	ø?bcÒ¿gþþo	äÄÆ¶þïèÿ@ÿ^X:2 ÿãò1éß3ÿÿ·úÿØäé¿9×òñ‚Aágû?Šn«ÿ¢-Zü
-rë¿Y=¬¾®–?r.„¼úoÿ¼ªê†ü	“ë¿ù¼¾ëooï?m¿µåÉo&«ÿëß4äÿk°ôÿÅýÿ¥3Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛ”˜ÿ’СÜÐLÖÿbµ>¥ùçäë?uùO8þ=66ýŸÓýOêÿ«ÿŸ„éýÿÕ–?¯®èÿ/š\ýïÖÿó>c¸@òÖÿʶ)YÿQ0­þãþOå2ÿ7Ö?uEý˜ê?Ûü_»_Îÿ‘ŠŽ	ÀÀ˜ôï1ÿ7ê¿kñÿjÀÿ“þ=òŸŸžÿ¬ÿK ÿ96&ý{Ìÿú¯æÿ5°þ“þ=æÿFý·ìÿ‰Àÿ“þ=òŸwïÿÛ¢%
- at hlëÿó£þ›®"ÿC‹-ýÌ®ðÿ^<&ýÏ6ÿ×èŸù
-uqÍ	1è¿põø?˜êï‘ÿüsÿ‡þOùϱ1éßÑÿÑ¢	ø?bcÒÿ\þƒ÷¿Ô%ô/áC¿é¹ÄŤOÿë?xþÇÆ¤Oÿþ/	ø?bcÒ¿GþóîýŸó¿EÿÛú¿£ÿýKxªùo11éß#ÿù§þ[üßèÿccÐrõ$ü
-LõŸÍÿÑ1ÿûN”mºª±€„ŤÏüö$°ÿ“þ=ó?xÿ“@þGlLú÷ôÐÿKH(?4&ý{ú?ðJ`ý76&ý{æÿ)¡dú74¶õ?ÿG"ÿGÂS
-8ÿ#&&ýÏæÿØÏÿoð‹÷ÿPoXú/]ýœÿ#ÁTÇüú?
-äÄÆ¤Oÿú—€ÿ#6&ýÏæÿ8|þ×è_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽùè_ÂKGîä\<&ý{æàÿ–@ÿ›,ý_ŸmùxÁ ð³ýåöÏ«¢-Zü
-rë¿Y=¬¾®–?r.„¬úÛ¿WUõÿLýý™\ÿÍçõ]{óxÿiû­-O~3yýÿPÿ¦aþ[C^ÛuìW4Êdýÿòþ<ô‹/ýòîæþöØgäõÿƒþÛT3ÿ%¡lnd&ë±ZŸÒüsÞÖµ§ÿí?п^ÿccÓÿ9Ýÿ¤þ¿*Yÿ“Õÿ_ÐÿÿFäê·þŸ÷Ãrþúß ÿ²mXÿ‘0­þãþOå2ÿ7ÖŸüg¦úÏ6ÿ×î׿KÌKHEÇ``Lú÷˜ÿõOþ³
-üÿ±1éß#ÿùéùÏþŸòŸccÒ¿Çü_ِÿ,¤Bù¡1éßcþoÔ?ùÏ*ðÿÆÆ¤üçÝû?ùÏ"J€ÐØÖÿæÿFý“ÿ¬â`'ÿôþÿ±_q¹PLúŸmþ¯9ÐGþ„º¸æˆÀô_¸ú?È–`ª¿GþóÓþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ‘ÿ¬âC¿é¹ÄŤÿG½óàÿ”Àó?6&ý»ø?êÿƒù	ø?bcÒ¿GþóîýŸügä?ÇÆ¶þïçÿ ÿYÁ“ƒü·P˜ôï‘ÿ<öÿM×¢	ôÿ±1è?¹ú?jü
-LõŸÍÿÑ1ÿûN”mºª±€„ŤOÿþ_	ìÿÄÆ¤Ïüæ%ÿ“þ=ó?èÿ%$”“þÝò?ºaIý`ý76&ý{æàÿ”P2ýÛú¿cþù?œœÿ
-“þgóìçÿ7]Gþ§„qÿõ†Å ÿ³žíÿàü	¦ú{æÐÿI ÿ#6&ý{ú?пü±1é6ÿÇáóŸóß5|üö¸Y_·mî1éßÓÿÁü¿žÿ±1éßóüü_ðÄÆ¤ÏüüßÈÿˆmýß1ÿýK8prÿ
-“þ]ò?~ú?ðK ÿM–þ«³-/~¶ÿ£h·ú/Úaþÿ‡?¹õ߬V_WË9B^ý‡ü§ªnðÿH˜\ÿÍçõ]{óxÿiû­-O~3YýÿXÿ¦!ÿOC^ÿÿÊýÿ%3Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛÄù_Pnl&ë±ZŸÒüsòõŸ:üô›þÏéþ'õÿUÁú¿{ÿ?Â]äBÉÕÿný?ï3†+%oý¯lëÄú‚iõ÷*—ù¿±þ©Hä?K0Õ¶ù¿v¿þ]Åü·„TtL Ƥù¿Qÿ]Û’ÿ,ÿlLú÷È~zþóþ/üçØ˜ôï1ÿ7ê¿.öÿ%°r“þ=æÿFý·øEàÿIÿùÏ»÷ÿí úWPÒ „ƶþï0ÿ7ê¿é*ü?^ÛÒÏú¡
-ÀÜD.“þg›ÿkôOþ†º¸æˆÀô_¸ú?˜ÿ’`ª¿GþóÓþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿqþƒŠý¦ç“þ=ý¬ÿHàù“þý-þ/	ø?bcÒ¿GþóOÿG‹ÿ[ùϱ±­ÿûù?Jô/ᙓcÚä¿]4&ý{ä??ù?ðK ÿAÿÉÕÿÑàÿP`ªÿlþŽùßw¢lÓU$,&ý{ú?Øÿ‘ÀþOlLúwÌÿ ÿ[ù±1éßÓÿAÿ/!¡üИôï™ÿÿS뿱1éß3ÿƒüO	%Ó¿¡±­ÿ;æÿ#ᙓcÚœÿqјô?›ÿc?ÿ¿Áÿ-bÜÿC½a1èÿìÃÀ…gû?8ÿG‚©þžùôÈÿˆIÿžþô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ÌÿÀÿ%ÿGlLúwÌÿàü'
-äÄÆ¶þïèÿ@ÿ^³tdý@þÇEcÒ¿gþþo	ôÿ±ÉÒYŸkùxÁ ð<ÿGÑœÿ"!·þ›ÕÃêëjù#çBÈ«ÿöÏ«ªòŸ©¿?“ë¿ù¼¾ëooï?m¿µåÉo&¯ÿêß4Ìk0÷ÿÛ‚Ñÿ_.“õÿËûóÐ/¾ôË»›ûÛcŸñvÿ_íé¿Mìÿk`r#6“õ¿X­Oiþ9ùúOóŸÈˆMÿçtÿ“úÿªdýO‚¹ÿ¯G¸‹\(¹úß­ÿç}Æp¥ä­ÿ•mMþ¯„iõ÷*×ù¿–ú+0Õ¶ù¿ýùoòŸU¤¢c00&ý{Îÿáÿ—€ÿ?6&ý{æ?óþ/üçØ˜ôï8ÿÇù_Øÿ‹IÿžùÏìÿKÀÿ
 “þ=óŸ9ÿIBIÛú¿ãüþ	¯mégþP×ø/“þg›ÿkÈ~'êâš cÐáêÿ`þK‚©þžùÏôÈŽIÿžþô/ÿGlLúŸËÿqðþ—º„þ%|è7=·€¸˜ôï™ÿÌúžÿ±1éßÓÿÿKþØ˜ôï™ÿŒÿ[ùϱ±­ÿ;ú?п„NŽi?ÿvÁ˜ôï™ÿŒÿ[ýlúO®þÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿžùôÿÈÿŽIÿžþüŸXÿIÿžùäJ(™þ
-mýßÑÿAþ„NŽ)?pþÇEcÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒÕÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôï™ÿÁùxþÇÆ¤Oÿþ/	ø?bcÒ¿gþþo	äÄÆ¶þïèÿ@ÿ^³tdþ@þÇcÒ¿gþþo	ôÿ±ÉÓÿõ¹–
-ÏómAþ‡„ÜúoV«¯«åœ!¯þÛ?¯ªz˜ÿ£þþL®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¼þ¨Ó$æ?$Øûÿ«‚þÿr™¬ÿ_ÞŸ‡~ñ¥_ÞÝÜßûŒ·ûÿjOÿmJìÿI`þ;6“õ¿X­Oiþ9ùú–”п^ÿccÓÿ9Ýÿ¤þ¿*É“`îÿ¯F¸‹\(¹úß­ÿç}Æp¥ä­ÿ•mS±þ£`ZýÇýŸÊsþ¯NÔ_©þ³ÍÿíÏãÿW‘ŠŽ	ÀÀ˜ôï8ÿ‡ÿOþÿؘôï™ÿÌû¿òŸccÒ¿gþ3ûÿ*”“þ=çÿØÿ—€ÿ76&ýûå?×ó¿J€ÐØÖÿýæÿþ	¯mégýp…ÿ÷’1é¶ù¿æ0ÿ™ù?	uqÍ	1è¿põ0ÿ%ÁTÇügú?
-ä?ÇÆ¤Oÿú—€ÿ#6&ýÏåÿ8xÿK]þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÆÿ-ÉíØØÖÿóŸÑ¿„gNމ?àÿ¸dLú÷ÌÆÿ-þ?6ý'WÿGÿC©þ³ù?:æ߉²MW5°˜ôïéÿ`ÿGû?±1éß3ÿƒ÷?	äÄÆ¤Oÿý¿òÿccÒ¿›ÿ£+Èÿ×ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽùäÿHxîä˜ôç\4&ýÏæÿØÏÿoð‹÷ÿPoXú/]ýœÿ#ÁTÏüú?	äÄÆ¤Oÿú—€ÿ#6&ýÏæÿ8|þ×è_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ÌÿÀÿ%ÿGlLú÷ÌÿÀÿ-ÛØØÖÿó?п„×,y?ÿqɘôï˜ÿAþ·úÿØdé?]kùxÁ ð³ýÛ^ ¨Šv{KÀÿ! ·þ›ÕÃêëjù#çBȪ±ýóªª[ü?&×óy}×ßÞ<ÞÚ~kË“ßL^ÿ?Ô¿iÈÑ`éÿëÿšˆe²þyúÅ—~yws{ì3Þîÿ«=ý·‰ó?40þ›Éú_¬Ö§4ÿœ|ýoÿÿGù±±éÿœîRÿ_•¬ÿK˜Þÿ×[þ¬kúÿ‹&Wÿ»õÿ¼Ï.¼õ¿²­[ÖL«ÿ¸ÿS¹ÌÿõOŐÿGýý1Õ¶ù¿v¿þœÿ-"€1éßcþoÔ×’ÿ¨ÿlLú÷È~zþ“ÿ&üçØ˜ôï1ÿ7ê¿.ZÖÿ%T(?4&ý{Ìÿúo;ÎÑ€ÿ76&ý{ä?ïÞÿùJ€ÐØÖÿæÿFý7]Eþ‡„[ú™?
 Ô5þßKǤÿÙæÿšýsþ·†º¸ÆƒþWÿGƒÿC©þùÏ?÷èÿ4ÿ“þ=ýè_þØ˜ô?—ÿãàý/u	ýKøÐoznq1éßÑÿѰþ#çlLú÷ôàÿ’€ÿ#6&ý{ä??ù?ðK ÿ96¶õGÿú—ðTòßbbÒ¿Gþó“ÿÿ·úÿØôŸ<ýCþ#þLõŸÍÿÑ1ÿûN”mºª±€„ŤOÿû?Øÿ‰Iÿžù¼ÿI ÿ#6&ý{æÐÿK ÿ;6&ý{ú?ðJ`ý76&ý{æÿ)¡dú74¶õGÿù?žjÀù11é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéšÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿§ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwô 	/,™?ÿqù˜ôï™ÿÿ[ýl²ôUŸkùxÁ ðóýÛ?¯Š¶$ÿCBný7«‡Õ×ÕòGÎ…Uÿbû÷ªªîÿÔߟÉõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoššõ	™myäW4Êdýÿòþ<ô‹/ýòîæþöØgdõÿ£þÛTóþ/óŸc3Yÿ‹Õú”æŸó¶þ«=ý×Ã-ý ÿ!66ýŸÓýOêÿ«Šù/	Yý9Bÿÿ‘«ÿÝúÞgHÞú_Ù6‰õÓê?îÿT>óõ.ÿ™õ?	¦úÏ6ÿ×î×ÿ¿ˆTtL Ƥ—ù¿zœÿÃÿ§ÿlLúwÉþùü'ÿ]ùϱ1éßeþ¯ÞÍÿ‘ÿ(í¿Ø˜ôï2ÿ7öÿÃ’ú€ÿ76&ý»ä?ú¯æ%àÿ‰mýßcþ¯çûÿžjp®ÿ·|ýWÜD.“þg›ÿkôÏù/êâš cÐáêÿ¨ð(0Õß%ÿùçþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥íè_Á‡~Ósˆ‹IÿžþÖ$ðüIÿnþ¶ãü_
-ø?bcÒ¿Kþs½ËÆÿ-üçØØÖÿýüú—pàä ÿ-&ý»ä?ÿôàÿ–@ÿƒþ“«ÿ£Áÿ¡ÀTÿÙüó¿ïDÙ¦«HXLú÷ô°ÿ#ýŸØ˜ôï˜ÿAþ¿ò?bcÒ¿§ÿƒþ_ùß±1éß3ÿÿ§ÖccÒ¿gþùŸJ¦Cc[ÿwÌÿ ÿG“ƒó?BaÒÿlþýüÿÿ·ˆqÿ
 õ†Å ÿÒÕÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçþ%|üö¸Y_·mî1éßÓÿÁùxþÇÆ¤Ïüü_ðÄÆ¤¿üšóŸ4ÿÛú¿£ÿýK8prÿ
-“þ=ó?ðK ÿM–þ¯ÏŽüxÁ ðóýÛ¿WmYâÿP[ÿÍêaõuµü‘s!dÕ¿ê_ÕCþ3õ÷grý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›†ùo
-YýuôW4Êdýÿòþ<ô‹/ýòîæþöØgdõÿ£þÛT3ÿ%¡d <4“õ¿X­Oiþ9oë¿ÚÓ]0ÿ©¡Aþ¡±éÿœîRÿ_U¬ÿIÈëÿGèÿ#rõ¿[ÿÏûŒáÉ[ÿ+Û†õ	Óê?îÿT>ó
-ùÏBLõŸmþ¯Ý¯—˜ÿ–ŠŽ	ÀÀ˜ôï2ÿאÿ,ÿlLúwÉnÈBþslLúw™ÿkÈR¡üИôï2ÿאÿ,ÿolLúwÉnÈRÒ „ƶþï1ÿאÿ,ä`'ÿôþÿ±_q¹PLúŸmþ¯9ÐGþ„º¸æˆÀô_¸ú?È–`ª¿KþsCþ³òŸccÒ¿§ÿýKÀÿ“þçò¼ÿ‘ÿ¬âC¿é¹ÄŤOÿë?xþÇÆ¤7ÿùÏ*ðÄÆ¤—üç†üg!ä?ÇÆ¶þïèÿ@ÿœ俅¤—üç†üg!ôÿ±1èÿì0èAáÙþÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿŽþŽþ_ñÿ±1éß3ÿÿ§ÖccÒ¿gþùŸJ¦Cc[ÿwôÿ#áÀÉÁù¡0é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéêÿàü	¦ú{æÐÿI ÿ#6&ý{ú?пü±1é6ÿÇáóŸóß5|üö¸Y_·mî1éß3ÿƒó%ðüIÿžþü_ðÄÆ¤ÏüüßÈÿˆmýßÑÿþ%89Èÿ…Iÿžùø¿%ÐÿÇ&Oÿõ¹–
-ÏómYáÿP[ÿÍêaõuµü‘s!dÕ¿ê_ÕCþ3õ÷grý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›†ùo
-YýMÿÿ»1Yÿ¿¼?ýâK¿¼»¹¿=öYýÿ¨ÿ6ÕÌI(éÿC3Yÿ‹Õú”æŸó¶þ«=ý×óŸä›þÏéþ'õÿUÅúŸ„¼þ„þÿ7"Wÿ»õÿ¼Ï.¼õ¿²mXÿ‘0­þãþOEþóåcªÿlóûóß©KÌKHEÇ``Lú'ÿùâÁÿ“þɾxÈŽIÿä?_<ʍIÿä?_<øccÒ?ùÏOIÛú?ùÏ—ÎÁNþéýÿc¿â&r¡˜ô?Ûü_s8ÿGþ„º¸æˆÀô_ÿ|ù˜êOþóÅCþslLú'ÿùâÁÿ“þçò¼ÿ‘ÿ¬âC¿é¹ÄŤòŸ/žÿ±1éŸüç‹ÿGlLú'ÿùâ!ÿ96¶õòŸ/§ÿ“þɾxèÿccÐrõtø?˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLú÷Ìÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽþò$898ÿ#&ýÏæÿØÏÿoü߯ý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿœÿ®áã·ÇÍúûb¸ms'ˆIÿžùœÿ(çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽþô/áÀÉAþG(Lú÷ÌÿÀÿ-þ?6Yúo«s-/~¾ÿ£Úê¿h‡þÿ‡?¹õ߬V_WË9BVý‹áþ_ÕmAýL®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¬þ¬ÓàÿѐÕÿ ‰¸P&ëÿ—÷ç¡_|é—w7÷·Ç>#«ÿõߦÄþŸ„é†f²þ«õ)Í?çmýW{úO]‡þ%ÿ›þÏéþ'õÿUÉü·„	ý]ÿ¹¥ÿ¿|rõ¿[ÿÏûŒáÉ[ÿ+[æ¿4L«ÿ¸ÿsöbp~ýS‘Zê¯ÀTÿÙæÿÚýúwý¿„TtL Ƥ—ù¿jœÿkéÿ%àÿIÿ.ùÏ»ç?çi ÿ96&ý»ÌÿU»ù?òŸ$T(?4&ý»Ìÿ
-úo9ÿOþߨ˜ôï’ÿ<¾ÿ'ò4”4 ¡±­ÿ{ÌÿUãüOÅü„§dúë½?á&r¡˜ô?Ûü_s ÿ–ó%ÔÅ5'@Æ ÿÂÕÿQãÿP`ª¿KþóOÿ
 ýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý;ú?Ö$ðüIÿžþü_ðÄÆ¤—üçŸþüßÈŽmýßÑÿþ%<Õ€ü·˜˜ôï’ÿüÓÿÿ[ýlúO®þÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿžùôÿÈÿŽIÿžþüŸXÿIÿžùäJ(™þ
-mýßÑÿAþ„§pþGLLúŸÍÿ±Ÿÿßàÿ1îÿ¡Þ°ô_ºú?8ÿG‚©þžùôÈÿˆIÿžþô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ó?8ÿQÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÿÀÿ-üØØÖÿýè_ÂS
-Èÿˆ‰Iÿžùø¿%ÐÿÇ&Oÿgùò‚Aáyþ¢Ýþþ¹õ߬V_WË9BVý‹íß«ªzȦþþL®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¬þ¬Ó0ÿ­aZÿ_Òÿÿ&LÖÿ/ïÏC¿øÒ/ïnîo}ÆÛýµ§ÿ6±ÿ¯õ¿ØLÖÿbµ>¥ùçäë?uÌj ÿ!66ýŸÓýOêÿ«’õ?	úÿ²ü³ÜBÿÿ;«ÿÝúÞgHÞú_ÙÖ‰õÓê?îÿTœÿ}ù˜ê?Ûüßþüwê*ú	©è˜ ŒIÿœÿ}ñàÿIÿŽùÏó?ÈŽIÿœÿ}ñT(?4&ýsþ÷Ńÿ76&ý{æ?ãÿ“PÒ „ƶþÏùß—ÎS
-2ý¿åÞŸp¹PLúŸmþ¯9œÿÃÿ+¡.®9"0ýŸ=8(<ÛÿQáÿP`ª¿gþ3ýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý;ú?Zü_ðÄÆ¤Çüçÿ·ò_bc[ÿ÷ó”è_ÂS
-È‹‰IÿžùÏø¿%ÐÿÇÆ ÿÄùß—©þ³ù?:æ߉²MW5°˜ôÏùßû?±1éß1ÿ#ñþ'üØ˜ôÏùßùß±1éŸó¿/ÖccÒ¿gþùŸJ¦Cc[ÿçüïK穜ÿ“þgóìçÿ7ø¿EŒû¨7,ý—®þÎÿ‘`ª¿gþýŸò?bcÒ¿§ÿýKÀÿ“þgó>ÿú—ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ó?ðIÀÿ“þó?8ÿIù±±­ÿ;ú
 ?п„§ÿ“þ=ó?ðK ÿM–þ«ú\ËÇ…Ÿíÿ(Ú­þ‹¶Àÿ!!·þ›ÕÃêëjù#çBÈ«ÿöÏ«ªnÈ‘0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þMCþ¿†iýÿ¿ÿPÒÿ_4“õÿËûóÐ/¾ôË»›ûÛcŸñvÿ_íé¿M‰ù/	´ÿ±™¬ÿÅj}JóÏÉ×ê:òŸ$ð䎍Mÿçtÿ“úÿªÄÿ'azÿ?Ì€þ:ž»È…’«ÿÝúÞgHÞú_ÙÖ-ë?
-¦ÕÜÿ©\æÿÆú§"uÔ_©þ³Íÿµûõ'ÿQD*:& cÒ¿Çüߨÿ®%ÿAþÿؘôï‘ÿüôüçý_ùϱ1éßcþoÔ]àÿÓP¡üИôï1ÿ7ê¿íÈÕ€ÿ76&ý{ä?ïÞÿSÇü¿„’ 4¶õ‡ù¿QÿMWáÿ‘ðbK?ÿöÿ/“þg›ÿkôOþ‡†º¸æˆÀô_¸ú?˜ÿ’`ª¿GþóÏýú?
-ä?ÇÆ¤Oÿú—€ÿ#6&ýÏåÿ8xÿK]Bÿ>ô›ž[@\Lúwôpþ·žÿ±1éßÓÿÿKþØ˜ôï‘ÿüäÿÀÿ-üçØØÖÿýè_Â/'ÇÄð\6&ý{ä??ù?ðK ÿAÿÉÓÿQø?˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLú÷Ìÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿŽþò$ü»“#÷Îÿø0é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéšÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿§ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwô 	/,~ÀÿqÙ˜ôï™ÿÿ[ýl²ôߝmùxÁ ð³ýeÚê¿h··ürë¿Y=¬¾®–?r.„¬úÛ¿WUuKþ‹„Éõß|^ßõ·7÷Ÿ¶ßÚòä7“×ÿõoòÿ5Lhû¯^ùMÄ…2Yÿ¿¼?ýâK¿¼»¹¿=öyýÿ ÿ6%ò_$”l †f²þ«õ)Í?çmýW{úO]‡þ%4È?46ýŸÓýOêÿ«ÿŸ„)ýÿÕŸW[èÿrõ¿[ÿÏûŒáÉ[ÿ+Ûšù/	Óê?îÿT.ócýS1¼ÿQLõŸmþ¯Ý¯—ðÿJHEÇ``Lú÷˜ÿõßµ-ùOXþ‹IÿùÏOÏüÿÈŽIÿó£þë¢%ÿIB…òCcÒ¿Çüߨÿ¶cþGþߨ˜ôï‘ÿ¼{ÿOûJ€ÐØÖÿæÿFý7]…ÿWÂS
-òöÿ~ÅMäB1é¶ù¿æ@ÿœÿ¨¡.®9"0ý®þÿ‡Sý=òŸîÿÐÿi ÿ96&ý{ú?пü±1é.ÿÇÁû_ê˜ÿÖð¡ßôÜâbÒ¿£ÿ£aýGÏÿؘôïéÿÀÿ%ÿGlLú÷È~òàÿ–@þsllëÿŽþô/áÀ
 ÉAþ[(Lú÷È~òàÿ–@ÿƒþ“§ÿ£&ÿW‚©þ³ù?:æ߉²MW5°˜ôïéÿ`ÿGû?±1éß3ÿƒ÷?	äÄÆ¤Ïüú		凯¤OÿþO	¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þïèÿ ÿG“ƒó?BaÒÿlþýüÿÿ·ˆqÿõ†Å ÿ³žÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿§ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwô 	O5 ÿ#&&ý{æàÿ–@ÿ›,ý§ö\ËÇ…Ÿíÿ(º­þ‹vûürë¿Y=¬¾®–?r.„¼úoÿ¼ªê–ü	“ë¿ù¼¾ëooï?m¿µåÉo&«ÿëß4äÿk˜Ðÿÿú¡¤ÿ¿x&ëÿ—÷ç¡_|é—w7÷·Ç>ãíþ¿ÚÓ›ó_hÿc3Yÿ‹Õú”染¯ÿÔuä?I ÿ!66ýŸÓýOêÿ«ÿŸ„éý¹åÏméèÿ/™\ýïÖÿó>c¸@ΟÿÚþ¾*‡Ûë?¦ÕÜÿ©|æÿ
-Îÿbªÿlóí~ý»Š÷	©è˜ ŒIÿóãþ_×âÿÕ€ÿ?6&ý»ä?ïžÿ‰ù	ä?ÇÆ¤ù¿ñù_Ìÿk¨P~hLú÷˜ÿõß²ÿ'ÿolLúwÉ.˜ÿRÒ „ƶþï0ÿ7>ÿÞÿE¼ØÒÏü¡,ñÿ^:&ýÏ6ÿ×èŸç¿†º¸æˆÀô_¸ø?Fý§¢.ñ(0Õß#ÿyWú?ä?ÇÆ¤Oÿú—€ÿ#6&ýÏåÿ8xÿK]þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLú÷ÈÞ½ÿsþ·òŸcc[ÿ÷ó0ÿ©á©ä¿ÅĤüçŸúoñK ÿAÿÉ5ÿƒó¿%˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿ.çœÿ-„ýŸØ˜ôï™ÿQ¢äÄÆ¤—ó¿ÎÿBþwlLúw9ÿ»àüo!¬ÿÆÆ¤ÏüÎÿ’P2ýÛú¿ÇùßçyªçÄĤÿÙüûùÿø?TŒû¨7,ý—®ùþ¦ú{æ°ÿ#üØ˜ôï™ÿþ%àÿˆIÿ³ù?Ÿÿ5ú—ðñÛãfý}1ܶ¹ĤÏüö$ðüIÿžùÌÿJÀÿ“þ=ó?Øÿ‘@þGllëÿŽùè_ÂKGæä\>&ý;æÿ­þ?6Yúo›s-/~~þGµÕÑ
-þ¹õ߬V_WË9BVý·…/ªªòŸ©¿?“ë¿ù¼¾ëooï?m¿µåÉo&¯ÿêß4‰þ_”þ¿:üMÄ…2Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛÄþ¿†k”šÉú_¬Ö§4ÿœ|ý×á¼þÇÆ¦ÿsºÿIýU±þ'aBÿ_UV[èÿrõ¿[ÿÏûŒáÉ[ÿ+Ûí_cýGÀ´úû?•OþsÅùßBLõŸmþ¯Ý¯—èÿ%¤¢c00&ý»ä?Wœÿ-ÿlLúwÉþùügþGùϱ1éß%ÿ¹âüo!ʍIÿ.ùÏçÁÿ“þ]òŸ+æÿ„”4 ¡±­ÿ{ä?Wœÿ-ä©yûÿ¿â&r¡˜ô?Ûü_s òÿ4ÔÅ5'@Æ ÿÂÓÿ1ÌÿàÿðÇTüçŸû?ôÈŽIÿŽþýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý{ú?ðIÀÿ“þ=òŸŸüø¿%ÿÛú¿£ÿýK8prÿ
-“þ=òŸê¿Åÿ-þ?6ý'×üÎÿ–`ªÿlþŽùßw¢lÓU$,&ý{æ°ÿ#ýŸØ˜ôï™ÿÁûŸò?bcÒ¿§ÿƒþ_BBù¡1éßÓÿÿS뿱1éß/ÿ£.Èÿ”P2ýÛú¿£ÿƒü	NÎÿ…Iÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éß3ÿýKÀÿ“þgó>ÿú—ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýKxªù11éß3ÿÿ·úÿØdéÿª9×òñ‚Aáçû?¶^mYâÿP[ÿÍêaõuµü‘s!dÕ¿Øþ½ªª‡ü'êïÏäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7MMþƒ„Ìþ¿:ò+šˆe²þyúÅ—~yws{ì3²úÿQÿmªYÿ—P2 šÉú_¬Ö§4ÿœ·õ_íé¿,Áè_ òMÿçtÿ“úÿªÂÿ#!«ÿ¯ªÝà'ýÿoC®þwëÿyŸ1\ yëeÛÔ¬ÿ(˜Vÿqÿ§ò™ÿ«wó¬ÿI0Õ¶ù¿v¿þœÿ)"€1éßeþ¯Þå?óþ/ÿlLúwÉÞ=ÿkòß$ÿ“þ]æÿêÝüó¿*”“þ]æÿÆþûпü¿±1éß%ÿ¹Þå?“ÿ(¡¤mýßcþ¯çûÿvòßðÿV¯ÿŠ›È…bÒÿló́þ™ÿ×Pל ƒþWÿGÂÿ¡ÀT—üçŸþú?	ä?ÇÆ¤Oÿú—€ÿ#6&ýÏåÿ8xÿK]þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïæÿh»ÿ—ü±1éß%ÿ¹æüo!ä?ÇÆ¶þïèÿ@ÿœ俅¤—üçŸþüßèÿccÐrõ´ø?˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLúwôtôÿÈÿŽIÿžùø?%°þ“þ=ó?Èÿ”P2ýÛú¿£ÿƒü	NÎÿ…Iÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ5ú—ðñÛãfý}1ܶ¹ĤÏüΔÀó?6&ý{ú?ðIÀÿ“þ=ó?ðK ÿ#6¶õGÿú—pàä ÿ#&ý{æàÿ–@ÿ›,ý§ës-/~¾
 ÿcûûªhürë¿Y=¬¾®–?r.„¬úÃý¿ª[Îÿ‘0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þM“ðJÈìÿ_üpEÿñLÖÿ/ïÏC¿øÒ/ïnîo}ÆÛýµ§ÿ6‘ÿ ¡C¹¡™¬ÿÅj}JóÏÉ×Íü·òbcÓÿ9Ýÿ¤þ¿ªØÿ—0½ÿ¿ÚòçÕýÿE“«ÿÝúÞgHÞú_ÙÖë?
-¦ÕÜÿ©|æÿŠÝü_Aý˜ê?Ûü_»_öÿE¤¢c00&ý»Ìÿãü_Ëú¿üÿ±1éß%ÿ¹`þ_ùϱ1éßeþ¯ØÍÿ±þ/¡Bù¡1éßeþ¯ØÿMþ«ü¿±1éß%ÿy|ÿOóÿJ€ÐØÖÿ=æÿŠqþ§âü7	/¶ô3¸ºÂÿ{é˜ô?Ûü_s ÎÒPל ƒþOÿGâüo	¦ú»ä?ïöèÿ4ÿ“þ=ýè_þØ˜ô?—ÿãàý/u	ýKøÐoznq1éßÓÿÁúžÿ±1éßÓÿÿKþØ˜ôï’ÿüÓÿÿ[ùϱ±­ÿ;ú?п„§ÿ“þ]òŸwúoñK ÿAÿÉ5ÿ£Äÿ¡ÀTÿÙüó¿ïDÙ¦«HXLúwôàÿÕÀþOlLú÷ÌÿàýOù±1éßÓÿAÿ/üïØ˜ôïéÿÀÿ)õߨ˜ôï™ÿAþ§„’éßÐØÖÿýäÿHxªçÄĤÿÙüûùÿœÿ­bÜÿC½a1è¿tÍÿàü	¦ú{æÐÿI ÿ#6&ý{æ 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿§ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwô 	/,™?ÿqù˜ôï™ÿÿ[ýl²ôß¶çZ>^0(ü|ÿGµÕÑœÿ"!·þ›ÕÃêëjù#çBȪ±ý{UUùOÔߟÉõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoššü	SúÿúðW4Êdýÿòþ<ô‹/ýòîæþöØgdõÿ£þÛT³þ/¡Dº¡™¬ÿÅj}JóÏy[ÿÕžþëá–€þðú›þÏéþ'õÿU…ÿG„þ¿®ÿ¬·Ðÿÿäê·þŸ÷Ã’·þW¶
-ù¿¦ÕÜÿ©|æÿª]þsEý˜ê?Ûü_»_òŸE¤¢c00&ý»ÌÿU»ügú	øÿccÒ¿KþsÅùßBÈŽIÿ.óÕnþÿ¯„
-凯¤—ù¿j7ÿÇü¿ü¿±1éß%ÿy|ÿ¯üJ€ÐØÖÿ=æÿªÝüùïžj·ÿð+n"ŠIÿ³Íÿ5ú'ÿYC]\sD`ú/\ýþ¦ú»ä?ïöèÿ4ÿ“þý-ú—€ÿ#6&ýÏåÿ8xÿK]Bÿ>ô›ž[@\Lú÷ô°þ#çlLú÷ôàÿ’€ÿ#6&ý»ä?W»ügüßÈŽmýßÑÿþ%89È…Iÿ.ùÏ;ýsþ£úÿØôŸ\ý	ÿ‡SýgótÌÿ¾e›®j, a1éß3ÿƒý	ìÿÄÆ¤ÏüÞÿ$ÿ“þ=ýôÿʍIÿžþüŸXÿIÿžùäJ(™þ
-mýßÏÿ‘Èÿ‘pàäàüP˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tõpþSýó?èÿ4ÿ“þ=ýè_þØ˜ô?›ÿãðù_£	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éßÓÿÿKþØ˜ôï™ÿÿ[ù±±­ÿ;æ 	O5 ÿ#&&ý{æàÿ–@ÿ›<ý_kùxÁ ð<ÿGÑ–œÿ"!·þ›ÕÃêëjù#çBȪ±ý{UUùOÔߟÉõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoššü	úÿò•_ÑD\(“õÿËûóÐ/¾ôË»›ûÛcŸñvÿ_íé¿M5þo	¬ÿÅf²þ«õ)Í?'_ÿã?п€ý‡Æ¦ÿsºÿIýUáÿ‘0¥ÿ/ÿ,·Ðÿÿäê·þŸ÷Ã’·þW¶
-ù¿¦ÕÜÿ©\çÿjê¯ÀTÿÙæÿöç¿ÉV‘ŠŽ	ÀÀ˜ôï9ÿGÿ/ÿlLú÷ÌÆÿ#üçØ˜ôï9ÿ‡ÿWB…òCcÒ¿Ûü_7,	¡øccÒ¿gþ3þ?	%
- at hlëÿŽùÏä¿KxªAÞþÿÁ¯¸‰\(&ýÏ6ÿאÿüNÔÅ5'@Æ ÿÂÕÿQáÿP`ª¿gþ3ýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥®Fÿ>ô›ž[@\Lú÷ô°þ#çlLú÷ÌÆÿ%ÿGlLú÷ÌÆÿ-ü—ØØÖÿóŸÑ¿„'ùo¡0éß1ÿ™ó5ÐÿÇÆ ÿäãÿH;ÿù¿LõŸÍÿÑíןó?E”mºª±€„ŤOÿû?Øÿ‰Iÿ.ù	ÿ‡ò?bcÒ¿§ÿƒõ_		凯¤ÏüžÿXÿIÿ.ùi—ÿÁû¿„’éßÐØÖÿ=üi—ÿAþ¯„
 '焤ÿÙüûùÿ
-þoãþê
-‹Aÿ¥kþçÿH0Õß3ÿƒüG	äÄÆ¤Oÿú—€ÿ#6&ýÏæÿ8|þ×è_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ÌÿÀÿ%ÿGlLú÷Ëÿ¨9ÿIù±±­ÿ;žÿ‚þ%<Õ€ü˜˜ôï™ÿÿ[ýl²ô¶ãã%ƒÂÏöíVÿES’ÿ!!³þ›ÕÃêëjù#ëBÈ«ÿöÏ«*
-ùOÔߟ©õß|^ßõ·7÷Ÿ¶_Úòô“Õÿõoêšù	úÿW~àÙKeªþYúÅ—~yws{ô3Þîÿ«=ý·Uÿ[oî±™ªÿÅj}RóÏÉ×ÿ¶ýcÿOúIÿguÿ“úÿ²Âÿ#ÁÜÿW#ÜE.”Lýï–ÿ3?c¸RòÖÿʦ-YÿQ0©þãöOuöe_ÿªk8ÿ[‚¥þgŽÿå͏õOmMþƒ„TtL Æ¢ÿ3Çÿ2ßÿÛqþü7
-øÿccÑÿ™ãyùÏOÏÞÿ%ÿ‹þÏÿ›ðüOç?h`å.6ýŸ9þ—çÿõßvûÿðÿÆÆ¢ÿ3Çÿ&è¿K%ó?J€Ð˜ÖÿÏÿËÜÿôß´	ÿ„×¶ô³`ÿÿb±èÿÌñ¿3žÿ;þ»‚ü/	uqÍ	™®ÿÂ×ÿÁü—KýçóÔû?ôÈŽEÿŽþ†ü7
-ø?bcÑÿlþƒ÷¿ÔÖè_‡~Ósˆ‹Eÿ®þÖ$ðüEÿ®þü_ðÄÆ¢ÿùüïÿ©Àÿ-üçØ˜Öÿ=ýè_ž“ƒü·`Xô?Ÿÿc¿ÿoZÎÿÖ@ÿ›éúO¾þÎÿ–`©ÿ|þŽùßw¢lÓU$,ý»æ°ÿ#ýŸØXôïšÿÁûŸò?bcÑ¿«ÿƒþ_BBù¡±èßÕÿÿS뿱±èß5ÿƒüO	%Ó¿¡1­ÿ;ú?jò$ì;98ÿ#ýÏçÿØÏÿoð‹÷ÿPoX¦ëÿüÃÀ…gû?8ÿG‚¥þžùôÈÿˆEÿ®þô/ÿGl,úŸÏÿqøüoп„ß7ëï‹á¾Í  ý»ú?8ÿQÏÿØXôïêÿÀÿ%ÿGl,úwÍÿÀÿ-üØ˜Öÿ=ó?п„×,ù?àÿ¸T,úwÍÿÀÿ-þ?6Yú¯Ú³=Ï~¾ÿ£Ûê¿h‡þÿ‡?¹õ߬V_WË9B^ýëÁÿS7õW0¹þ›Ïë»þöæñþÓö[[žüfòúÿ¡þM“Xÿ—`íÿëÝ4Êdýÿ2ÿ<ô‹/
 ýòîæþöØg¼ÝÿW{úoùŸÿŠÍdý/VëSšN¾þSGþ§žÜ±±éÿœîRÿ_•ÌI˜Þÿ×[þ¬éÿ/›\ýï6 ò>c¸@òÖÿÊ–ù/
-Óê?n Uç^ùõOE]Q¦úŸ9 øvÿßî׿cýOC*:& cÒÿ™€yïÿÝ8ÿבÿ$ÿlLú?s ðMý—ý_Çú¿òŸccÒÿ™€ùÏÿzû÷Ñ¿œ»±1éÿÌÀ·õŸöôß²ÿ'ÿolLú?s 0_ÿ]Mþ†’ 4¶õÿó ßÒyðþßtó?^léçÿÀþÿ…cÒÿ™€o?ÿ›ýwœÿ(¡.®± Æ ÿÂÕÿQàÿP`ªÿlþú`ÿ‡þOùϱ1éßÑÿÑ¢	ø?bcÒÿ\þƒ÷¿Ô%ô/áC¿é¹ÄŤOÿë?xþÇÆ¤Oÿþ/	ø?bcÒÿlþƒ÷ÿÔáÿ–@þsllëÿŽþô/á—“câø?.“þgóì÷ÿM×âÿ–@ÿƒþ“«ÿ#áÿP`ªÿlþŽùßw¢lÓU$,&ý{æ°ÿ#ýŸØ˜ôï™ÿÁûŸò?bcÒ¿§ÿƒþ_BBù¡1éßÓÿÿS뿱1éß3ÿƒüO	%Ó¿¡±­ÿûù?ù?þÝÉ‘ûçü˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tõpþSýó?èÿ4ÿ“þ=ýè_þØ˜ô?›ÿãðù_£	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éßÓÿÿKþØ˜ôï™ÿÿ[ù±±­ÿ;æ 	/,~ÀÿqÙ˜ôï™ÿÿ[ýl²ô՝kùxÁ ð³ýåöÏ«¢-Éÿ[ÿÍêaõuµü‘s!dÕ¿Øþ½ªª‡û?õ÷grý7Ÿ×wýíÍãý§í·¶<ùÍäõÿCý›¦fý_BfÛuäW4Êdýÿòþ<ô‹/ýòîæþöØgäõÿƒþÛTóþ/¡lnd&ë±ZŸÒüsÞÖµ§ÿz	AÿȈMÿçtÿ“úÿí úWÕÿ_ÐÿÿFäê·þŸ÷Ã’·þW¶MËú‚iõ÷*—ù¿±þ©¨Yÿ“`ªÿlóí~ýñÿ‹HEÇ``Lú÷˜ÿõßµøÿ4àÿIÿùÏOÏòß%ÿ“þ=æÿFý×EGþ£„
-凯¤ù¿]ÿ?üú€ÿ76&ý{ä?ïô_ÌÿJ(i Bc[ÿw˜ÿõßt‰ý	;ùoø¯^ÿ7‘ŤÿÙæÿšýsþ‹†º¸æˆÀô_¸ú?ü
-Lõ÷Èþ¹ÿCÿ§üçØ˜ôïéÿ@ÿðÄÆ¤ÿ¹üï©«Ñ¿„ý¦ç“þýä?iàù“þ=ýø¿$àÿˆIÿùÏOþüßÈŽmýßÑÿþ%89È…IÿùÏOþüßèÿccÐòôlÿþ¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ¿§ÿƒý	ìÿÄÆ¤ÏüÞÿ$ÿ“þ=ó?èÿ%ÿ“þ=ýø?%°þ“þ=ó?Èÿ”P2ýÛú¿£ÿƒü	NÎÿ…Iÿ³ù?öóÿ[üß"Æý?ÔƒþK×üÎÿ‘`ª¿gþýŸò?bcÒ¿§ÿýKÀÿ“þgó>ÿkô/áã·ÇÍúûb¸ms'ˆIÿžþΔÀó?6&ý{ú?ðIÀÿ“þ=ó?ðK ÿ#6¶õGÿú—pàä ÿ#&ý{æàÿ–@ÿ›,ý§³-/~¶ÿ£è¶ú/Úáýÿ‡?¹õ߬V_WË9B^ý‡ûU7‰ú+˜\ÿÍçõ]{óxÿiû­-O~3YýÿXÿ¦©ÈÙÿïÿpEÿÙLÖÿ/ïÏC¿øÒ/ïnîo}ÆÛýµ§ÿ6%üß:”šÉú_¬Ö§4ÿœ|ý§Žü
-ìÿÇÆ¦ÿsºÿIýUâÿ‘0½ÿFAÿ¼º¢ÿ¿hrõ¿[ÿÏûŒáÉ[ÿ+[ÎÖ0­þãþOå2ÿ7Ö?‰ù?	¦úÏ6ÿ×î׿cýOC*:& cÒ¿Çüߨÿ®m™ÿ‘ÀûlLú÷Èþùügý_ùϱ1éßcþoÔ]´¬ÿI¨P~hLú÷˜ÿõß²ÿ'ÿolLú÷ÈÞ½ÿ'üÿJ€ÐØÖÿæÿFý7]ÅüŸ„[úù?°ÿá˜ô?Ûü_s ÿ–ó$ÔÅ5'@Æ ÿÂÕÿQãÿP`ª¿Gþó“ÿƒþOùϱ1éßÓÿþ%àÿˆIÿsù?ÞÿùO">ô›ž[@\Lúwô4¬ÿHàù“þ=ýø¿$àÿˆIÿùÏOþüßÈŽmýßÑÿþ%ürrLûü·Ǥüç'ÿþo	ôÿ±1è?¹ú?:ü
-LõŸÍÿÑ1ÿûN”mºª±€„ŤOÿû?Øÿ‰Iÿžù¼ÿI ÿ#6&ý{æÐÿKH(?4&ý{ú?ðJ`ý76&ý{æÿ)¡dú74¶õGÿù?~99²àüß“þgóìçÿ7ø¿EŒû¨7,ýŸ}ø ðlÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿gþç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýKxaéÈÿüǤÏüüßèÿc“¥ÿ«ê\ËÇ…Ÿíÿ(·^mÑâÿP[ÿÍêaõuµü‘s!dÕ¿Øþ½ªª‡ü'êïÏäúo>¯ïúÛ›ÇûOÛomyò›Éëÿ‡ú7M"ÿABnÛ_¿þ+šˆe²þyúÅ—~yws{ì3òúÿAÿmªYÿ—PÒÿ‡f²þ«õ)Í?çmýW{úßþýKàø÷ØØôN÷?©ÿ¯Jü?²úÿz„þÿ7"Wÿ»õÿ¼Ï.¼õ¿²mJÖL«ÿ¸ÿsöbp~ýSQ³þ'ÁTÿÙæÿÚýúsþ§ˆTtL Ƥù¿Qÿ]‹ÿWþÿؘôï‘ÿüôü'ÿMùϱ1éßcþoÔ]0ÿ¯õÿؘôï1ÿ7ê¿í:ü?ðÿÆÆ¤üçÝû]ÿ(¡¤mýßaþoÔÓUìÿK8ØÉ?ýCÿ÷÷¤ÿÙæÿšý3ÿ¯¡.®9"0ý®þÿ‡Sý=òŸîÿÐÿi ÿ96&ý;ú?Zô/ÿGlLúŸËÿqðþ—º„þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLú÷ÈÞ½ÿsþ·òŸcc[ÿwô 	NòßBaÒ¿GþóOý·ø¿%ÐÿÇÆ ÿäêÿHø?˜ê?›ÿ£cþ÷(ÛtUc	‹IÿžùìÿH`ÿ'6&ý{æðþ'üØ˜ôïéÿ ÿ—P~hLú÷ôàÿ”ÀúolLú÷Ìÿ ÿSBÉôohlëÿ~þDþ„'焤ÿÙüûùÿ
-þoãþê
-‹Aÿ¥«ÿƒó$˜êï˜ÿAÿ§üØ˜ôïéÿ@ÿðÄÆ¤ÿÙü‡ÏÿýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžþü_ðÄÆ¤ÏüüßÈÿˆmýß1ÿýK8prÿ
-“þ=ó?ðK ÿMžþÏ>òåƒÂóüE[Ôø?äÖ³zX}]-ä\Yõ/¶¯ªê–ó$L®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¬þ¬Ó$üŸrûÿ’þÿ·b²þyúÅ—~yws{ì3²úÿQÿmâü
-œÿ›Éú_¬Ö§4ÿœ·õ_íé?1ÿ-ùÇÆ¦ÿsºÿIýU²ÿ/!«ÿ/Gèÿ#rõ¿[ÿÏûŒáÉ[ÿ+ÛºcýGÁ´úû?ç_>¦úÏ6ÿ·?ÿºDþ‹„TtL ƤÎÿ¾xðÿÇÆ¤Ïügæ$ÿ“þ9ÿûâaý?6&ýsþ÷Ńÿ76&ýûå?3ÿ'ÿOllëÿœÿ}éìäŸþ¡Äÿû{aÒÿlóÍaþ3ù_êâš cÐÿÙÀƒÂsýÃùø?ü1Õß1ÿ™þOùϱ1éßÓÿþ%àÿˆIÿsù?ÞÿR—п„ý¦ç“þ=ý¬ÿHàù“þ=ýø¿$àÿˆIÿžùÏø¿%ÿÛú¿£ÿýK8prÿ
-“þ=óŸñK ÿAÿ‰ó¿/SýgótÌÿ¾e›®j, a1éŸó¿/öbcÒ¿gþïÈÿˆIÿœÿ}ñ$”“þ9ÿûâaý76&ý{æÿ)¡dú74¶õÎÿ¾tœœÿ
-“þgóìçÿ7ø¿EŒû¨7,ý—®ùœÿ#ÁTÏüú?	äÄÆ¤Ïüô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽþô/áÀÉAþG(Lú÷ÌÿÀÿ-þ?6yú?Ûòñ‚Aáyþ¢-ü
-rë¿Y=¬¾®–?r.„¬úo_TUÝ’ÿ"arý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›†ü
-¹ýEÿÿ[1Yÿ¿¼?ýâK¿¼»¹¿=öYýÿ¨ÿ6Õä¿H( Ídý/VëSšÎÛú¯öô_-!úÀñï±±éÿœîRÿ_•øÿ$dõÿÕýÿoD®þwëÿyŸ1\ yëe»ýk¬ÿ˜Vÿqÿ§"ÿùò1Õ¶ù¿ýùïÔ%æ¿%¤¢c00&ý“ÿ|ñàÿIÿä?_<ä?ÇÆ¤òŸ/ÖÿccÒ?ùÏþߨ˜ôOþóÅSÒ „ƶþOþó¥s°“ú‡
-ÿïï…Iÿ³Íÿ5‡ùÏäÿH¨‹kN€ŒAÿùÏ—©þä?_<ä?ÇÆ¤òŸ/ü±1é.ÿÇÁûùÏ*>ô›ž[@\Lú'ÿùâáù“þɾxðÄÆ¤òŸ/òŸcc[ÿ'ÿùÒ9prÿ
-“þɾxèÿccÐrÍÿ¨ð(0Õ6ÿGÇüï;Q¶éªÆ“þ=ó?Øÿ‘ÀþOlLú÷ÌÿàýOù±1éßÓÿAÿ/øÿؘôïéÿÀÿ)õߨ˜ôï—ÿQsþ‡†’éßÐØÖÿýäÿH8prpþG(LúŸÍÿ±Ÿÿßàÿ1îÿ¡Þ°ôöaàƒÂ³ýœÿ#ÁTÏüú?	äÄÆ¤Ïüô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽþô/áÀÉAþG(Lú÷ÌÿÀÿ-þ?6Yú¯ÏŽüxÁ ðóýÛßWEÓqþ‹„ÜúoV«¯«åœ!«þÅöïUUÝP	“ë¿ù¼¾ëooï?m¿µåÉo&«ÿëß4	ÿ§„ÜþÿÙWôÿ—Ïdýÿòþ<ô‹/ýòîæþöØg¼ÝÿW{úoù:”šÉú_¬Ö§4ÿœ|ý'æ¿Eðú›þÏéþ'õÿUÉþ¿„éýÿÕ–?¯®èÿ/š\ýïÖÿó>c¸@òÖÿÊ–ü_
-Óê?îÿT>óÅîüïDý˜ê?Ûü_»_Îÿ‘ŠŽ	ÀÀ˜ôï2ÿWìæÿðÿKÀÿ“þ]òŸ>ÿYÿ“@þslLúw™ÿ+Æù¿†ý?	ʍIÿ.óÅ8ÿGþ‡ü¿±1éß%ÿ¹ØÍÿqþ“„’ 4¶õù¿b7ÿGþ»„[úY?\áÿý
-0é¶ù¿æ@ÿ-þ	uqÍ	1è¿põ”ø?˜êï’ÿüsÿ‡þOùϱ1éßÓÿþ%àÿˆIÿsù?ÞÿR—п„ý¦ç“þ=ý¬ÿHàù“þ=ýø¿$àÿˆIÿ.ùÏ;ÿùÈŽmýßÏÿQ¢	O5 ÿ-&&ý»ä?ïôßàÿ–@ÿƒþσžíÿ¨ñ(0Õ6ÿGÇüï;Q¶éªÆ“þ=ýìÿH`ÿ'6&ý{æðþ'üØ˜ôïéÿ ÿ—P~hLúwôtø?%°þ“þ=ó?Èÿ”P2ýÛú¿cþù?žjÀù11é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéêÿàü	¦ú{æÐÿI ÿ#6&ý{ú?пü±1é6ÿÇáó?¡	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éß3ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwÌÿ@ÿ^X:ò~ ÿã7À¤Çüò¿5ÐÿÇ&Kÿmw®åãƒÂÏ÷T[
 ýmÑáÿP[ÿÍêaõuµü‘s!dÕ¿Øþ½ªªÿõ÷grý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›¦fÿO”þÿêðW4Êdýÿòþ<ô‹/ýòîæþöØgdõÿ£þÛT³ÿ'¡d04“õ¿X­Oiþ9oë¿ÚÓ=X‚Ñ¿ ^ÿccÓÿ9Ýÿ¤þ¿ª˜ÿ–0¡ÿÇ>wƒŸôÿ—N®þwëÿyŸ1\ yëeÛ0ÿ%aZýÇýŸÊgþ¯çÿêDý˜ê?Ûü_»_ÿ.ÑÿKHEÇ``Lúw™ÿ«Æù?òŸ4°ü“þ]òŸ>ÿñÿK ÿ96&ý»ÌÿUãú?ùO*”“þ]æÿª]þ3þ	øccÒ¿Kþóøþ¿ý'úWPÒ „ƶþï1ÿWó?‰ù	O5ÈÛÿ?ø7‘ŤÿÙæÿšýwœÿ(¡.®9"0ý®þÿ‡Sý]òŸîÿÐÿI ÿ96&ý{ú?пü±1é.ÿÇÁû_êjô/áC¿é¹ÄŤOÿë?xþÇÆ¤Oÿþ/	ø?bcÒ¿Kþsµ;ÿÿ·òŸcc[ÿ÷óTè_“ƒü·P˜ôï’ÿ¼Ó?ç?h ÿAÿÉÕÿQãÿP`ªÿlþŽùßw¢lÓU$,&ý{ú?Øÿ‘ÀþOlLú÷ÌÿàýOù±1éßÓÿAÿ/!¡üИôïæÿè†%!ô/€õߨ˜ôï™ÿAþ§„’éßÐØÖÿó?Èÿ‘pàäàüP˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tõpþSý=ó?èÿ$ÿ“þ=ýè_þØ˜ô?›ÿãðù_£	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éß3ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwÌÿ@ÿžj@þGLLúwÌÿ ÿ[ýl²ô_ŸëøxÉ ðóýåVÿES6ø?dÖ³zX}]-d]Yõ/¶¯6€¨¿‚©õß|^ßõ·7÷Ÿ¶_Úòô“Õÿõoê†ç¿„)ýÿÁ%ýÿ¥2Uÿ¿¬?ýâK¿¼»¹¿=úo÷ÿÕžþÛªaþKû±™ªÿÅj}RóÏÉ×êJòŸ$ ÿؘôV÷?©ÿ/ñÿk0÷ÿåw‘%Sÿ»åÿÌÏ®”¼õ¿²iÖLªÿ¸ýS}ä׿êÎÿ–`©ÿ™ã™óßCýS[óþ/!€±èÿÌñ¿Lÿ_9Îÿ‘ÿ¦Î=6ýŸ9þ—™ÿüóùÏüòŸccÑÿ™ãžÿ©ãü
-ʍEÿgŽÿeúËq
 þ¯ ÿMþߨXôæøßýw©`þGBIÓúÿyã™óƒþ›–ó5¼¶¥Ÿýûÿ‹EÿgŽÿñüoöõßø$ÔÅ5'@fºþWÿGÝáÿP`©ÿ|þú`ÿ‡þOùϱ±èßÑÿѐÿ¦7·ØXô?›ÿãàý/µ5ú—ð¡ßôÜâbÑ¿«ÿƒõ	<ÿccÑ¿«ÿÿ—ü±±è>ÿÇÁû*ðK ÿ96¦õOÿú—°çä ÿ-ýÏçÿØïÿ›–ó¿5ÐÿÇfºþ“oþçK°Ô>ÿGÇüï;Q¶éªÆ‹þ]ó?Øÿ‘ÀþOl,úwÍÿàýOù±±èßÕÿAÿ/!¡üÐXôïêÿÀÿ)õߨXôï™ÿQ’ÿ)¡dú74¦õOÿù?öœœÿ‹þçóìçÿ7ø¿EŒû¨7,Óõ_úú?8ÿG‚¥þ®ùôÈÿˆEÿ®ùè_on±±è>ÿÇáó¿Fÿ>~{ܬ¿/†û6w‚€XôïêÿàüG	<ÿccÑ¿«ÿÿ—ü±±èß5ÿÿ·ò?bcZÿ÷ô 	¯Y:² ÿãb±èß5ÿÿ·úÿØdé¿kÎö|<gPøùþ´ÕÑœÿ"!·þ›ÕÃêëjù#çBȪÿöů¨ªº­©¿‚Éõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoššù	ùÝþÕk¿¢‰¸P&ëÿ—ùç¡_|é—w7÷·Ç>#«ÿõߦÿ·„²Aº‘™¬ÿÅj}JóÏy[ÿÕžþë‚ù
-<¹ccÓÿ9Ýÿ¤þ¿ªÈ“Õÿ_ÐÿÿFä귐÷Ã’·þW¶äÿj˜Vÿq¨:÷2ȯ*†÷?êþg ¾Ýÿ·ûõï8ÿCC*:& cÒÿ™€Yïÿ£þ»ÿ¿üÿ±1éÿÌÀ7õ_ô]Âÿ#üçØ˜ôæ `þó¿.Zü¿*”“þÏ |[ÿiOÿmGþ‡ü¿±1éÿÌÀ|ýw5ç?i(i Bc[ÿ?o ð-ý—ïÿM—ðÿJ8ØÉëöÿ+Lú?s ðíçs ÿÿŸ„º¸æˆÀô_¸ú?Jü
-LõŸÍÿQîÿÐÿI ÿ96&ý{ú?пü±1é.ÿÇÁû_ê˜ÿÖð¡ßôÜâbÒ¿§ÿƒõ	<ÿccÒ¿§ÿÿ—ü±1é6ÿÇÁû"ÿQùϱ±­ÿûù?*ô/áÀÉAþ[(LúŸÍÿ±ßÿ7]‹ÿ[ýlúO®þò%˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLú÷ôÐÿKH(?4&ý»ù?ºaIý`ý76&ý{æÿ)¡dú74¶õÇüò$898ÿ#&ýÏæÿØÏÿoð‹÷ÿPoXú/]ýœÿ#ÁTÏüú?	äÄÆ¤Oÿú—€ÿ#6&ýÏæÿ8|þ×è_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ÌÿÀÿ%ÿGlLú÷ÌÿÀÿ-üØØÖÿó?п„'ù¡0éß1ÿƒüo
-ôÿ±ÉÒYkùxÁ ð³ýÅöïUE3ôÿø?üÉ­ÿfõ°úºZþȹòê¿ýóªªü?&×óy}×ßÞ<ÞÚ~kË“ßLVÿ?Ö¿iÈÿӐßÿüPÒÿ_.“õÿËûóÐ/¾ôË»›ûÛcŸñvÿ_íé¿Mœÿ¥ý¿ØLÖÿbµ>¥ùçäë?uøÿ4ÿ›þÏéþ'õÿUÁú¿sÿ_Žp¹Prõ¿[ÿÏûŒáJÉ[ÿ+[æ¿4L«ÿ¸ÿsöbp~ýS‘õW`ªÿlóí~ý»
-ÿ¯„TtL Ƥù¿Qÿ]Û’ÿ$Î=6&ý{ä??=ÿÙÿ“@þslLú÷˜ÿõ_
-ùO*”“þ=æÿFý·œÿ'ÿolLú÷ÈÞ½ÿ'öÿ5”4 ¡±­ÿ;Ìÿúoº
-ÿŸ„×¶ô3Ø–ÿï¥bÒÿló́þ[ΔPל ƒþWÿG‰ÿC©þùÏOû?ôÈŽIÿžþô/ÿGlLúŸËÿqðþ—:æ?5|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLú÷ÈþéÿhñK ÿ96¶õ?ÿG‰þ%¼prLûü·ƤüçŸúoðK ÿAÿÉÕÿQãÿP`ªÿlþŽùßw¢lÓU$,&ý{ú?Øÿ‘ÀþOlLú÷ÌÿàýOù±1éßÓÿAÿ/üïØ˜ôïèÿàü?
-¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þï˜ÿAþ„NŽ)?pþÇEcÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒÕÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	¼¹ÅƤÿÙü‡Ïÿ„þ%|üö¸Y_·mî1éßÓÿÁùxþÇÆ¤Ïüü_ðÄÆ¤ÏüüßÈÿˆmýß1ÿýKxÍÒ‘ùùŒIÿŽùäk ÿM–þ¯ÎŽüxÁ ð³ýåöÏ«¢-:ü
-rë¿Y=¬¾®–?r.„¬ú÷ÿªæÿ©¿?“ë¿ù¼¾ëooï?m¿µåÉofBÿß$ú	¹ÝþÕë¿¢‰¸P&ëÿ—÷ç¡_|é—w7÷·Ç>#¿ÿoSÍü—„²Aº‘™¬ÿÅj}JóÏy[ÿ‡ûÿú—Àñï±±éÿœîRÿ_qþ§†¬þÿj„þÿ7"Wÿ»õÿ¼Ï.¼õ¿²m˜ÿ’0­þãþOå2ÿ7Ö?5ëLõŸmþ¯Ý¯—ðÿJHEÇ``Lú÷˜ÿõßµä?iÀÿ“þ=òŸŸžÿøÿ%ÿ“þ=æÿFý×ùOXÿIÿó£þÛ®Ãÿ#ÿolLú÷ÈÞ½ÿoÿ‰þ”4 ¡±­ÿ;ÌÿúoºÄþ¿„ƒüÓ?\áÿý½0é¶ù¿æ@ÿç?J¨‹kN€ŒAÿ…«ÿ£Äÿ¡ÀTüç§ýú?	ä?ÇÆ¤Oÿú—€ÿ#6&ýÏåÿ8xÿK]þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLú÷ÈÞ½ÿ§ÿ·òŸcc[ÿ÷óTè_“ƒü·P˜ôï‘ÿüSÿœÿ þ?6ýŸ=(<ÛÿQãÿP`ªÿlþŽùßw¢lÓU$,&ý{ú?Øÿ‘ÀþOlLú÷ÌÿàýOù±1éßÓÿAÿ/!¡üИôïæÿè†%!ô/€õߨ˜ôï™ÿAþ§„’éßÐØÖÿó?Èÿ‘pàäàüP˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tõpþSý=ó?èÿ$ÿ“þ=ýè_þØ˜ô?›ÿãðù_£	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éß3ÿÿ—ü±1éß3ÿÿ·ò?bc[ÿwÌÿ@ÿœä„¤Çüò¿5ÐÿÇ&Kÿ×gùò‚Aáyþ¢-ü
-rë¿Y=¬¾®–?r.„¬úo_TUÝrþ„Éõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoš„ÿSB^ÿ_ûMÄ…2Yÿ¿¼?ýâK¿¼»¹¿=öYýÿ¨ÿ6qþ‡†’þ?4“õ¿X­Oiþ9oë¿ÚÓÿðœAÿ
-llú?§ûŸÔÿW%ûÿ²úÿz„þÿ7"Wÿ»õÿ¼Ï.¼õ¿²Ýþ5ÖL«ÿ¸ÿSqþ÷åcªÿlóûóß©Kä¿HHEÇ``Lúçüï‹ÿlLú÷ÌfþGùϱ1éŸó¿/ž
-凯¤Îÿ¾xðÿÆÆ¤¿ügæÿD”4 ¡±­ÿsþ÷¥s°“zÿÿد¸‰\(&ýÏ6ÿ×Îÿ‘ÿ%¡.®9"0ýŸ=8(<×ÿ1œÿˆÿÃSýóŸéÿ4ÿ“þýœÿ©ÿGlLúŸËÿqðþ—º„þ%|è7=·€¸˜ôïéÿ`ýGÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÆÿ-üçØØÖÿýè_“ƒü·P˜ôï˜ÿÜâÿ–@ÿƒþç_>¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ?ç_<ìÿÄÆ¤ÏüÞÿ$ÿ“þ9ÿûâI(?4&ýsþ÷ÅÃúolLú÷Ëÿ¨9ÿCCÉôohlëÿœÿ}é898ÿ#&ýÏæÿØÏÿoð‹÷ÿPoXú/]ýœÿ#ÁTÏüú?	äÄÆ¤Ïüô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ýœÿ(çlLú÷ôàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽþô/áÀÉAþG(Lú÷ÌÿÀÿ-þ?6Yú¯ºs-/~¶ÿ£è¶ú/Ú‚ó_$äÖ³zX}]-ä\yõîÿUÝâÿ‘0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þMCþ‹†¼þÿð‡+úÿ‹f²þyúÅ—~yws{ì3Þîÿ«=ý·‰ó?4t(74“õ¿X­Oiþ9ùúOç¿kàÉ›þÏéþ'õÿUÉú¿„éýÿÕ–?¯èÿ/›\ýïÖÿó>c¸@òÖÿʶ!ÿW´úû?•ËüßXÿTÔ‰ú+0Õ¶ù¿v¿þä?‹HEÇ``Lú÷˜ÿõßµþ	øÿccÒ¿GþóÓóŸõ	ä?ÇÆ¤ù¿QÿuÁù_*”“þ=æÿFý·ìÿ‰Àÿ“þ=òŸwïÿuÁùOJ€ÐØÖÿæÿFý7]"ÿ]‹-ýüØÿ¿pLúŸmþ¯9Ð?ùÏêâš cÐáêÿ(ñ(0Õß#ÿùiÿ‡þOùϱ1éßÓÿþ%àÿˆIÿsù?ÞÿRW£	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý{ú?ðIÀÿ“þ=òŸwïÿ©Ãÿ-üçØØÖÿýüú—ðËÉ1ñü—IÿùÏ?õÏùèÿccÐrõÔø?˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLú÷ôÐÿKH(?4&ý»ù?ºaIý`ý76&ý{æÿ)¡dú74¶õÇüò$
 ü»“#÷Îÿø0é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéêÿàü	¦ú{æÐÿI ÿ#6&ý{ú?пü±1é6ÿÇáó¿Fÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿gþþ/	ø?bcÒ¿gþþo	äÄÆ¶þï˜ÿþ%¼°tLøÿÇecÒ¿cþùßèÿc“§ÿæ\ËÇ…Ÿïÿh·ú/Ú‚ü	¹õ߬V_WË9B^ý·^UuÓR“ë¿ù¼¾ëooï?m¿µåÉo&¯ÿêß4‰ù	Öþ¿¢ÿ¿h&ëÿ—÷ç¡_|é—w7÷·Ç>ãíþ¿ÚÓ›û”šÉú_¬Ö§4ÿœ|ý'æ?Dð䎍Mÿçtÿ“úÿª$ÿMÂôþ¿ÚògEÿÙäê·þŸ÷Ã’7ÿU¶Û¿Æú€iõ÷*Îÿ¾|LõŸmþoþ;u¬ÿiHEÇ``Lúçüï‹ÿlLú÷Ìfý_ùϱ1éßeþ¯ÝÍÿÑÿK¨P~hLúw™ÿkwó<ÿ%àÿIÿ~ùÏÌÿ‰(i Bc[ÿçüïKçÅ–~þìÿ_8&ýÏ6ÿ×ìõÿÌÿ©¨‹kN€ŒAÿ…ÿ£ý‰ù/	¦ú»ä?õï*üßÈŽIÿ.þvô´è_þØ˜ô?—ÿãàý/u	ýKøÐoznq1éßÓÿÁúžÿ±1éßÓÿÿKþØ˜ôï’ÿÜîüÌK ÿ96¶õÿÇnÿ·Bÿ~99&þ€ÿã²1éß%ÿy§ÎÒ@ÿƒþç_>¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ?ç_<ìÿÄÆ¤ÏüüÈÿˆIÿœÿ}ñ$”“þ9ÿûâaý76&ýûålÿ‰þ”Lÿ†Æ¶þÏùߗο;9ràüß“þgóìçÿ7þO
-ãþê
-‹Aÿ¥kþG‡ÿC©þžù¬ÿH ÿ#6&ý{æ 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôï™ÿÿSÏÿؘôï™ÿÁú¯ü±1éß3ÿÿ§ò?bc[ÿwÌÿ@ÿ^X:&ü€ÿã²1éß3ÿƒù/	ôÿ±ÉÒÝžkùxÁ ð³ýÛ^`ûPiò?$äÖ³zX}]-ä\Yõ/¶¯ªê–úK˜\ÿÍçõ]{óxÿiû­-O~3yýÿPÿ¦aÿOÃôþ¿~þ'4Êdýÿòþ<ô‹/ýòîæþöØg¼ÝÿW{úoSÍü—Æ¿b3Yÿ‹Õú”染¯ÿí?Øÿ—РÿÐØôN
 ÷?©ÿ¯Jæ?%úÿ-Ö5ýÿE“«ÿÝúÞgHÞú_ÙÖ
-ë?
-¦ÕÜÿ©\æÿÆúsþ·
-Sýg›ÿk÷ëOþƒˆTtL Ƥù¿Qÿœÿ­ÿlLú÷ÈþùüO¬ÿI ÿ96&ý{ÌÿúçüoʍIÿó£þ9ÿ[þߨ˜ôï‘ÿ¼{ÿgþODIÛú¿ÃüߨÎÿVñbK?ë‡aëÿï¥cÒÿló́þÉÿÓP×X€cÐáêÿ¨ñ(0Õß#ÿùÉÿAÿ'üçØ˜ôïéÿ@ÿðÄÆ¤ÿ¹üï©Kè_‡~Ósˆ‹IÿŽþ†õ	<ÿccÒ¿§ÿÿ—ü±1éß#ÿùÉÿÿ[ùϱ±­ÿ;ú?п„§ÿ“þ=òŸŸüø¿%ÐÿÇÆ ÿäêÿàüo	¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ¿§ÿƒý	ìÿÄÆ¤ÏüÞÿ$ÿ“þ=ó?èÿ%$”“þ=ýø?%°þ“þ=ó?Èÿ”P2ýÛú¿£ÿƒü	O5àü˜˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tõpþSý=ó?èÿ$ÿ“þ=ýè_þØ˜ô?›ÿãðùŸÐ¿„ß7ëï‹á¶Í  &ý{æpþ£žÿ±1éßÓÿÿKþØ˜ôï™ÿÿ[ù±±­ÿ;ú?п„–ެÈÿø0éß3ÿÿ·úÿØdé¿<;òãƒÂÏöÛ¿WíöðÈ­ÿfõ°úºZþȹòê¿ý󪪛DýL®ÿæóú®¿½y¼ÿ´ýÖ–'¿™¬þ¬ÓT¬ÿK˜Þÿÿú¡¢ÿ¿\&ëÿ—÷ç¡_|é—w7÷·Ç>ãíþ¿ÚÓ›ÈÒ€rc3Yÿ‹Õú”染¯ÿÔ±þ¯ü‡ØØôN÷?©ÿ¯Jæ¿$˜ûÿj„»È…’«ÿÝúÞgWJÞú_ÙÖ¬ÿH˜Vÿqÿ§r™ÿëÏùß*LõŸmþ¯Ý¯W‘ÿ"!€1éßcþoÔ?ç«Àÿ“þ=òŸŸžÿìÿI ÿ96&ý{Ìÿúçüo¬ÜÅÆ¤ù¿Qÿœÿ­ÿolLú÷ÈÞ½ÿ3ÿ'¢¤mýßaþoÔ?ç«xmK?ó‡ªÂÿ{±˜ô?Ûü_s òÿ4ÔÅ5'@Æ ÿÂÕÿQáÿP`ª¿GþóÓþýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥ŽùO
-úMÏ- .&ý{ú?Xÿ‘Àó?6&ý;ú?Zü_ðÄÆ¤üçŸþÿ·òŸcc[ÿ÷ó”è_Â'Ç´È»`Lú÷È~òàÿ–@ÿƒþσ~¾ÿ£Ýù?Zü
-LõŸÍÿÑí׿KÜÿ%”mºª±€„ŤOÿû?Øÿ‰Iÿ.ù-þ!äÄÆ¤Oÿë¿ÈÿŽIÿžù<ÿ%°þ“þ]ò?Ú]þïÿJ¦Cc[ÿwÌÿ ÿGÂ'Ç”8ÿã¢1é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéšÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷ô 	ø?bcÒÿlþÃçBÿ>~{ܬ¿/†Û6w‚€˜ôïéÿàüG	<ÿccÒ¿gþþ/	ø?bcÒ¿cþç?i ÿ#6¶õGÿú—ðš¥#óò?.“þ=ó?ðK ÿM–þ»ê\ËÇ…Ÿíÿ(ÓVÿE[Ôø?äÖ³zX}]-ä\YõïÿU=Üÿ©¿?“ë¿ù¼¾ëooï?m¿µåÉofBÿß$Öÿ%ä·ýåk¿¢‰¸P&ëÿ—÷ç¡_|é—w7÷·Ç>#¿ÿoSÍû¿ÎŽÍdý/VëSšÎÛú?Üÿ/пžÜ±±éÿœîRÿ_•ÌIÈêÿËúÿ߈\ýïÖÿó>c¸@òÖÿʶîXÿQ0­þãþÏÙ‹ÁùõOÅðþGýý1Õ¶ù¿v¿þä?ŠHEÇ``Lú÷˜ÿõßµø5àÿIÿùÏOÏÿ„þÿ“þ=æÿFý×óÿØþ‹Iÿó£þÛŽüW
-øccÒ¿Gþóîý?uìÿIÀÿÛú¿Ãüߨÿ¦«ðÿJ8ØÉëöÿ+LúŸmþ¯9Ð?óÿêâš cÐáéÿàüo
-¦ú{ä?ÿÜÿ¡ÿÓ@þslLú÷ô 	ø?bcÒÿ\þƒ÷¿Ô1ÿ­áC¿é¹ÄŤOÿë?xþÇÆ¤Oÿþ/	ø?bcÒ¿Gþó“ÿÿ·òŸcc[ÿwô 	NòßBaÒ¿GþóOý·ø¿%ÐÿÇÆ ÿäšÿAþ¯SýgótÌÿ¾e›®j, a1éßÑÿÿWû?±1éß3ÿƒ÷?	äÄÆ¤Oÿý¿„„òCcÒ¿§ÿÿ§ÖccÒ¿gþùŸJ¦Cc[ÿwôÿ#áÀÉÁù¡0é6ÿÇ~þƒÿ[ĸÿ‡zÃbÐéšÿÁù?Lõ÷Ìÿ ÿ“@þGlLú÷Ìÿ@ÿðÄÆ¤ÿÙü‡Ïÿ„þ%|üö¸Y_·mî1éßÓÿÁùxþÇÆ¤Oÿþ/	ø?bcÒ¿gþþo	äÄÆ¶þïèÿ@ÿœä„¤Ïüüßèÿc“¥ÿº9×òñ‚Aáçû?¶¿¯Š¶ ÿCBný7«‡Õ×ÕòGÎ…Uÿb
 û÷ªªn©¿„Éõß|^ßõ·7÷Ÿ¶ßÚòä7“Õÿõoòÿ5ä÷ÿO?Tôÿ¿“õÿËûóÐ/¾ôË»›ûÛcŸñvÿ_íé¿M‰ù/	
-Ê
-Ídý/VëSšN¾þë¡%DÿÐllú?§ûŸÔÿW%þ?	†þËŸUEÿÑäê·þŸ÷Ã’·þW·ÖL«ÿ¸ÿSùÌÿ»ù¿†ú+0Õ¶ù¿v¿þÌÿ‰HEÇ``Lúw™ÿ+vóø$àÿIÿ.ùÏ»çbýOùϱ1éßeþ¯×ÿöÿ$T(?4&ý»Ìÿ»ù?æ%àÿIÿ.ùÏç)i Bc[ÿ÷˜ÿ+vóä¿Jx±¥Ÿõðõÿ÷Ò1é¶ù¿æ@ÿÌÿi¨‹kN€ŒAÿ…«ÿ#áÿP`ª¿KþóOÿýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý;ú?Zü_ðÄÆ¤—üçŸþüßÈŽmýßÑÿþ%<Õ€ü·˜˜ôï’ÿüÓÿÿ[ýlúO®þÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿŽþ–þ_BBù¡1éß3ÿÿ§ÖccÒ¿gþùŸJ¦Cc[ÿwôÿ#ᩜÿ“þgóìçÿ7ø¿EŒû¨7,ý—®þÎÿ‘`ª¿gþýŸò?bcÒ¿§ÿýKÀÿ“þgó>ÿú—ðñÛãfý}1ܶ¹ĤÏüΔÀó?6&ý{ú?ðIÀÿ“þ=ó?ðK ÿ#6¶õGÿú—ðÂÒ‘õù¿&ý{æàÿ–@ÿ›<ýwçZ>^0(<ÏÿQ´ç¿HÈ­ÿfõ°úºZþȹ²ê_lÿ^UÕ-õ—0¹þ›Ïë»þöæñþÓö[[žüf²úÿ±þM“ðJ˜Þÿ_ÑÿÿLÖÿ/ïÏC¿øÒ/ïnîo}ÆÛýµ§ÿ6Õ¼ÿKèPnh&ë±ZŸÒüsòõ_„þ4è?46ýŸÓýOêÿ+ò¿5úÿ-^]Ñÿ_4¹úß­ÿç}Æpä­ÿ•mMþ¯„iõ÷*×ù¿Žú+0Õ¶ù¿ýùoòŸU¤¢c00&ý{Îÿáÿ—€ÿ?6&ý{æ?³þ'üçØ˜ôï™ÿÌþŸ„
-凯¤Ïù?æÿ%àÿIÿžùÏœÿ$¡¤mýßqþüw	/¶ô³~¶þñÿ^:&ýÏ6ÿאÿüNÔÅ5'@Æ ÿÂÕÿÑàÿP`ª¿gþ3ýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{æ?³þ#çlLú÷ôàÿ’€ÿ#6&ý{æ?ãÿ–@þsllëÿŽþô/á©ä¿ÅĤÏügüßèÿccÐòôÔþ¦úÏæÿè˜ÿ}'Ê6]ÕX@ÂbÒ¿§ÿƒý	ìÿÄÆ¤ÏüÞÿ$ÿ“þ=ó?èÿ%$”“þ=ýø?%°þ“þ=ó?Èÿ”P2ýÛú¿£ÿƒü	O5àü˜˜ô?›ÿc?ÿ¿Áÿ-bÜÿC½a1è¿tÍÿàü	¦ú{æÐÿI ÿ#6&ý{ú?пü±1é6ÿÇáó?¡	¿=nÖßÃm›;A at Lú÷ôpþ£žÿ±1éßÓÿÿKþØ˜ôï™ÿÿ[ù±±­ÿ;ú?п„–ެÈÿø0éß3ÿÿ·úÿØdé¿9Ûòñ‚Aáçû?Ê­þ‹¦ëð(È­ÿfõ°úºZþȹ²ê_lÿ^UÕ
-þ	“ë¿ù¼¾ëooï?m¿µåÉo&«ÿëß4ä¿h˜Üÿ_½øšˆe²þyúÅ—~yws{ì3²úÿQÿmbÿ_CÉ`h&ë±ZŸÒüsÞÖµ§ÿÔqþ»žÜ±±éÿœîRÿ_•¬ÿK˜ÐÿcŸWôÿ¿¹úß­ÿç}Æpä­ÿ•m]±þ£`ZýÇýŸÊgþ¯ÜÍÿ%ê¯ÀTÿÙæÿÚýúsþ·ˆTtL Ƥ—ù¿r7ÿÇú¿–ÿbcÒ¿KþóÏç?ùoÈŽIÿ.óåîüoÖÿ%T(?4&ý»Ìÿ•ãüç¿hÀÿ“þ]òŸËÝüùJ€ÐØÖÿ=æÿÊÝüùžjëÿeÿÿ÷À¤ÿÙæÿšýsþ·†º¸æˆÀô_¸ú?Jü
-LõwÉþ¹ÿCÿ'üçØ˜ôïéÿ@ÿðÄÆ¤ÿ¹üï©Kè_‡~Ósˆ‹IÿžþÖ$ðüIÿžþü_ðÄÆ¤—üçÿ£Åÿ-üçØØÖÿýü%ú—ðTòßbbÒ¿KþóNÿ
-þo	ôÿ±1è?¹ú?jü
-LõŸÍÿÑ1ÿûN”mºª±€„ŤOÿû?Øÿ‰Iÿžù¼ÿI ÿ#6&ý{ú?èÿ%$”“þýþO	¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þï˜ÿAþ„§pþGLLúŸÍÿ±Ÿÿßàÿ1îÿ¡Þ°ôöaàƒÂ³ýœÿ#ÁTÏüú?	äÄÆ¤Oÿú—€ÿ#6&ýÏæÿ8|þ'ô/áã·ÇÍúûb¸ms'ˆIÿžþΔÀó?6&ý{æàÿ’€ÿ#6&ý{æàÿ–@þGllëÿŽùè_ÂS
-Èÿˆ‰IÿŽùäk ÿMžþ«s-/žçÿ(Úíáÿ[ÿÍêaõuµü‘s!dÕ¿Øþ½ªª‡ü'êïÏäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7M"ÿAÂÔþ¿|ù'4Êdýÿòþ<ô‹/ýòîæþöØg¼ÝÿW{úoSÂÿ-õ¿ØLÖÿbµ>¥ùçäë?uûØÿMÿçtÿ“úÿªÄÿ#aBÿ_––[èÿrõ¿[ÿÏûŒáÉ[ÿ+Û:±þ£`ZýÇýŸ³ƒóëOþ³
-Sýg›ÿÛŸÿN]Åû¿„TtL ƤòŸ/ÞÿccÒ?ùÏùϱ1éŸüç‹§Bù¡1éŸüç‹ÿolLú'ÿùâ)i Bc[ÿ'ÿùÒyªA¶ÿ—ýÿß“þg›ÿkçÿðÿH¨‹kN€ŒAÿùÏ—©þä?_<ä?ÇÆ¤òŸ/ü±1é.ÿÇÁûùÏ*>ô›ž[@\Lú'ÿùâáù“þɾxðÄÆ¤òŸ/ò_bc[ÿ'ÿùÒyªùo11éŸü狇þ?6ý'WÿGƒÿC©þ³ù?:æ߉²MW5°˜ôïéÿ`ÿGû?±1éß1ÿ#ñþ'üØ˜ôïéÿ ÿ—P~hLú÷ÌÿÀÿ)õߨ˜ôï™ÿAþ§„’éßÐØÖÿó?Èÿ‘ðTÎÿˆ‰Iÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžùø¿$àÿˆIÿŽùœÿ¤üØØÖÿýè_ÂS
-Èÿˆ‰Iÿžùø¿%ÐÿÇ&KÿgŸøò’Aágû?Ší߫Ц¬ñ(Ȭÿfõ°úºZþȺòê¿ýóªó©¿?Së¿ù¼¾ëooï?m¿´åé/&«ÿëßÔ5ó¦öÿ/`áR™ªÿ_ÖŸ‡~ñ¥_ÞÝÜßýŒ·ûÿjOÿmU³ÿ'åÆfªþ«õIÍ?'_ÿ©+˜ÿÀÊ]lLú?«ûŸÔÿ—ùoÌý9Â]äBÉÔÿnù?ó3†+%oý¯lÖ$Lªÿ¸ýS}ä׿þõ`©ÿ™ãyóßcýS[³ÿ'!€±èÿÌñ¿Ì÷ÿAÿ]Óáÿ•@ç‹þÏÿËË~zþ³ÿ'üçØXôæøß„çê:æ%T(?4ýŸ9þ—çÿõßvëÿðÿÆÆ¢ÿ3Çÿ&è¿Kìÿk(i BcZÿ?oü/sÿÐÓ&ü^ÛÒÏþýÿ‹Å¢ÿ3ÇÿÎxþ7ûúï
-æ%ÔÅ5'@fºþÏžëÿ¨[ü
-,õŸÏÿQìÿÐÿi ÿ96ý»ú?пÞÜbcÑÿlþƒ÷¿Ô2ÿ©áC¿é¹ÄÅ¢Wÿë?xþÇÆ¢Wÿþ/	ø?bcÑÿ|þƒ÷ÿTàÿ–@þslLëÿžþô/aÏÉAþ[0,úŸÏÿ±ßÿ7m‡ÿ[ýl¦ë?ùæ”ø?Xê?Ÿÿ£cþ÷(ÛtUc	‹EÿŽþÿ¯ÞÜbcÑ¿kþïÈÿˆEÿ®þú		凯¢WÿþO	¬ÿÆÆ¢×üò?%”Lÿ†Æ´þïéÿ ÿG¾“ƒó?baÑÿ|þýüÿÿ·ˆqÿõ†eºþKßüÎÿ‘`©¿kþýŸò?bcÑ¿kþú—À›[l,úŸÏÿqøü¯Ñ¿„ß7ëï‹á¾Í  ý»ú?8ÿQÏÿØXôïêÿÀÿ%ÿGl,úwÍÿÀÿ-üØ˜Öÿ=ýè_Âk–Žüx‹¸T,úwÍÿÀÿ-þ?6YúOÕÙžç
-?ßÿÑmõ_´Ãû?þrë¿Y=¬¾®–?r.„¼ú׃ÿ§njê¯`rý7Ÿ×wýíÍãý§í·¶<ùÍäõÿCý›&‘ÿ ÁÖöÿúšˆe²þ™úÅ—~yws{ì3Þîÿ«=ý·)áÿ–@û›Éú_¬Ö§4ÿœ|ý“ÿ ‚ãßccÓÿ9Ýÿ¤þ¿*ñÿH˜ÞÿcŸnKGÿÉä귐÷Ã’·þW¶œÿ¬aZýÇ
- ³ƒó럊ÄüŸSýÏ |»ÿo÷ëß±þ§!€1éÿÌÀ¼÷ÿnÌn™ÿ‘€s'6&ýŸ9 ø¦þ˃þ¯cý_ùϱ1éÿÌÀüç]´¬ÿI`ý?6&ýŸ9 ø¶þÓžþ[öÿDàÿIÿg æë¿Køÿ5”4 ¡±­ÿŸ7 ø–þ˃÷ÿ¦«˜ÿ“ðbK?ó‡ÿïÅcÒÿ™€o?ÿ›ý·œÿ ¡.®9"0ý®þÿ‡SýgóÔû?ôÈŽIÿžþô/ÿGlLúŸËÿqðþ—:òŸ4|è7=·€¸˜ôïèÿhXÿ‘Àó?6&ý{ú?ðIÀÿ“þgó¼ÿ§ÿ·òŸcc[ÿwô 	O5 ÿ-&&ýÏæÿØïÿ›®Åÿ-þ?6ý'OÿG]àÿP`ªÿlþŽùßw¢lÓU$,&ý{ú?Øÿ‘ÀþOlLú÷ÌÿàýOù±1éß3ÿƒþ_BBù¡1éßÓÿÿS뿱1éß3ÿƒüO	%Ó¿¡±­ÿ;ú?Èÿ‘ðTÎÿˆ‰Iÿ³ù?öóÿüß"Æý?ÔƒþK×üÎÿ‘`ª¿gþýŸò?bcÒ¿§ÿýKÀÿ“þgó>ÿú—ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýKxaéÈýü‹Ç¤Ïüüßèÿc“¥ÿúú\ËÇ…Ÿíÿ(Ë­þ‹¶Àÿ!!·þ›ÕÃêëjù#çBȪ±ý{UU·œÿ#arý7Ÿ×wýíÍãý§í·¶<ùÍäõÿCý›¦Æÿ)arÿ_½øšˆe²þyúÅ—~yws{ì3Þîÿ«=ý·©æý_Â5Ê
-Ídý/VëSšN¾þëÁŒþð䎍Mÿçtÿ“úÿŠüo
-úÿªús[úÿß‚\ýïÖÿó>c¸@òÖÿʶ)YÿQ0­þãþOå2ÿ7Ö?uEý˜ê?Ûü_»_òE¤¢c00&ý{ÌÿúïZò4àÿIÿùÏOÏæÿ$ÿ“þ=æÿFý×
 þ?
-ʍIÿó£þÛŽüW
-øccÒ¿Gþóîý¿.˜ÿ—PÒ „ƶþï0ÿ7ê¿é*ΓðTƒ\ÿ/ûÿ¿&ýÏ6ÿ×èŸü
-uqÍ	1è¿põpþ·Sý=òŸîÿÐÿi ÿ96&ý;ú?8ÿ[þØ˜ô?—ÿãàý/u	ýKøÐoznq1éßÓÿÁúžÿ±1éßÓÿÿKþØ˜ôï‘ÿ¼{ÿOþo	ä?ÇÆ¶þïèÿ@ÿžj@þ[LLú÷Èþ©ÿÿ·úÿØôŸ\ý	ÿ‡SýgótÌÿ¾e›®j, a1éß3ÿƒý	ìÿÄÆ¤ÏüÞÿ$ÿ“þ=ýôÿʍIÿžþüŸXÿIÿžùäJ(™þ
-mýßÏÿ‘Èÿ‘ðTÎÿˆ‰Iÿ³ù?öóÿüß"Æý?ÔƒþKWÿçÿH0Õß1ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ5ú—ðñÛãfý}1ܶ¹ĤOÿç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿cþú—ðTò?bbÒ¿gþþo	ôÿ±ÉÒ{¶åãƒÂÏ÷T[ýmÿCBný7«‡Õ×ÕòGÎ…Uÿbû÷ªªn:ê¯`rý7Ÿ×wýíÍãý§í·¶<ùÍdõÿcý›&±þ/aZÿ_íÿ	MÄ…2Yÿ¿¼?ýâK¿¼»¹¿=öo÷ÿÕžþÛDþ“†k”šÉú_¬Ö§4ÿœ|ý§Žõ
-ä?ÄÆ¦ÿsºÿIýU2ÿ%aBÿÏüçoD®þwëÿyŸ1\ yëåp»`ýGÀ´úû?•Ïü_5Îÿ
-ïÔßSýg›ÿk÷ëÏþ¿ˆTtL Ƥ—ù¿jwþ7ý¿üÿ±1éß%ÿ¹bþ_ùϱ1éßeþ¯çÿü*”“þ]æÿªÝüù¯ðÿÆÆ¤—üçj7ÿ‡ÿOBIÛú¿Çü_µ›ÿãü7	O5ÈôÿV{ÂMäB1é¶ù¿æ@ÿœÿ¤¡.®9"0ý®þÎÿ–`ª¿KþóOÿýŸòŸccÒ¿§ÿýKÀÿ“þçò¼ÿ¥.¡	úMÏ- .&ý{ú?Xÿ‘Àó?6&ý;ú?ÈÓ€ÿ#6&ý»ä?ÿôàÿ–@þsllëÿŽþô/á©ä¿ÅĤ—üçŸþüßèÿccÐrõ´ø?˜ê?›ÿ£cþ÷(ÛtUc	‹Iÿžþö$°ÿ“þ=ó?xÿ“@þGlLúwô´ôÿÈÿŽIÿžùø?
 %°þ“þ=ó?Èÿ”P2ýÛú¿£ÿƒü	O5àü˜˜ô?›ÿc?ÿŸó¿UŒû¨7,ýŸ}ø ðlÿçÿH0Õß3ÿƒþOù±1éßÓÿþ%àÿˆIÿ³ù?Ÿÿ	ýKøøíq³þ¾nÛÜ	bÒ¿gþç?Jàù“þ=ýø¿$àÿˆIÿžùø¿%ÿÛú¿£ÿýKxªù11éß3ÿÿ·úÿØd鿩ϵ|¼`Pøùþr«ÿ¢Ý¾àÿ[ÿÍêaõuµü‘s!dÕ¿Øþ½ªª‡ü'êïÏäúo>¯ïúÛ›ÇûOÛomyò›ÉêÿÇú7M"ÿA´þ¿(júÿß‚Éúÿåýyè_úåÝÍýí±ÏÈêÿGý·©fý_B‰tC3Yÿ‹Õú”æŸó¶þ«=ýOô¯€ýÿØØôN÷?©ÿ¯Jü?&ôÿuýg½…þÿw Wÿ»õÿ¼Ï.¼õ¿²­ÖL«ÿ¸ÿSùÌÿ•ä?1Õ¶ù¿v¿þ]Åü·„TtL Ƥ—ù¿’üg!¼ÿÇÆ¤—üç’üg!ä?ÇÆ¤—ù¿’üg!ʍIÿ.ó%ùÏBðÿÆÆ¤—üç’üg!%
- at hlëÿó%ùÏBžjíÿeÿÿ·À¤ÿÙæÿšý·ø$ÔÅ5'@Æ ÿÂÕÿAþ³Sý]òŸKòŸ…ÿ“þ=ýè_þØ˜ô?—ÿãàýügúMÏ- .&ý;ú?ÈÖÀó?6&ý{ú?ðIÀÿ“þ]òŸKòŸ…ÿÛú¿£ÿýKxªùo11éß%ÿ¹$ÿYýlúO®þÿ‡SýgótÌÿ¾e›®j, a1éßÓÿÁþöbcÒ¿gþïÈÿˆIÿžùôÿʍIÿžþüŸXÿIÿžùäJ(™þ
-mýßÑÿAþ„§pþGLLúŸÍÿ±Ÿÿßàÿ1îÿ¡Þ°ô_ºú?8ÿG‚©þžùôÈÿˆIÿžþô/ÿGlLúŸÍÿqøüOè_ÂÇo›õ÷ÅpÛæN“þ=ó?8ÿQÏÿؘôïéÿÀÿ%ÿGlLú÷ÌÿÀÿ-üØØÖÿýè_ÂS
-Èÿˆ‰Iÿžùø¿%ÐÿÇ&KÿWç:>^2(ü|ÿÇöÏ«¢©8ÿEBfý7«‡Õ×ÕòGÖ…Uÿbû÷ªjûOê¯`jý7Ÿ×wýíÍãý§í—¶<ýÅdõÿcý›ºaÿOÂÔþÿù%ýÿÅ2Uÿ¿¬?ýâK¿¼»¹¿=úo÷ÿÕžþÛŠü
-ìÿÅfªþ«õIÍ
 ?'_ÿ©+Ùÿ—Àñï±1éÿ¬îRÿ_&æ¿%˜ûÿr„»È…’©ÿÝòægWJÞú_Ù´äÿJ˜Tÿqû§:û2ȯÕµ¬ÿI°ÔÿÌñ¿Ìùï¡þ©mðÿIHEÇ``,ú?sü/ÓÿWóïÿèÜccÑÿ™ã™ùÏ?Ÿÿø$ÿ‹þÏÿ›ðü¯‡?BÿXÿEÿgŽÿeúëqþ¯Äÿ#ÿol,ú?süo‚þ»Tâÿ‘PÒ „Æ´þÞø_æüß ÿ¦­Ùÿ—ðÚ–~æ%þßËÅ¢ÿ3ÇÿÎxþ7ûúïJòŸ%ÔÅ5'@fºþWÿÇàÿÇÿᏥþóù?êƒýú?
-ä?ÇÆ¢Wÿú—€ÿ#6ýÏæÿ8xÿKmƒþ%|è7=·€¸Xôïêÿ`ýGÏÿØXôïêÿÀÿ%ÿGl,úŸÏÿqðþŸJüßÈŽiýßÓÿþ%¼prLüÿÇåbÑÿ|þýþ¿é
-üßèÿc3]ÿÉ7ÿ£Äÿ¡ÀRÿùüó¿ïDÙ¦«HX,ú÷ôàÿÕÀþOl,úwÍÿàýOù±±èßÕÿAÿ/!¡üÐXôïêÿÀÿ)õߨXôïšÿAþ§„’éßИÖÿ=ýäÿHxéä˜ðç\4ýÏçÿØÏÿoð‹÷ÿPoX¦ë¿ôÍÿàü	–ú»æÐÿI ÿ#6ý»æ 	¼¹ÅÆ¢ÿùü‡ÏÎ×ðñÛãfý}1Ü·¹Ä¢Wÿç?Jàù‹þ]ýø¿$àÿˆEÿ®ùø¿%ÿÓú¿§ÿýKxÍÒ‘ûù—‹Eÿ®ùø¿%ÐÿÇ&KÿÝõÙžç
-?ßÿ‘¶ú/Úáýÿ‡?¹õ߬V_WË9BVý·7þ¢ªê® þ
-&×óy}×ßÞ<ÞÚ~kË“ßLVÿ?Ö¿ièÿ5dwûW¯þŠ&âB™¬ÿ_柇~ñ¥_ÞÝÜßûŒ¬þÔ›jæ¿$”
-ҍÌdý/VëSšÎÛú¯öô_‘pè_ ûÿ±±éÿœîRÿ_U¬ÿIÈêÿ¯Fèÿ#rõ¿Û ÈûŒáÉ[ÿ+[ÎÖ0­þãPuîe_ÿTÔÌÿI0ÕÿÌÀ·ûÿv¿þ]Mþ«„TtL Ƥÿ3 ³ÞÿGýwmÇüÞÿccÒÿ™€oê¿<èÿºšü	ä?ÇÆ¤ÿ3 óŸÿuÑ1ÿ'¡Bù¡1éÿÌÀ·õŸöûòßEàÿIÿg NЍÿ_CIÛúÿy€oé¿<xÿoº„ÿWÂÁNþ›þ_öÿ'Lú?s ðíçs ÿÿŸ„º¸æˆÀô_¸ú?ü
-LõŸÍÿQìÿÐÿi ÿ96&ý{ú?пü±1é.ÿÇÁû_ê˜ÿÖð¡ßôÜâbÒ¿£ÿ£eýGÏÿؘôïéÿÀÿ%ÿGlLúŸÍÿqðþ_ø¿%ÿÛú¿£ÿýK8prÿ
-“þgóì÷ÿM×áÿ–@ÿƒþ“§ÿ£!ÿW‚©þ³ù?:æ߉²MW5°˜ôïéÿ`ÿGû?±1éß3ÿƒ÷?	äÄÆ¤Ïüú		凯¤OÿþO	¬ÿÆÆ¤Ïüò?%”Lÿ†Æ¶þïèÿ ÿG“ƒó?BaÒÿlþýüÿÿ·ˆqÿõ†Å ÿÒ5ÿƒó$˜êï™ÿAÿ'üØ˜ôïéÿ@ÿðÄÆ¤ÿÙü‡ÏÿýKøøíq³þ¾nÛÜ	bÒ¿§ÿƒó%ðüIÿžþü_ðÄÆ¤ÏüüßÈÿˆmýßÑÿþ%89Èÿ…Iÿžùø¿%ÐÿÇ&Kÿ×ç:>þÿíÝnãØ’¥ïÏSäÔ¹7ä¾;ÄA'0Ó »1—SV)…ô±YÙƒ|û!)Û-‰N‹›Áˆ,9¾ƒ)M¦æ¨J[‹Æ^±ö)ÂÇû?Ú÷…¬ø?LH\ÿýöq{¿]ÿLú!$­Ö­(:ÿë¯ÏÔõßÛ­š»Û§Í×öK[¿ÿÅ$Õÿýú—EÉþŸ	Éõÿ/õÿÕ2Uÿ¯ÖŸÇfù½Y¯n7w¿üŒËõ8ÓÕ> P®o¦ê¹Ý½«ùcÒõëÀþ¿	ÿî‘þGUÿ“êÿ<2ÿm‚¸þ=\E®”DýÚÿ‰ŸÑýRÒúyYÓÿ1aÒú÷Û?aôÏ }ýC]ÖßÉúÿKœÿîëÿªdÿß„˜ÕL :F¢ÿ‘ã‰þ¿²ŸÿËÉ0ÿ¿o$ú9þ—˜ÿü|ÿgÿÏòŸ}#ÑÿÈñ¿	÷ÿ‚üW#èÜùF¢ÿ‘ã‰þß~ÿ¿Îéÿ›€ÿ×7ýÿ› ÿ:²ÿoCNàQÿÜø_âü_¿ÿ_øÿLxkK?ñEÀÿ{½Hô?rüoÄý¿<ם“ÿaB‘Ýp„c¦ë?Óõpþ·	’õŸÏÿQö¨ÿl ÿÙ7ýkú?2ôoþßHô?›ÿcðü+æ?møÜì.~‘è_ÕÿAÿÇîÿ¾‘è_ÕÿÿËü¾‘è>ÿÇàù?æø¿M ÿÙ7¢þ¿¦ÿý›pâä˜øÿÇõ"Ñÿ|þóú¿¬3üß&Pÿûfºþ£®ÿ#âÿ°@²þóù?jæy·Hô¯šÿÁþ	ìÿøF¢ÕüžÿL ÿÃ7ý«ú?¨ÿMˆ(ß5ý«ú?ðš@ÿ×7ý«æÿiBÎô¯kDýEÿGIþ	§NŽ	/8ÿ㪑è>ÿÇyþ‰ÿÛˆ~ÿõºeºþs]ÿçÿ˜ YÍüê?ÈÿðDÿªþôoþßHô?
 Ÿÿcxÿ¯Ð¿	_žö»ËîºÍ•À!ý«ú?8ÿÑîÿ¾‘è_ÕÿÿËü¾‘è_5ÿÿ·	äøFÔÿ×Ìÿ@ÿ&¼eéH}AþÇõ"Ñ¿jþþo¨ÿ}“¤ÿ¢íù8¦SøxÿGû÷!«2Î1!uý÷ÛÇíývý3凐´þYïÿ)8ÿdžÉë¿ÿ¶[5w·O›¯í·¶~÷›Iªÿûõ/ˈÿÓ„ée~ü'WÊdý¿š›å÷f½ºÝÜýê3.×ÿáLÿUŒ<ÿ›@ùï›Éú_nwïiþ˜týǺæùß„ý»F¦ÿ1Õÿ¤ú?°ÿoƒ þoù#Ï©ÿ¯šTý6 Ò>£û¤õÿòª ÿׄiëßo …±?ƒôõY×ÿaýõ­ÿÈÀËõu¾þuàþoBÌj& #ÒÿÈÀ¤çÿ^ÿuUáÿ7ÿ¿oDú9 xQÿù þ«ý?ÈöHÿ# ÓïÿEFþ»
-$·ùF¤ÿ‘€—õÏô_Õ5óÿ&àÿõHÿ# Óõ_· èß‚œÀ5²þÿ¸ÀKúÏÏÿeMþ»
-'[úI/º­ü¿×ŽHÿ# /ßÿˁþ+üÿ&Ù
-'@8F ÿLÕÿðX ZÿÙüÅpÿ‡úÏòŸ}#Ò¿¦ÿý›€ÿÃ7"ýÏåÿ<ÿÅ:¢>7û†K€_Dú×ôÐÿ1û¿oDúWôTø¿LÀÿá‘þgóžÿc…ÿÛòŸ}#ëÿëù?rôoÂːÿæ‘þgóœ×ÿeÍùo6PÿûF ÿ¨êÿ(ñX ZÿÙü5󿿉¼Š‹ˆ[Dú×ô°ÿcû?¾é_1ÿ#òügù¾é_ÓÿAýoBDù®é_3ÿÿ§	ô}#Ò¿fþùŸ&äLÿºFÖÿWÌÿ ÿÇ„—5àüŸˆô?›ÿã<ÿ¿ÄÿmD¿ÿ‡zÝ"ЮêÿàüD믙ÿAýgù¾é_ÓÿþMÀÿá‘þgóïÿý›ðåái¿û±ì.Û\	"Ò¿¦ÿƒóMàþï‘þ5ó?ð™€ÿÃ7"ý+æpþ“
-äøFÖÿWô N,I/Èÿøˆô¯™ÿÿÛêߤé?Œµ|œÐ)<Íÿ‘µ ü¤®ÿ~û¸½ß®¦ü’Ö?kßBQ²þ&L^ÿý·Ýª¹»}Ú|m¿µõ»ßLRý߯Y²ÿgÃôú?+¨ÿ¯ŸÉúõþ<6ËïÍzu»¹ûÕg\®ÿÙþ«É1ñ/ßLÖÿr»{OóǤë?Ö5ûÿ&ðøï™þÇTÿ“êÿ3ÿmÂôú¿hù£(
 ¨ÿ¯šTýúÿiŸÑý@ÒúyUäô,˜¶þýþÏèfpúúsþ·¢õŸmþï|þ;ցû¿	1«™ tŒHÿœÿ}õàÿ÷HÿŠùρþŸ	ä?ûF¤Îÿ¾zÊwHÿœÿ}õàÿõHÿšùÏÌÿ˜S ¸FÖÿçüïkçdK?éEÿ÷ Òÿlóåpþÿ¿	EvƒØ1ýgªþÿ‡¢õW̦þ³üg߈ô¯èÿàüOðøF¤ÿ¹üƒç¿XôoÂçfßp	ð‹Hÿšþú?&pÿ÷Hÿšþü_&àÿðHÿŠùÏþoÈö¬ÿ¯èÿ@ÿ&¼¬ùo>é_1ÿ¹Äÿmõ¿oúœÿ}ýˆÖ6ÿGÍüïo"¯â¢Àâ‘þ9ÿûêaÿÇ7"ýkæðügù¾éŸó¿¯žˆò]#Ò?ç_=ô}#Ò¿fþùŸ&äLÿºFÖÿçüïkçe
-8ÿÃ'"ýÏæÿ8Ïÿ/ñÑïÿ¡^·ôŸ«ú?8ÿÇÑú+æPÿÙ@þ‡oDú×ô ðøF¤ÿÙüÃûDÿ&|yxÚï~,»Ë6W‡ˆô¯éÿàüG¸ÿûF¤Mÿþ/ðøF¤Íüüß&ÿáYÿ_1ÿý›pbéH{AþÇ@¤Íüüß&Pÿû&Iÿõè#_Nè>Þÿ[ýgUûH€ÿÀÔõßo·÷ÛõÏ”BÒúgíûB(ºë?ë¯ÏäõßÛ­š»Û§Í×ö[[¿ûÍ$Õÿýú—e¤ÿo„ú¿xã¯("®”Éúõþ<6ËïÍzu»¹ûÕg$Õÿ½þ«yþ7!Gº®™¬ÿåv÷žæ¹¬ÿp¦ÿX×èß„ù»F¦ÿ1Õÿ¤ú?äÌ™0¥þïÆ>ƒŸÔÿ×Nªþýÿ´Ïè~ iý¿¼*Jú?L[ÿ~ÿ'èÌÿÅÃü_Åú[ ZÿÙæÿªóõçüO#bV3è‘þUæÿâaþÿ¯	øÿ}#Ò¿JþóáþÉ3üg߈ô¯2ÿûù?æÿm(ß5"ý«ÌÿÅ~þ¯æüðÿúF¤•üçxÈfÿÏ„œÀ5²þ¿Æü_<ä?ãÿ5áe
-ÒöÿÅEäJé¶ù¿r æÿm(²N€pŒ@ÿ£‡;…'û?
-üˆÖ_%ÿùÙÿAýgùϾé_ÓÿþMÀÿá‘þçòžÿbÍü·
-Ÿ›}Ã%À/"ý+ú?Jú?&pÿ÷Hÿšþü_&àÿðHÿ*ùÏ‘ó¿
-!ÿÙ7²þ¿¢ÿý›0prÿæ
-‘þUòŸŸýø¿M þ÷@ÿQÕÿAþ¯	¢õŸÍÿQ3ÿû›È«¸(°€¸E¤Mÿû?&°ÿã‘þ5ó?xþ3ü߈ô¯™ÿAýoBDù®é_ÓÿÿÓú¿¾é_3ÿƒüOr¦]#ëÿ+ú?Èÿ1aàäàüWˆô?›ÿã<ÿ¿ÄÿmD¿ÿ‡zÝ"ЮêÿàüD믙ÿAýgù¾é_ÓÿþMÀÿá‘þgóïÿý›ðåái¿û±ì.Û\	"Ò¿fþç?šÀýß7"ýkú?ð™€ÿÃ7"ýkæàÿ6üßÈúÿŠþôoÂːÿá‘þ5ó?ð›@ýï›$ý—7c-'t
-ïÿ­þ³ª-	ðºþûíãö~»þ™òCHZÿ¬}_E7ÿÏúë3yý÷ßv«æîöióµýÖÖï~3Iõ¿þeYPÿ›0¡þï^,¨ÿ?“õÿêýyl–ß›õêvs÷«ÏHªÿ{ýW±`þË„œ
-@×LÖÿr»{OóÇ\Ö8Óÿôo Ç¿ûF¦ÿ1Õÿ¤ú?pþ§
-êÿÅâEõÿG Uÿ‡þÚgt?´þ_^•‘þÓÖ¿ßÿ	:ó¡Ÿÿ+8ÿÛÑúÏ6ÿW¯©ÿMˆYÍ cDúW™ÿýüùo6ÐþóHÿ*ùÏÏ÷æL ÿÙ7"ý«Ìÿ…Cþ3ç?˜@ÿß7"ý«Ìÿõõ×BÿàÿõHÿ*ùϽþ‹ÿŸ	9€kdýù¿ÐÏÿpþ£
-/kæÿ]àÿý ˆô?Ûü_9ÐMþ—	EvÃ	Žè?SõüˆÖ_%ÿ9pþ·!ä?ûF¤Mÿú7ÿ‡oDúŸËÿ1xþ‹íKôoÁçfßp	ð‹Hÿšþú?&pÿ÷Hÿjþª®ñ™€ÿÃ7"ý«ä?‡Cþ3þoÈö¬ÿ¯çÿèß„—5 ÿÍ'"ý«ä?Îÿ6„úß7ýGUÿç› ZÿÙü5󿿉¼Š‹ˆ[Dú×ô°ÿcû?¾é_1ÿ£àùÏò?|#Ò¿¦ÿƒúß„ˆò]#Ò¿fþþOèÿúF¤Íüò?MÈ™þu¬ÿ¯˜ÿAþ	/kÀù>é6ÿÇyþ‰ÿÛˆ~ÿõºE ÿ\ÕÿÁù?&ˆÖ_3ÿƒúÏò?|#Ò¿¦ÿý›€ÿÃ7"ýÏæÿÞÿôo—‡§ýîDz»ls%pˆHÿšþÎ4û¿oDú×ÌÿÀÿeþ߈ô¯—ÿQpþ“
-äøFÖÿWô ^Ö€üŸˆô¯™ÿÿÛêß$é?/ÇZ>Nè>Úÿ‘U­þ³*ÃÿaBêú﷏ÛûíúgÊ!mýÛ?¡(É1aòúï¿íVÍÝíÓækû­­ßýf’êÿ~ýË’ól˜Xÿ¿XPÿ_/“õÿêýyl–ß›õêvs÷«Ï¸\ÿ‡3ýW12ÿeóß¾™¬ÿåv÷žæI×äüW#пodúSýOªÿCŽÿÏqý¿èá*r¥¤êÿÐÿOûŒî—’ÖÿË«¢¢ÿcÁ´õï÷‚Êü_¿þ1ëòY}Dë?Ûü_u¾þìÿ³š	@Ljô¯1ÿ×ë¿®*òLÀÿï‘þ5òŸ_îÿ<ÿ›@þ³oDúטÿëõ_dûÿ&”ï‘þ5æÿzýWuÍþ¿	ø}
 #Ò¿Fþóáù?ÖÌÿ›S ¸FÖÿW˜ÿëõ_Öÿ	omé'¾è¢ ¹ˆ\)"ýÏ6ÿWôÏùO6Ù
-'@8F ÿLÕÿÁü—	¢õ×È~Þÿ¡þ³üg߈ô¯éÿ@ÿ&àÿðHÿsù?ϱŽèß„Ï;áà‘þý%ý¸ÿûF¤Mÿþ/ðøF¤üçÿþo˜Üö¬ÿ¯èÿ@ÿ&œ89¦½ ÿíŠé_#ÿùÅÿÿÛêßô5ýE†ÿÃÑúÏæÿ¨™ÿýMäU\X@Ü"Ò¿¦ÿƒýØÿñHÿšù<ÿ™@þ‡oDú×Ìÿ þ7üo߈ô¯éÿÀÿiý_߈ô¯™ÿAþ§	9Ó¿®‘õÿýäÿ˜pâä˜ò‚ó?®‘þgóœçÿsþ·ýþêu‹@ÿ¹jþçÿ˜ ZÍüê?ÈÿðHÿšþôoþ߈ô?›ÿcxÿèß„/OûݏewÙæJà‘þ5ýœÿh÷߈ô¯éÿÀÿeþ߈ô¯™ÿÿÛvn}#ëÿ+ú?п	oY:_ÿqňô¯™ÿÿÛêߤé´åã„NáãýíûBVÖø?LH]ÿýöq{¿]ÿLù!¤­ûç!eÎú[0yý÷ßv«æîöióµýÖÖï~3iõ·þe‰ÿdžêÿŒó¯—Éúõþ<6ËïÍzu»¹ûÕg\®ÿÙþ«È1ùoßLÖÿr»{OóǤë?Ö5ûÿ&pü»odúSýOªÿCÆü·	âúŸùÏ«&Uÿ‡þÚgt¿”´þ_^ôL˜¶þýþOЙÿ+óõ·@´þ³ÍÿUçëÏþ¿1«™ tŒHÿ*óåaþüðÿûF¤•üç’ùCÈöHÿ*óåáüoü&Ðÿ÷Hÿ*óe?ÿWÑÿ7ÿ¯oDúWÉ.óìÿ›S ¸FÖÿטÿ+ûùŸÿŸ	omé'¾Xàÿ½^DúŸmþ¯èŸóŸl(²N€pŒ@ÿ™ªÿƒó¿M­¿Jþóaÿ‡úÏòŸ}#Ò¿¢ÿ£Dÿ&àÿðHÿsù?ϱfþÓ†Ï;áà‘þ5ýôLàþï‘þ5ýø¿LÀÿá‘þUòŸþβÉmßÈúÿŠþôo‰“câü׋Hÿ*ùÏý—ø¿M þ÷@ÿQÕÿñX ZÿÙü5󿿉¼Š‹ˆ[Dú×Ìÿ`ÿÇö|#Ò¿fþÏ&ÿá‘þ5ýÔÿ&ÿï‘þ5ýø?M ÿë‘þ5ó?Èÿ4!gú×5²þ
 ¿žÿ#ÿc©“cÂÎÿ¸jDúŸÍÿqžÿÏùßVôû¨×-ý>¼Sx²ÿƒóL­¿bþõŸ
-äøF¤Mÿú7ÿ‡oDúŸÍÿ1¼ÿGôo—‡§ýîDz»ls%pˆHÿšþÎ4û¿oDú×ôàÿ2ÿ‡oDú×ÌÿÀÿm;·¾‘õÿó?п	oY:R_ÿq½ˆô¯™ÿÿÛêß$é?Ž>òå„Náãýu«ÿ¬Ê𘐺þûíãö~»þ™òCH[ÿöÏC(ºügÖ_ŸÉë¿ÿ¶[5w·O›¯í·¶~÷›I«ÿ»õ/Kæ¿mÖÿÅóŠˆ+e²þ_½?Íò{³^Ýnî~õ—ëÿp¦ÿ*²ÿoã_¾™¬ÿåv÷žæI׬™ÿ´ýßÈô?¦úŸTÿ‡ŒþŸ	Óëÿ¢å¢ þ¿jRõèÿ§}F÷IëÿåÝå‚þÓÖ¿ßÿ	:óõaþ¯dý-­ÿlóÕùú“ÿhDÌj& #Ò¿Êü_}˜ÿ#ÿÁžÿ}#Ò¿JþsÍüŸ!ä?ûF¤•ù¿ú0ÿGÿÏ„€ò]#Ò¿Êü_ÝÏÿ±ÿgþ_߈ô¯’ÿ\òŸ™ÿ7!§ p¬ÿ¯1ÿWòŸ9ÿÍ„“-ýôìÿ_9"ýÏ6ÿWôOþ‡
-EvƒØ1ýìžìÿàüoD믒ÿüìÿ þ3üg߈ô¯éÿ@ÿ&àÿðHÿsù?ϱŽèß„Ï;áà‘þ5ýôLàþï‘þýœÿmþ߈ô¯’ÿüìÿÀÿmùϾ‘õÿýèß„W'Ç´ä¿]9"ý«ä??û?ð›@ýïþ£ªÿ£ÂÿahýgóÔÌÿþ&ò*.
-, né_ÓÿÁþ	ìÿøF¤ÍüžÿL ÿÃ7"ý+ú?*ê"ÊwHÿšùø?M ÿë‘þ5ó?Èÿ4!gú×5²þ¿¢ÿƒü^É/8ÿã# Òÿlþóüÿÿ·ýþêu‹@ÿ¹ªÿƒóL­¿fþõŸ	äøF¤Mÿú7ÿ‡oDúŸÍÿ1¼ÿGôo—‡§ýîDz»ls%pˆHÿšùœÿh÷߈ô¯éÿÀÿeþ߈ô¯™ÿÿÛò?|#ëÿ+ú?п	'–Žôä\9"ýkæàÿ6úß7Iú/F[>Nè>ÚÿÑÖYÈʺÄÿaAêú﷏ÛûíúgÊ!iý³öÏC(Jü?&L^ÿý·Ýª¹»}Ú|m¿µõ»ßLZýß­Y’ÿbƒ þGBq¥LÖÿ«÷ç±Y~oÖ«ÛÍݯ>ãrýÎô_EÎÿ°¡D¹®™¬ÿåv÷žæI׬9ÿÝÿ}#Óÿ˜êRýrúÿ&L¯ÿCË!Pÿ_5©ú?ôÿÓ>£û¤õÿòªÈèÿX0mýûýŸ 2ÿׯ̺ü?Ö_ÑúÏ6ÿW¯?糚	@Ljô¯1ÿ×뿮ȴÿ¿oDú×È~¹ÿ“ÿfùϾé_cþ¯×‘•ôÿM(ß5"ýkÌÿõú¯jαÿ¯oDú×È><ÿGòmÈ) \#ëÿ+Ìÿõú/ëœüN¶ô“^ü¿ ‘þg›ÿ+úçüoŠì† #Цéÿ5þD믑ÿü¼ÿCýgùϾé_ÑÿAþ£
-ø?|#Òÿ\þÁó_¬ú7ás³o¸øE¤Mÿý¸ÿûF¤Mÿþ/ðøF¤üçÿþoÈö¬ÿ¯èÿ@ÿ&¼¬ùo>é_#ÿùYÿ%þo¨ÿ}#ÐTÍÿø?,­ÿlþšùßßD^ÅEÄ-"ýkæ°ÿcû?¾é_3ÿƒç?ÈÿðHÿšþê"ÊwHÿšþüŸ&ÐÿõHÿŠù5ùŸ&äLÿºFÖÿWôÿcÂËpþ‡ODúŸÍÿqžÿ_âÿ6¢ßÿC½nèôaàÂ“ýœÿc‚hý5ó?¨ÿL ÿÃ7"ýkæ ðøF¤ÿÙüÃû@ÿ&|yxÚï~,»Ë6W‡ˆô¯éÿàüG¸ÿûF¤Mÿþ/ðøF¤Íüüß&ÿáYÿ_ÑÿþM8±t¤½ ÿã Ò¿fþþo¨ÿ}“¤ÿztäÇ	ÂÇû?b«ÿ¬ÊJü¤®ÿ~û¸½ß®¦ü’Ö¿]ø,„
 ¢"ÿÅ„Éë¿ÿ¶[5w·O›¯í·¶~÷›Iªÿûõ/ËÈýßYÙOýíLÖÿ«÷ç±Y~oÖ«ÛÍݯ>#©þïõ_Å‚ürÀ]3YÿËíî=ÍsYÿáLÿí?п	ܹ}#Óÿ˜êRýðÿېTÿ‡êÿDªþýÿ´Ïè~ iý¿¼*™ÿ2aÚú÷û?Agþ/öóÝó믏hýg›ÿ«Î×¿ŽøMˆYÍ cDúW™ÿ‹ýüùO6àÿ÷Hÿ*ùÏÏ÷üÿ&ÿì‘þUæÿbßÿ'ÿɆ€ò]#Ò¿Êü_ìçÿjüÿ&àÿõHÿ*ùÏñÿÌþŸ	9€kdýù¿ØÏÿü¿&vò/Ç>³ÿÿé¶ù¿r ÿÿŸ	EvÃ	Žè?ÓôÄÿ‡¢õWÉ>ìÿPÿÙ@þ³oDúWôpþŸ
-ø?|#Òÿ\þÁó_¬™ÿ¶ás³o¸øE¤Mÿý¸ÿûF¤Mÿþ/ðøF¤•üçgÿþoÈö¬ÿ¯èÿ@ÿ&œ俹B¤•üçƒþ9ÿÁêßô?:ºSxrþù¿&ˆÖ6ÿGÍüïo"¯â¢Àâ‘þ5ó?Øÿ1ý߈ô¯™ÿÁóŸ	äøF¤Mÿõ¿	ÄÿûF¤MÿþOèÿúF¤½ü"#ÿÓ„œé_×ÈúÿŠþòL898ÿÃ"ýÏæÿ8Ïÿ/ñÑïÿ¡^·ôŸ«ú?8ÿÇÑúkæPÿ™@þ‡oDú×Ìÿ@ÿ&àÿðHÿ³ù?†÷ÿˆþMøòð´ßýXv—m®é_ÓÿÁù&pÿ÷Hÿšþü_&àÿðHÿšùø¿M ÿÃ7²þ¿¢ÿý›0prÿá
-‘þ5ó?ð›@ýï›$ý磏|9¡SøhÿGÖ¾/deWÿãÿÐ'uý÷ÛÇíývý3凐¶þ퟇P”øL˜¼þûo»Uswû´ùÚ~këw¿™¤ú¿_ÿ²$ÿφôúø¢ þ¿Z&ëÿÕûóØ,¿7ëÕíæîWŸq¹þgú¯"çÙÀñϾ™¬ÿåv÷žæI׬ñÿÙ€þ}#Óÿ˜êRý2úÿ&ˆëÿ¢‡«È•’ªÿCÿ?í3º_JZÿ/¯˜ÿ²aÚú÷û?Aeþ¯_ÿ˜Åœõ·@´þ³ÍÿUçë_ü¿&ĬfÐ1"ýkÌÿõú¯«Šü'ðÿûF¤üç—û?û&ÿì‘þ5æÿzýYIþ“	ôÿ}#Ò¿Æü_¯ÿŠóÿŒÀÿë‘þ5òŸÏÿ‘ýr
- ×Èúÿ
-ó½þË:ÇÿgÂ[[ú‰/
-ü¿×‹Hÿ³Íÿ•ýWœÿhB‘Ýp„cú=Ø)<ÕÿÑåÿâÿÐG´þùÏÏû?Ô6ÿì‘þý%ú7ÿ‡oDúŸËÿ1xþ‹5óŸ6|nö
-— ¿ˆô¯éÿ ÿc÷߈ô¯éÿÀÿeþ߈ô¯‘ÿüâÿÀÿmùϾ‘õÿýèß„'ÇÄø?®‘þ5òŸŸõ_âÿ6úß7ýGÕü€ÿÃÑúÏæÿ¨™ÿýMäU\X@Ü"Ò¿fþû?&°ÿã‘þ5ó?xþ3ü߈ô¯éÿ þ7!¢|׈ô¯éÿÀÿiý_߈ô¯˜ÿQ“ÿiBÎô¯kdýEÿù?&œ:9&¼àü«F¤ÿÙüçùÿ%þo#úý?ÔëþsUÿçÿ˜ ZÍüê?ÈÿðHÿšùèßü¾é6ÿÇðþп	_žö»Ëî²Í•À!"ýkú?8ÿÑîÿ¾é_ÓÿÿËü¾é_3ÿÿ·	äøFÖÿWô Þ²t¤¾ ÿãzé_3ÿÿ·	Ôÿ¾IÒ¸kù8¡SøxÿGÝê?«òÿ‡©ë¿ß>nï·ëŸ)?„´õoÿ<„¢"ÿÅ„Éë¿ÿ¶[5w·O›¯í·¶~÷›I«ÿ»õ/ËÈýßaýž_PD\)“õÿêýyl–ß›õêvs÷«Ï¸\ÿ‡3ýW±`þË„åºf²þ—ÛÝ{š?&]ÿí?È2ýßÈô?¦úŸTÿüÿ6L¯ÿCË!Pÿ_5©ú?ôÿÓ>£û¤õÿòªË¢ÿ£Ï´õï÷‚Îü_ÝÏÿ%ëohýg›ÿ«Î׿¦ÿgCÌj& #Ò¿Êü_ÝÏÿÕøMàùß7"ý«ä?îÿôÿm ÿÙ7"ý«ÌÿÕ}ÿ¿¢ÿgB@ù®é_eþ¯¯ÿÙÿ3ÿ¯oDúWÉîõ_dä?šS ¸FÖÿטÿ«ûùŸHþ‡	'[úé/Øÿ¿rDúŸmþ¯è¿fþׄ"»áÇôŸ©ú?"þD믒ÿüìÿ þ3üg߈ô¯éÿ@ÿ&àÿðHÿsù?ϱ.п	Ÿ›}Ã%À/"ýkú?èÿ˜Àýß7"ý«ù?ªºÆÿeþ߈ô¯’ÿüìÿÀÿmùϾ‘õÿýèß„W'Ç´ä¿]9"ý«ä??û?ð›@ýïþ£ªÿ£ÂÿahýgóÔÌÿþ&ò*.
-, né_ÓÿÁþ	ìÿøF¤ÍüžÿL ÿÃ7"ý+ú?jê"ÊwHÿšùø?M ÿë‘þ5ó?Èÿ4!gú×5²þ¿¢ÿƒü^É/8ÿã# Òÿlþóüÿÿ·ýþêu‹@ÿ¹ªÿƒóL­¿fþõŸ	äøF¤Mÿú7ÿ‡oDúŸÍÿ1¼ÿèß„/OûݏewÙæJà‘þ5ó?8ÿÑîÿ¾é_ÓÿÿËü¾é_3ÿÿ·	äøFÖÿWô N,é/Èÿ¸rDú×ÌÿÀÿmõ¿o’ô_u|œÒ)|´ÿ#­þ³2ü$®ÿ~û¸½ß®&ý’Ö?kßBìü¬¿>S×ÿm·jînŸ6_Û/mýþ“Vÿwë_%û&ëÿÃ?Ôÿ×ÊTý¿Z›å÷f½ºÝÜýò3.×ÿáLÿU(É1ùoßLÕÿr»{WóǤë?Ö9ûÿ&°ÿï‘þGUÿ“êÿ<2ÿm‚¸þ_ôp¹Rõhÿ'~F÷Kßÿkÿ<äeEþ¯	“Ö¿ßþ	£éëê’þŸ	’õ9þ—6ÿݯ¬Jü&ĬfÐ1ýÿK{þïõ_WÏÿ&ðüï‰þGŽÿ¥å?¿Üÿñÿ˜@þ³o$ú9þ—xÿýüó?6”ï‰þGŽÿ¥ù{ýWuÎýßü¿¾‘èäø_¢þûçÿ˜ãÿ1!§ p¨ÿ?nü/mÿ¿×Ù½ýp´“?ýûÿW‹Dÿ#ÇÿFÜÿËsý×ùÏ&Ù
-'@8fºþ3%ÿG<ø?È6A²þóù?гõù6ÿì‰þuüñàÿ@ÿ&àÿðDÿ³ù?Nžÿ÷æ¿møÜì.~‘è_Ïÿëÿ§	Üÿ}#Ñ¿ªÿÿ—	ø?|#Ñÿ|þÁóÌÉ5[߈úÿ*þxð Μä¿9C¢ÿùüçõYgø¿M þ÷ÍtýGÕü*ÃÿadýçóÔÌÿþ&ò*.
-, n‘è_5ÿÿ¯	ìÿøF¢Õüü&ÿá‰þuüÅ!ÿƒúßòÿ}#Ñ¿Žÿ£8ø?˜ÿ5þ¯o$úWÍÿÀÿiBÎô¯kDýÍüòL8srpþ‡3$úŸÏÿqžÿ_Öø?mè÷ÿP¯[¦ë?×Íÿ(ñX YÕüú?&ÿá‰þUó?п	ø?|#Ñÿ|þáý¿Dÿ&|yxÚï~,»ë6W‡Hô¯šÿÿÓîÿ¾‘è_5ÿƒþ¯	ø?|#Ñ¿jþþOعõ¨ÿ¯™ÿþMxËÒ‘ü‚ü«E¢Õüæ¿L þ÷M’þÃøÌc:…ödU«ÿ¬êæ¿ð蓺þûíãö~»þ™òCH[ÿ>ÿ¥àü&¯ÿþÛnÕÜÝ>m¾¶ßÚúÝo&©þï׿,#ù¿&ˆëÿEÿ‚"âJ™¬ÿWóÏc³üÞ¬W·›»_}Æåú?œé¿Š‘ç˜ÿöÍdý/·»÷4Lºþc]óüoB‰þ]#Óÿ˜êRýØÿ·A^ÿ3ÿyͤêÿ°öÝ/%­ÿ—÷óßôô™¶þýPû3H_ÿ˜ÅŠõ·@´þ# /×ÿÕùú×ÿ¯	1«™ tŒHÿ# Óžÿ«~þ¯"ÿÅüÿ¾éä àEýçƒú¯Ž<ÿ›@þ³oDú9 ˜~ÿ/²ŠýÊwHÿ# /ë?žé¿ªköÿMÀÿë‘þG ¦ë¿Ž5ù&ä ®‘õÿÇ
- ^Ò>xþ/ë€ÿÇ„·¶ô“^,z0‘+E¤ÿ‘€—ïÿå@ÿç?˜Pd7œ áþ3Uÿó_&ˆÖ6ÿG1ôPÿ™@þ³oDú×ô ðøF¤ÿ¹üƒç¿XGôoÂçfßp	ð‹HÿŠþ’þ	Üÿ}#Ò¿¦ÿÿ—	ø?|#ÒÿlþÁó¬ñ›Àä¶odýEÿú7áÈÉ1íùoWHÿ³ù?Îëÿ²®ð›@ýïþG‡Aw
-OöÔø?,­ÿlþšùßßD^ÅEÄ-"ýkú?Øÿ1ý߈ô¯™ÿÁóŸ	äøF¤ÍüêÈÿ÷HÿšþüŸ&ÐÿõHÿšù䚐3ýëYÿ_ÑÿAþ	GNŽi/8ÿãªé6ÿÇyþ‰ÿÛˆ~ÿõºE ÿ\ÕÿÁù?&ˆÖ_3ÿƒúÏò?|#Ò¿¦ÿý›€ÿÃ7"ýÏæÿÞÿ#ú7áËÃÓ~÷cÙ]¶¹8D¤ÍüÎ4û¿oDú×ôàÿ2ÿ‡oDú×ÌÿÀÿm;·¾‘õÿýèß„·,I/Èÿ¸jDú×ÌÿÀÿmõ¿o’ô_×c-'t
-íÿÈc«ÿ¬Êsü¤®ÿ~û¸½ß®¦ü’Ö?kßBÑÍÿ³þúL^ÿý·Ýª¹»}Ú|m¿µõ»ßLZýß­YÔÿ&$—ýáÍ¿¢ˆ¸R&ëÿÕûóØ,¿7ëÕíæîWŸ‘Vÿwú¯bÁü—	9à®™¬ÿåv÷žæ¹¬ÿp¦ÿþèß öÿ}#Óÿ˜êRý8ÿÓ†¤ú?ôPÿ Rõèÿ§}F÷IëÿåUÉùÏ&L[ÿ~ÿ'¨Ìÿõ볂ù?Dë?Ûü_u¾þu$ÿÕ„˜ÕL :F¤ù¿^ÿuU3ÿcÏÿ¾é_#ÿùùþ_ÿbùϾé_cþ¯×‘UÌÿ™P¾kDúטÿ;Ôÿíпø}#Ò¿FþóAÿEÆþŸ	9€kdý…ù¿^ÿ%ç?1ØÉ¿èÿeÿÿ#!Òÿlóå@ÿœÿ`C‘Ýp„cúÏTýÿ‡¢õ×È~ñPÿ™@þ³oDú×ô ðøF¤ÿ¹üƒç¿X3ÿmÃçfßp	ð‹Hÿšþú?&pÿ÷Hÿjþª®ñ™€ÿÃ7"ýkä?¿ø?ð›@þ³odýEÿú7aàä ÿÍ"ýkä?¿ø?ð›@ýïþ£ªÿƒü_Dë?›ÿ£fþ÷7‘WqQ`q‹HÿšþöL`ÿÇ7"ýkæðügù¾é_ÑÿQSÿ›@ü¿oDú×ÌÿÀÿiý_߈ô¯™ÿAþ§	9Ó¿®‘õÿýäÿ˜0prpþ‡+DúŸÍÿqžÿ_âÿ6¢ßÿC½nè?Wõpþ	¢õ×Ìÿ þ3ü߈ô¯éÿ@ÿ&àÿðHÿ³ù?†÷ÿý›ðåái¿û±ì.Û\	"Ò¿fþç?šÀýß7"ýkú?ð™€ÿÃ7"ýkæàÿ6üßÈúÿŠþôoÂÀÉAþ‡+Dú×ÌÿÀÿmõ¿o’ô¿¸kù8¡SøxÿGûç!«òÿ‡©ë¿ß>nï·ëŸ)?„¤õÏÚ÷…PtùO¬¿>“×ÿm·jînŸ6_Ûomýî7“Tÿ÷ë_–ù&¤ÕÿáWEq¥LÖÿ«÷ç±Y~oÖ«ÛÍݯ>#©þïõ_Å’þ¿	9à®™¬ÿåv÷žæ¹¬ÿp¦ÿ¢‹„Aÿðøï™þÇTÿ“êÿðÿ˜Tÿ3ÿùáHÕÿ¡ÿŸöÝ$­ÿ—WUFÿÇ‚iëßïÿù¿¢Ÿÿ+éÿ™ ZÿÙæÿªóõçüO#bV3è‘þUæÿ:ý×5þ_ðÿûF¤•üççû?ùo&ÿì‘þUæÿŠCþ3ó¿&”ï‘þUæÿŠÃüþðÿúF¤
 •üçâ0ÿGþ£	9€kdýù¿â0ÿÇþ¿	ƒü÷÷ÿõW\D®‘þg›ÿ+Ïô_eÌÿÛPd7œ áþ3MÿGQãÿ°@´þ*ùχýê?ÈöHÿzþªFÿ&àÿðHÿsù?ϱ.п	Ÿ›}Ã%À/"ýkú?èÿ˜Àýß7"ýkú?ð™€ÿÃ7"ý«ä?œÿmùϾ‘õÿýèß„“ƒü7Wˆô¯’ÿ|ЍÿÛêßôUó?þDë?›ÿ£fþ÷7‘WqQ`q‹Hÿšùìÿ˜ÀþoDú×ÌÿàùÏò?|#Ò¿¦ÿƒúßâÿ}#Ò¿¦ÿÿ§	ô}#Ò¿bþçؐ3ýëYÿ_ÑÿAþ	'ç¸B¤ÿÙüçùÿþo#úý?ÔëþsUÿçÿ˜ ZÍüê?ÈÿðHÿšùèßü¾é6ÿÇðþ_ ¾<<íw?–Ýe›+CDú×ôpþ£	Üÿ}#Ò¿¦ÿÿ—	ø?|#Ò¿fþþoÈÿð¬ÿ¯èÿ@ÿ&œä¸B¤Íüüß&Pÿû&MÿÕXËÇ	ÂÓüY•“ÿaBêú﷏ÛûíúgÊ!iýÛ¿,„¢ªX&¯ÿþÛnÕÜÝ>m¾¶ßÚúÝo&©þï׿,úÿ&¤ÕÿYAýÿ±˜¬ÿWïÏc³üÞ¬W·›»_}FRýß뿊ä?ؐSÿ»f²þ—ÛÝ{š?æ²þÙþû ÈðLÿcªÿIõÌ™Tÿ=ÔÿˆTýúÿiŸÑý@ÒúyÕ¾þÓÖ¿ßÿ	ªçÓÿ3A´þ³ÍÿÏ3ÿgEÌj& #Ò¿æüÏÿ&àÿ÷HÿšùÏä¿›@þ³oDúלÿ#ÿÑ„€ò]#Ò¿æüþðÿúF¤ÅügæmÈ) \#ëÿ+Îÿ±ÿoÂ`'ÿ‚ÿ·xû¯¸ˆ\)"ýÏ6ÿW2ÿ÷›(²N€pŒ@ÿ™ªÿ£Àÿahý5óŸ©ÿL ÿÙ7"ýkú?п	ø?|#Òÿ\þÁó_¬ôoÂçfßp	ð‹HÿŠþŠþ	Üÿ}#Ò¿¦ÿÿ—	ø?|#Ò¿fþ3þoÈö¬ÿ¯èÿ@ÿ&¼¬ùo>é_3ÿÿ·	Ôÿ¾è?ªú?jüˆÖ6ÿGÍüïo"¯â¢Àâ‘þ5ýìÿ˜ÀþoDú×ÌÿàùÏò?|#Ò¿fþõ¿	äûF¤MÿþOèÿúF¤Íüò?MÈ™þu¬ÿ¯èÿ ÿÇ„“ƒó?\!Òÿlþóüÿ*ÃÿmC¿ÿ‡zÝ"Юêÿà
 üD믙ÿAýgù¾é_ÓÿþMÀÿá‘þgóïÿú7áËÃÓ~÷cÙ]¶¹8D¤ÍüÎ4û¿oDú×ôàÿ2ÿ‡oDú×ÌÿÀÿmù¾‘õÿýèß„“ƒüWˆô¯™ÿÿÛêß$é¿^Œµ|œÐ)|¼ÿ#¶úϪ<àÿ° uý÷ÛÇíývý3凐´þYû¾ŠŠü&¯ÿþÛnÕÜÝ>m¾¶ßÚúÝo&©þï׿,Éÿ·!±þ?<Pÿ&ëÿÕûóØ,¿7ëÕíæîWŸ‘Tÿ÷ú¯bAþ‹	9õ¿k&ë¹Ý½§ùc.ë?œé¿èFBпìÿûF¦ÿ1Õÿ¤ú¿}Dÿ$ÕÿÌ~8Rõèÿ§}F÷IëÿåUÉü—	ÓÖ¿ßÿ	:óñ0ÿW±þˆÖ¶ù¿ê|ýëˆÿׄ˜ÕL :F¤•ù¿x˜ÿ#ÿÉžÿ}#Ò¿JþsäüCÈöHÿ*óñÿLþ“	å»F¤•ù¿x˜ÿÃÿoþ_߈ô¯’ÿóìÿ™S ¸FÖÿטÿ‹‡ù?ü¿&vò/úÙÿÿHˆô?Ûü_9Ð?ç?ÚPd7œ áþ3UÿGÿÃÑú«ä??û?¨ÿL ÿÙ7"ýkú?п	ø?|#Òÿ\þÁó_¬™ÿ¶ás³o¸øE¤EÿGEÿÇîÿ¾é_ÓÿÿËü¾é_%ÿùÙÿÿÛòŸ}#ëÿ+ú?п	/k@þ›ODúWÉ~öàÿ6úß7ýGUÿù¿&ˆÖ6ÿGÍüïo"¯â¢Àâ‘þ5ýìÿ˜ÀþoDú×ÌÿàùÏò?|#Ò¿fþõ¿	å»F¤MÿþOèÿúF¤Íüò?MÈ™þu¬ÿ¯èÿ ÿÇ„“ƒó?\!Òÿlþóüÿ*ÃÿmC¿ÿ‡zÝ"ЮêÿàüD믙ÿAýgù¾é_ÓÿþMÀÿá‘þgóïÿú7áËÃÓ~÷cÙ]¶¹8D¤ÍüÎ4û¿oDú×ôàÿ2ÿ‡oDú×ÌÿÀÿmù¾‘õÿýèß„“ƒüWˆô¯™ÿÿÛêß$é¿ùqB§ðñþ¼ÕVuÏÿø?ôI]ÿýöq{¿]ÿLù!$­Ö¾/„¢ÊX&¯ÿþÛnÕÜÝ>m¾¶ßÚúÝo&©þï׿,ñÿؐ\ÿ?¿Ôÿ‚Éúõþ<6ËïÍzu»¹ûÕg\®ÿÙþ«É1áåºf²þ—ÛÝ{š?&]ÿ±®Ùÿ7ýßÈô?¦úŸTÿ‡œùo&Ôÿ!üZ¨ÿ?©ú?ôÿ
 Ó>£û¤õÿòŠóŸm˜¶þýþOЙÿËûù¿ÈüŸ	¢õŸmþ¯:_ÿ:ðüoBÌj& #Ò¿Êü_ÞÏÿUôÿMàùß7"ý«ä?îÿ‘üÈöHÿ*óy?ÿWÒÿ7! |׈ô¯2ÿ×鿪É·ÿ¯oDúWÉîŸÿ#þr
- ×Èúÿóy?ÿ˜ÿ3áe
-’ý¿ìÿDúŸmþ¯è¿ÂÿcB‘Ýp„cúÏTýÿ‡¢õWÉ~öPÿ™@þ³oDú×ô ðøF¤ÿ¹üƒç¿Hþ“Ÿ›}Ã%À/"ýkú?èÿ˜Àýß7"ý+ú?È·ÿ‡oDúWÉ~öàÿ6ügßÈúÿŠþôoÂːÿæ‘þUòŸŸýø¿M þ÷@ÿ£Ã ;…'û?*üˆÖ6ÿGÍüïo"¯â¢Àâ‘þ5ýìÿ˜ÀþoDú×ÌÿàùÏò?|#Ò¿¢ÿ£¢þ7!¢|׈ô¯™ÿÿÓú¿¾é_3ÿƒüOr¦]#ëÿ+ú?Èÿ1áe
-8ÿÃ'"ýÏæÿ8Ïÿ/ñÑïÿ¡^·ôŸ«ú?8ÿÇÑúkæPÿ™@þ‡oDú×ô ðøF¤ÿÙüÃûDÿ&|yxÚï~,»Ë6W‡ˆô¯™ÿÁù&pÿ÷Hÿšþü_&àÿðHÿšùø¿M ÿÃ7²þ¿¢ÿý›ð²äøD¤Íüüß&Pÿûfœþ¶w«±n!ÂGû?²öÏCÿH€ÿÀ„õïþ¯ÑžŸcÒ×?ïF‚Y’׿½ç7íW¶OøŒ‹õÎÖ?”ä?ØÐ-çí·ÍþSq³¨²E¨«¿õôÏÍÓÓ§ìðúÏínµY?´ÿÏÍÃ~µ»_5ÿ½êÿÿäEY»ßvî×ÑýÄ¢lòoÛý·¶2ìÿ0T±½œSfü%IÖÿ?WÿÜ<ü¹MùŒúo•ÏõñÿØð·ï$šúß«þçvßÜÿ˧Ž<†<y•}úþ¯GïøÇnµ:¼¡}G~SÔ7¡8}Ç=­îžßѾ§}Š‹ÕÑþ¾Üoþ{õú÷í;nŠ<½áËCsò–<oŸßðo›õ·£ÏÙÙŽþ5‡oø_Ûÿwá?´}Ç…ÿÐÏ›ÝþçÉ'œ}ÈÿÝmö«¯Íòû¯þ5ÿ±¹_ýŸf½zzù”PdÅâø»l¾ÊŽpsüMüýaûpü¿ðéSYž|—Ý_þgóõþèÕÉþýÿqû_íÏ¿}Ï¿¼õ/ù¯ÛËÕÙçñþã¾ùzò×ù"ž|•ÿöc}øÏ¼=úγáß}ß´’LI¾þßmÚ_Lû³HøŒ‹ýŸcÿ×sýGþ³
-¡ú”gm‰Öþ„çdý/¼·×óŸÿòóçÿrôoBâ¶ÏÑ‹?[þøóOö®šDý>óû˜)ý¿¬¦ÿgAòú«ôÿòaÿç^ûå¢}.C•Ôÿ+ãbqÜÿkÿGÚ?«òxÜÿ«òª$
 fî/J²þUúýGòm8ôb²7úíe9ûŸ¦WvÖÿ+b}ë£Þ\vÖþ[,bVŸ¾áïg½½öjOÞpÚþ«CÕÿŽÞp¡ý—]jÿeo´ÿÎÿ;OÛoüw¾Õý[ÿ/\èþegÝ¿E‘‡¢Ì«ã¯ò¼û—gEqüƒî_(Ùâè
-Ãî_ûPuü†Ý¿ìR÷/;ïþÅv5Ãéj½ÓýËèþý%H¾þõÿròLxiþÑÿóI²þúú7azÿïùÅŸ=\;®”Dý3ÿ_NÿÏ‚äõ·òÿ1ÿoÂÿøÿê²ÈoB¸Iêÿ•y8ñÿµOÊ‹¬ªNúy\´ËÉâ/I²þ­üä¿›pèÆ„‹þ¿ð–ÿ/†º:}Ç©ÿo‘-Žcaèÿ‹íB/ŽÞ0ðÿeU<ù—¸Ð —€á¢ÿ/¼åÿ;û}Óÿwüz¡†þ¿X,Âñ7ñ†ÿïÓâø
-Cÿ_¬ÃñG;€y<r†KÀp©ÞðÿÕ7'_Ô{À@ð/@òõßÊÿÇü·	‡æ_ßDxIÖ¿•ÿý›0¡í×ÛþÆ?ò®DýG³þóß&$¯¿UÿýŽæ«P„º,’úÅùüoÙ> æ7ùéüoUV ÿš$ëߪÿÇü¿	‡^L¼Øÿ‹Ãþ_ëÅÑxoôÿ⢊Gs³qÐÿU¹¨ÃÑÎûŸªs^¼Ôÿ‹—úñbÿ/ûƒÿÐó¿ñRÿ/ú1dáä›x«ÿw4 ßèÿÕùÉWõÆüï±0^êÿÅKý¿8ìÿÅÅéÅ{ý¿Hÿï/@òõߪÿGþ›	/æ¿O9ÂóH²þ­úèß„¤þßÁë÷Ö_qí     ¸þ?Œ8&  < 
\ No newline at end of file

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz.output
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz.output	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/96em64t-4n4d3ca2co.tar.gz.output	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,382 +0,0 @@
-Machine (phys=0 total=528473984KB)
-  NUMANode #0 (phys=0 local=132101504KB total=132101504KB)
-    Socket #0 (phys=1)
-      L3Cache #0 (16384KB)
-        L2Cache #0 (3072KB)
-          L1Cache #0 (32KB)
-            Core #0 (phys=0)
-              PU #0 (phys=0)
-          L1Cache #1 (32KB)
-            Core #1 (phys=1)
-              PU #1 (phys=4)
-        L2Cache #1 (3072KB)
-          L1Cache #2 (32KB)
-            Core #2 (phys=2)
-              PU #2 (phys=8)
-          L1Cache #3 (32KB)
-            Core #3 (phys=3)
-              PU #3 (phys=12)
-        L2Cache #2 (3072KB)
-          L1Cache #4 (32KB)
-            Core #4 (phys=4)
-              PU #4 (phys=16)
-          L1Cache #5 (32KB)
-            Core #5 (phys=5)
-              PU #5 (phys=20)
-    Socket #1 (phys=0)
-      L3Cache #1 (16384KB)
-        L2Cache #3 (3072KB)
-          L1Cache #6 (32KB)
-            Core #6 (phys=0)
-              PU #6 (phys=1)
-          L1Cache #7 (32KB)
-            Core #7 (phys=1)
-              PU #7 (phys=5)
-        L2Cache #4 (3072KB)
-          L1Cache #8 (32KB)
-            Core #8 (phys=2)
-              PU #8 (phys=9)
-          L1Cache #9 (32KB)
-            Core #9 (phys=3)
-              PU #9 (phys=13)
-        L2Cache #5 (3072KB)
-          L1Cache #10 (32KB)
-            Core #10 (phys=4)
-              PU #10 (phys=17)
-          L1Cache #11 (32KB)
-            Core #11 (phys=5)
-              PU #11 (phys=21)
-    Socket #2 (phys=2)
-      L3Cache #2 (16384KB)
-        L2Cache #6 (3072KB)
-          L1Cache #12 (32KB)
-            Core #12 (phys=0)
-              PU #12 (phys=2)
-          L1Cache #13 (32KB)
-            Core #13 (phys=1)
-              PU #13 (phys=6)
-        L2Cache #7 (3072KB)
-          L1Cache #14 (32KB)
-            Core #14 (phys=2)
-              PU #14 (phys=10)
-          L1Cache #15 (32KB)
-            Core #15 (phys=3)
-              PU #15 (phys=14)
-        L2Cache #8 (3072KB)
-          L1Cache #16 (32KB)
-            Core #16 (phys=4)
-              PU #16 (phys=18)
-          L1Cache #17 (32KB)
-            Core #17 (phys=5)
-              PU #17 (phys=22)
-    Socket #3 (phys=3)
-      L3Cache #3 (16384KB)
-        L2Cache #9 (3072KB)
-          L1Cache #18 (32KB)
-            Core #18 (phys=0)
-              PU #18 (phys=3)
-          L1Cache #19 (32KB)
-            Core #19 (phys=1)
-              PU #19 (phys=7)
-        L2Cache #10 (3072KB)
-          L1Cache #20 (32KB)
-            Core #20 (phys=2)
-              PU #20 (phys=11)
-          L1Cache #21 (32KB)
-            Core #21 (phys=3)
-              PU #21 (phys=15)
-        L2Cache #11 (3072KB)
-          L1Cache #22 (32KB)
-            Core #22 (phys=4)
-              PU #22 (phys=19)
-          L1Cache #23 (32KB)
-            Core #23 (phys=5)
-              PU #23 (phys=23)
-  NUMANode #1 (phys=1 local=132124160KB total=132124160KB)
-    Socket #4 (phys=4)
-      L3Cache #4 (16384KB)
-        L2Cache #12 (3072KB)
-          L1Cache #24 (32KB)
-            Core #24 (phys=0)
-              PU #24 (phys=24)
-          L1Cache #25 (32KB)
-            Core #25 (phys=1)
-              PU #25 (phys=28)
-        L2Cache #13 (3072KB)
-          L1Cache #26 (32KB)
-            Core #26 (phys=2)
-              PU #26 (phys=32)
-          L1Cache #27 (32KB)
-            Core #27 (phys=3)
-              PU #27 (phys=36)
-        L2Cache #14 (3072KB)
-          L1Cache #28 (32KB)
-            Core #28 (phys=4)
-              PU #28 (phys=40)
-          L1Cache #29 (32KB)
-            Core #29 (phys=5)
-              PU #29 (phys=44)
-    Socket #5 (phys=5)
-      L3Cache #5 (16384KB)
-        L2Cache #15 (3072KB)
-          L1Cache #30 (32KB)
-            Core #30 (phys=0)
-              PU #30 (phys=25)
-          L1Cache #31 (32KB)
-            Core #31 (phys=1)
-              PU #31 (phys=29)
-        L2Cache #16 (3072KB)
-          L1Cache #32 (32KB)
-            Core #32 (phys=2)
-              PU #32 (phys=33)
-          L1Cache #33 (32KB)
-            Core #33 (phys=3)
-              PU #33 (phys=37)
-        L2Cache #17 (3072KB)
-          L1Cache #34 (32KB)
-            Core #34 (phys=4)
-              PU #34 (phys=41)
-          L1Cache #35 (32KB)
-            Core #35 (phys=5)
-              PU #35 (phys=45)
-    Socket #6 (phys=6)
-      L3Cache #6 (16384KB)
-        L2Cache #18 (3072KB)
-          L1Cache #36 (32KB)
-            Core #36 (phys=0)
-              PU #36 (phys=26)
-          L1Cache #37 (32KB)
-            Core #37 (phys=1)
-              PU #37 (phys=30)
-        L2Cache #19 (3072KB)
-          L1Cache #38 (32KB)
-            Core #38 (phys=2)
-              PU #38 (phys=34)
-          L1Cache #39 (32KB)
-            Core #39 (phys=3)
-              PU #39 (phys=38)
-        L2Cache #20 (3072KB)
-          L1Cache #40 (32KB)
-            Core #40 (phys=4)
-              PU #40 (phys=42)
-          L1Cache #41 (32KB)
-            Core #41 (phys=5)
-              PU #41 (phys=46)
-    Socket #7 (phys=7)
-      L3Cache #7 (16384KB)
-        L2Cache #21 (3072KB)
-          L1Cache #42 (32KB)
-            Core #42 (phys=0)
-              PU #42 (phys=27)
-          L1Cache #43 (32KB)
-            Core #43 (phys=1)
-              PU #43 (phys=31)
-        L2Cache #22 (3072KB)
-          L1Cache #44 (32KB)
-            Core #44 (phys=2)
-              PU #44 (phys=35)
-          L1Cache #45 (32KB)
-            Core #45 (phys=3)
-              PU #45 (phys=39)
-        L2Cache #23 (3072KB)
-          L1Cache #46 (32KB)
-            Core #46 (phys=4)
-              PU #46 (phys=43)
-          L1Cache #47 (32KB)
-            Core #47 (phys=5)
-              PU #47 (phys=47)
-  NUMANode #2 (phys=2 local=132124160KB total=132124160KB)
-    Socket #8 (phys=8)
-      L3Cache #8 (16384KB)
-        L2Cache #24 (3072KB)
-          L1Cache #48 (32KB)
-            Core #48 (phys=0)
-              PU #48 (phys=48)
-          L1Cache #49 (32KB)
-            Core #49 (phys=1)
-              PU #49 (phys=52)
-        L2Cache #25 (3072KB)
-          L1Cache #50 (32KB)
-            Core #50 (phys=2)
-              PU #50 (phys=56)
-          L1Cache #51 (32KB)
-            Core #51 (phys=3)
-              PU #51 (phys=60)
-        L2Cache #26 (3072KB)
-          L1Cache #52 (32KB)
-            Core #52 (phys=4)
-              PU #52 (phys=64)
-          L1Cache #53 (32KB)
-            Core #53 (phys=5)
-              PU #53 (phys=68)
-    Socket #9 (phys=9)
-      L3Cache #9 (16384KB)
-        L2Cache #27 (3072KB)
-          L1Cache #54 (32KB)
-            Core #54 (phys=0)
-              PU #54 (phys=49)
-          L1Cache #55 (32KB)
-            Core #55 (phys=1)
-              PU #55 (phys=53)
-        L2Cache #28 (3072KB)
-          L1Cache #56 (32KB)
-            Core #56 (phys=2)
-              PU #56 (phys=57)
-          L1Cache #57 (32KB)
-            Core #57 (phys=3)
-              PU #57 (phys=61)
-        L2Cache #29 (3072KB)
-          L1Cache #58 (32KB)
-            Core #58 (phys=4)
-              PU #58 (phys=65)
-          L1Cache #59 (32KB)
-            Core #59 (phys=5)
-              PU #59 (phys=69)
-    Socket #10 (phys=10)
-      L3Cache #10 (16384KB)
-        L2Cache #30 (3072KB)
-          L1Cache #60 (32KB)
-            Core #60 (phys=0)
-              PU #60 (phys=50)
-          L1Cache #61 (32KB)
-            Core #61 (phys=1)
-              PU #61 (phys=54)
-        L2Cache #31 (3072KB)
-          L1Cache #62 (32KB)
-            Core #62 (phys=2)
-              PU #62 (phys=58)
-          L1Cache #63 (32KB)
-            Core #63 (phys=3)
-              PU #63 (phys=62)
-        L2Cache #32 (3072KB)
-          L1Cache #64 (32KB)
-            Core #64 (phys=4)
-              PU #64 (phys=66)
-          L1Cache #65 (32KB)
-            Core #65 (phys=5)
-              PU #65 (phys=70)
-    Socket #11 (phys=11)
-      L3Cache #11 (16384KB)
-        L2Cache #33 (3072KB)
-          L1Cache #66 (32KB)
-            Core #66 (phys=0)
-              PU #66 (phys=51)
-          L1Cache #67 (32KB)
-            Core #67 (phys=1)
-              PU #67 (phys=55)
-        L2Cache #34 (3072KB)
-          L1Cache #68 (32KB)
-            Core #68 (phys=2)
-              PU #68 (phys=59)
-          L1Cache #69 (32KB)
-            Core #69 (phys=3)
-              PU #69 (phys=63)
-        L2Cache #35 (3072KB)
-          L1Cache #70 (32KB)
-            Core #70 (phys=4)
-              PU #70 (phys=67)
-          L1Cache #71 (32KB)
-            Core #71 (phys=5)
-              PU #71 (phys=71)
-  NUMANode #3 (phys=3 local=132124160KB total=132124160KB)
-    Socket #12 (phys=12)
-      L3Cache #12 (16384KB)
-        L2Cache #36 (3072KB)
-          L1Cache #72 (32KB)
-            Core #72 (phys=0)
-              PU #72 (phys=72)
-          L1Cache #73 (32KB)
-            Core #73 (phys=1)
-              PU #73 (phys=76)
-        L2Cache #37 (3072KB)
-          L1Cache #74 (32KB)
-            Core #74 (phys=2)
-              PU #74 (phys=80)
-          L1Cache #75 (32KB)
-            Core #75 (phys=3)
-              PU #75 (phys=84)
-        L2Cache #38 (3072KB)
-          L1Cache #76 (32KB)
-            Core #76 (phys=4)
-              PU #76 (phys=88)
-          L1Cache #77 (32KB)
-            Core #77 (phys=5)
-              PU #77 (phys=92)
-    Socket #13 (phys=13)
-      L3Cache #13 (16384KB)
-        L2Cache #39 (3072KB)
-          L1Cache #78 (32KB)
-            Core #78 (phys=0)
-              PU #78 (phys=73)
-          L1Cache #79 (32KB)
-            Core #79 (phys=1)
-              PU #79 (phys=77)
-        L2Cache #40 (3072KB)
-          L1Cache #80 (32KB)
-            Core #80 (phys=2)
-              PU #80 (phys=81)
-          L1Cache #81 (32KB)
-            Core #81 (phys=3)
-              PU #81 (phys=85)
-        L2Cache #41 (3072KB)
-          L1Cache #82 (32KB)
-            Core #82 (phys=4)
-              PU #82 (phys=89)
-          L1Cache #83 (32KB)
-            Core #83 (phys=5)
-              PU #83 (phys=93)
-    Socket #14 (phys=14)
-      L3Cache #14 (16384KB)
-        L2Cache #42 (3072KB)
-          L1Cache #84 (32KB)
-            Core #84 (phys=0)
-              PU #84 (phys=74)
-          L1Cache #85 (32KB)
-            Core #85 (phys=1)
-              PU #85 (phys=78)
-        L2Cache #43 (3072KB)
-          L1Cache #86 (32KB)
-            Core #86 (phys=2)
-              PU #86 (phys=82)
-          L1Cache #87 (32KB)
-            Core #87 (phys=3)
-              PU #87 (phys=86)
-        L2Cache #44 (3072KB)
-          L1Cache #88 (32KB)
-            Core #88 (phys=4)
-              PU #88 (phys=90)
-          L1Cache #89 (32KB)
-            Core #89 (phys=5)
-              PU #89 (phys=94)
-    Socket #15 (phys=15)
-      L3Cache #15 (16384KB)
-        L2Cache #45 (3072KB)
-          L1Cache #90 (32KB)
-            Core #90 (phys=0)
-              PU #90 (phys=75)
-          L1Cache #91 (32KB)
-            Core #91 (phys=1)
-              PU #91 (phys=79)
-        L2Cache #46 (3072KB)
-          L1Cache #92 (32KB)
-            Core #92 (phys=2)
-              PU #92 (phys=83)
-          L1Cache #93 (32KB)
-            Core #93 (phys=3)
-              PU #93 (phys=87)
-        L2Cache #47 (3072KB)
-          L1Cache #94 (32KB)
-            Core #94 (phys=4)
-              PU #94 (phys=91)
-          L1Cache #95 (32KB)
-            Core #95 (phys=5)
-              PU #95 (phys=95)
-depth 0:	1 Machine (type #1)
- depth 1:	4 NUMANodes (type #2)
-  depth 2:	16 Sockets (type #3)
-   depth 3:	16 Caches (type #4)
-    depth 4:	48 Caches (type #4)
-     depth 5:	96 Caches (type #4)
-      depth 6:	96 Cores (type #5)
-       depth 7:	96 PUs (type #6)
-Topology not from this system

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,85 +1,121 @@
-# Copyright 2009 INRIA, Université Bordeaux 1
-# Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
+# Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CFLAGS = $(HWLOC_CFLAGS)
 AM_CPPFLAGS = $(HWLOC_CPPFLAGS)
 AM_LDFLAGS = $(HWLOC_LDFLAGS)
 
-# XXX: Add your sysfs tarballs here.
+# Add your expected output file here.
+# By default, it shows the output of `lstopo - -v'.
+sysfs_outputs = \
+		2amd64-2n.output \
+		2ps3-2t.output \
+		4ia64-4s.output \
+		4ppc-4c.output \
+		256ppc-8n8s4t.output \
+		256ppc-8n8s4t-nocache.output \
+		256ppc-8n8s4t-nosys.output \
+		8amd64-4n2c.output  \
+		8em64t-4c2t.output \
+		8em64t-2s2ca2c.output \
+		8em64t-2s4c-heterogeneous.output \
+		8ia64-2n2s2c.output \
+		8ia64-2s2c2t.output \
+		8ia64-4s2c.output \
+		16amd64-8n2c.output \
+		16amd64-8n2c-cpusets.output \
+		16amd64-8n2c-cpusets.xml.output \
+		16amd64-8n2c-cpusets_noadmin.output \
+		16em64t-4s2c2t.output \
+		16em64t-4s2c2t-offlines.output \
+		16em64t-4s2c2t-offlines.xml.output \
+		16em64t-4s2c2t-offlines_noadmin.output \
+		16em64t-4s2c2t_ncaches.output \
+		16em64t-4s2c2t_merge.output \
+		16em64t-4s2c2t.xml.output \
+		16em64t-2m4c2t.output \
+		16ia64-8n2s.output \
+		48amd64-4d2n6c-sparse.output \
+		64fake-4n2s2ca2c2t.output \
+		96em64t-4n4d3ca2co.output \
+		128ia64-17n4s2c.output \
+		256ia64-64n2s2c.output \
+		4qs22-2s2t.output \
+		2s390-2c.output \
+		1alpha.output
+
+# Each output `xyz.output' must have a corresponding tarball `xyz.tar.bz2'
+# or a corresponding `xyz.source' specifying which tarball to use
 sysfs_tarballs = \
-		2amd64-2n.tar.gz \
-		2ps3-2t.tar.gz \
-		4ia64-4s.tar.gz \
-		4ppc-4c.tar.gz \
-		8amd64-4n2c.tar.gz  \
-		8em64t-4c2t.tar.gz \
-		8em64t-2s2ca2c.tar.gz \
-		8em64t-2s4c-heterogeneous.tar.gz \
-		8ia64-2n2s2d.tar.gz \
-		8ia64-4s2c.tar.gz \
-		16amd64-8n2c.tar.gz \
-		16amd64-8n2c-cpusets.tar.gz \
-		16amd64-8n2c-cpusets.xml.tar.gz \
-		16amd64-8n2c-cpusets_noadmin.tar.gz \
-		16em64t-4s2c2t.tar.gz \
-		16em64t-4s2c2t-offlines.tar.gz \
-		16em64t-4s2c2t-offlines.xml.tar.gz \
-		16em64t-4s2c2t-offlines_noadmin.tar.gz \
-		16em64t-4s2c2t_ncaches.tar.gz \
-		16em64t-4s2c2t_merge.tar.gz \
-		16em64t-4s2c2t.xml.tar.gz \
-		16em64t-2m4c2t.tar.gz \
-		16ia64-8n2s.tar.gz \
-		48amd64-4d2n6c.tar.gz \
-		64fake-4n2s2ca2c2t.tar.gz \
-		96em64t-4n4d3ca2co.tar.gz \
-		256ia64-64n2s2c.tar.gz \
-		4qs22-2s2t.tar.gz \
-		2s390-2c.tar.gz \
-		1alpha.tar.gz
+		2amd64-2n.tar.bz2 \
+		2ps3-2t.tar.bz2 \
+		4ia64-4s.tar.bz2 \
+		4ppc-4c.tar.bz2 \
+		256ppc-8n8s4t.tar.bz2 \
+		256ppc-8n8s4t-nocache.source \
+		256ppc-8n8s4t-nosys.source \
+		8amd64-4n2c.tar.bz2  \
+		8em64t-4c2t.tar.bz2 \
+		8em64t-2s2ca2c.tar.bz2 \
+		8em64t-2s4c-heterogeneous.tar.bz2 \
+		8ia64-2n2s2c.tar.bz2 \
+		8ia64-2s2c2t.tar.bz2 \
+		8ia64-4s2c.tar.bz2 \
+		16amd64-8n2c.tar.bz2 \
+		16amd64-8n2c-cpusets.tar.bz2 \
+		16amd64-8n2c-cpusets.xml.source \
+		16amd64-8n2c-cpusets_noadmin.source \
+		16em64t-4s2c2t.tar.bz2 \
+		16em64t-4s2c2t-offlines.tar.bz2 \
+		16em64t-4s2c2t-offlines.xml.source \
+		16em64t-4s2c2t-offlines_noadmin.source \
+		16em64t-2m4c2t.tar.bz2 \
+		16em64t-4s2c2t_merge.source \
+		16em64t-4s2c2t_ncaches.source \
+		16em64t-4s2c2t.xml.source \
+		16ia64-8n2s.tar.bz2 \
+		48amd64-4d2n6c-sparse.tar.bz2 \
+		64fake-4n2s2ca2c2t.tar.bz2 \
+		96em64t-4n4d3ca2co.tar.bz2 \
+		128ia64-17n4s2c.tar.bz2 \
+		256ia64-64n2s2c.tar.bz2 \
+		4qs22-2s2t.tar.bz2 \
+		2s390-2c.tar.bz2 \
+		1alpha.tar.bz2
 
-# Each tarball `xyz.tar.gz' must have a corresponoing `xyz.tar.gz.output'
-# file showing the expected output of `lstopo - -v'.
-sysfs_outputs = \
-		2amd64-2n.tar.gz.output \
-		2ps3-2t.tar.gz.output \
-		4ia64-4s.tar.gz.output \
-		4ppc-4c.tar.gz.output \
-		8amd64-4n2c.tar.gz.output  \
-		8em64t-4c2t.tar.gz.output \
-		8em64t-2s2ca2c.tar.gz.output \
-		8em64t-2s4c-heterogeneous.tar.gz.output \
-		8ia64-2n2s2d.tar.gz.output \
-		8ia64-4s2c.tar.gz.output \
-		16amd64-8n2c.tar.gz.output \
-		16amd64-8n2c-cpusets.tar.gz.output \
-		16amd64-8n2c-cpusets.xml.tar.gz.output 16amd64-8n2c-cpusets.xml.tar.gz.options \
-		16amd64-8n2c-cpusets_noadmin.tar.gz.output 16amd64-8n2c-cpusets_noadmin.tar.gz.options \
-		16em64t-4s2c2t.tar.gz.output \
-		16em64t-4s2c2t-offlines.tar.gz.output \
-		16em64t-4s2c2t-offlines.xml.tar.gz.output 16em64t-4s2c2t-offlines.xml.tar.gz.options \
-		16em64t-4s2c2t-offlines_noadmin.tar.gz.output 16em64t-4s2c2t-offlines_noadmin.tar.gz.options \
-		16em64t-4s2c2t_ncaches.tar.gz.output 16em64t-4s2c2t_ncaches.tar.gz.options \
-		16em64t-4s2c2t_merge.tar.gz.output 16em64t-4s2c2t_merge.tar.gz.options \
-		16em64t-4s2c2t.xml.tar.gz.output 16em64t-4s2c2t.xml.tar.gz.options \
-		16em64t-2m4c2t.tar.gz.output \
-		16ia64-8n2s.tar.gz.output \
-		48amd64-4d2n6c.tar.gz.output \
-		64fake-4n2s2ca2c2t.tar.gz.output \
-		96em64t-4n4d3ca2co.tar.gz.output \
-		256ia64-64n2s2c.tar.gz.output \
-		4qs22-2s2t.tar.gz.output \
-		2s390-2c.tar.gz.output \
-		1alpha.tar.gz.output
+# Each `xyz.output' may have a corresponding exclude `xyz.exclude'
+sysfs_excludes = \
+		256ppc-8n8s4t-nocache.exclude \
+		256ppc-8n8s4t-nosys.exclude
 
+# Each output `xyz.output' may have a corresponding `xyz.options'
+# file modifying the behavior of lstopo
+sysfs_options = \
+		16amd64-8n2c-cpusets.xml.options \
+		16amd64-8n2c-cpusets_noadmin.options \
+		16em64t-4s2c2t-offlines.xml.options \
+		16em64t-4s2c2t-offlines_noadmin.options \
+		16em64t-4s2c2t_ncaches.options \
+		16em64t-4s2c2t_merge.options \
+		16em64t-4s2c2t.xml.options
+
 if HWLOC_BUILD_TESTS
-if HWLOC_HAVE_LINUX
 if HWLOC_HAVE_OPENAT
-TESTS = $(sysfs_tarballs)
+if HWLOC_HAVE_BUNZIPP
+TESTS = $(sysfs_outputs)
+endif HWLOC_HAVE_BUNZIPP
 endif HWLOC_HAVE_OPENAT
-endif HWLOC_HAVE_LINUX
 endif HWLOC_BUILD_TESTS
 
-EXTRA_DIST = $(sysfs_tarballs) $(sysfs_outputs)
+EXTRA_DIST = $(sysfs_outputs) $(sysfs_tarballs) $(sysfs_excludes) $(sysfs_options)
 
 TESTS_ENVIRONMENT = $(builddir)/test-topology.sh
+
+
+bin_SCRIPTS = hwloc-gather-topology.sh
+
+install-exec-hook:
+	$(SED) -e 's/abs_top_builddir\/utils/bindir/' -e '/abs_top_builddir/d' -i $(DESTDIR)$(bindir)/hwloc-gather-topology.sh
+
+SUBDIRS = gather

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/README
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/README	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/README	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,16 +1,16 @@
 -*- text -*-
 
 This directory contains tarballs of Linux sysfs hierarchies collected on
-various systems.  Each tarball `xyz.tar.gz' comes with the corresponding
-`xyz.tar.gz.output', which gives the expected output of "lstopo -v -"
-for that system.
+various systems.  Each tarball `xyz.tar.bz2' comes with the corresponding
+`xyz.output', which gives the expected output of "lstopo -v -" for that
+system.
 
 Together with the `HWLOC_FSROOT' environment variable, these are
 used by `test-topologies.sh' to check for any regression introduced in
 hwloc detection logic.
 
 A new topology may be added by:
-* running "gather-topology.sh" on the target system and saving the
+* running "hwloc-gather-topology.sh" on the target system and saving the
   tarball and output files here.
 * if lstopo is not available on the target system, running "lstopo -v -"
   on the extracted tarball to generate the corresponding `output' file
@@ -19,5 +19,17 @@
   properly handled in "make check" and "make dist".
 
 When adding a XML-based output, make sure that the filename of the
-tarball ends with .xml.tar.gz (so that test-topology may skip it
+tarball ends with .xml.tar.bz2 (so that test-topology may skip it
 if XML support is disabled).
+
+If a `xyz.options' file is found, it will override the `lstopo' options
+(`-v -' by default) for generating the output `xyz.output'.
+
+If the output and tarball names do not match, it is possible to specify
+the actual tarball name in a `xyz.source' file.
+If some files should be excluded when extracting the tarball, they may
+be listed in a `xyz.exclude' file. For instance, to exclude `/sys/*/foo'
+from the saved topology, you should add `*/sys/foo' to `xyz.exclude'.
+These features are especially useful when the same tarball should be
+used for different tests with different configurations and thus different
+expected outputs, without having to save multiple copies of the tarball.

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/Makefile.am	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,15 @@
+# Copyright © 2010 INRIA
+# Copyright © 2010 Cisco Systems, Inc.  All rights reserved.
+# See COPYING in top-level directory.
+
+if HWLOC_BUILD_TESTS
+if HWLOC_HAVE_LINUX
+if HWLOC_HAVE_OPENAT
+if HWLOC_HAVE_BUNZIPP
+if HWLOC_HAVE_XML
+TESTS = test-gather-topology.sh
+endif HWLOC_HAVE_XML
+endif HWLOC_HAVE_BUNZIPP
+endif HWLOC_HAVE_OPENAT
+endif HWLOC_HAVE_LINUX
+endif HWLOC_BUILD_TESTS

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/test-gather-topology.sh.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/test-gather-topology.sh.in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/test-gather-topology.sh.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,77 @@
+#!/bin/sh
+#-*-sh-*-
+
+#
+# Copyright © 2010 INRIA
+# Copyright © 2010 Cisco Systems, Inc.  All rights reserved.
+# See COPYING in top-level directory.
+#
+
+abs_top_builddir="@abs_top_builddir@"
+lstopo="$abs_top_builddir/utils/lstopo"
+gather="$abs_top_builddir/tests/linux/hwloc-gather-topology.sh"
+
+# Ensure we're running on linux.  If not, then just exit with status
+# code 77 (the GNU standard for a skipped test)
+
+case `uname -a` in
+*[Ll]inux*) good=1 ;;
+*)
+    echo "Not running on linux; skipped"
+    exit 77 ;;
+esac 
+
+error()
+{
+    echo $@ 2>&1
+}
+
+if [ ! -x "$lstopo" ]
+then
+    error "Could not find executable file \`$lstopo'."
+    exit 1
+fi
+if [ ! -x "$gather" ]
+then
+    error "Could not find executable script \`$gather'."
+    exit 1
+fi
+
+tmpdir=`mktemp -d`
+
+# make sure we compare things that are comparable
+# (the tarball cannot be "this system")
+export HWLOC_THISSYSTEM=0
+
+echo "Saving current system topology to XML..."
+if ! "$lstopo" "$tmpdir/save.xml" ; then
+    error "Failed"
+    exit 1
+fi
+
+echo "Saving current system topology to a tarball..."
+if ! "$gather" "$tmpdir/save" ; then
+    error "Failed"
+    exit 1
+fi
+
+echo "Extracting tarball..."
+if ! ( cd "$tmpdir" && tar xfj save.tar.bz2 ) ; then
+     error "Failed"
+     exit 1
+fi
+export HWLOC_FSROOT="$tmpdir/save"
+
+echo "Saving tarball topology to XML..."
+if ! "$lstopo" "$tmpdir/save2.xml" ; then
+    error "Failed"
+    exit 1
+fi
+
+echo "Comparing XML outputs..."
+( cd $tmpdir && diff -u save.xml save2.xml )
+result=$?
+
+rm -rf "$tmpdir"
+
+exit $result


Property changes on: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather/test-gather-topology.sh.in
___________________________________________________________________
Added: svn:executable
   + *

Deleted: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather-topology.sh.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather-topology.sh.in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/gather-topology.sh.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,57 +0,0 @@
-#!/bin/sh
-#-*-sh-*-
-
-#
-# Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
-# See COPYING in top-level directory.
-#
-
-abs_top_builddir="@abs_top_builddir@"
-lstopo="$abs_top_builddir/utils/lstopo"
-
-name="$1"; shift
-[ -z "$name" ] && echo "Save name needed as an argument" && exit -1
-
-destdir=`mktemp -d`
-
-# Get all files from the given path (either a file or a directory)
-# ignore errors since some files may be missing, and some may be
-# Restricted to root (but we don't need them).
-# Use cat so that we properly get proc/sys files even if their
-# file length is wrong
-savepath() {
-  local dest="$1"
-  local path="$2"
-  find "$path" -type f 2>/dev/null | while read file ; do	\
-    mkdir -p "$dest/"`dirname $file` ;		\
-    cat "$file" > "$dest/$file" 2>/dev/null ;	\
-  done
-}
-
-# Gather the following list of files and directories
-cat << EOF | while read path ; do savepath "$destdir/$name" "$path" ; done
-/sys/devices/system/cpu/
-/sys/devices/system/node/
-/sys/class/dmi/id/
-/proc/cpuinfo
-/proc/meminfo
-/proc/stat
-EOF
-
-# Create the archive and keep the tree in /tmp for testing
-( cd "$destdir/" && tar cfz "$name.tar.gz" "$name" )
-mv "$destdir/$name.tar.gz" "./$name.tar.gz"
-echo "Hierarchy gathered in ./$name.tar.gz and kept in $destdir/$name/"
-
-# Generate the output as well
-if [ ! -x "$lstopo" ]
-then
-    error "Could not find executable file \`$lstopo'."
-    exit 1
-fi
-# we need "Topology not from this system" in the output so as to make test-topology.sh happy
-export HWLOC_THISSYSTEM=0
-"$lstopo" - -v > "./$name.tar.gz.output"
-echo "Expected topology output stored in ./$name.tar.gz.output"
-
-exit 0

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/hwloc-gather-topology.sh.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/hwloc-gather-topology.sh.in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/hwloc-gather-topology.sh.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,87 @@
+#!/bin/sh
+#-*-sh-*-
+
+#
+# Copyright © 2009 CNRS
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
+# See COPYING in top-level directory.
+#
+
+abs_top_builddir="@abs_top_builddir@"
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+bindir="@bindir@"
+# this will be changed into $bindir/lstopo during make install
+lstopo="$abs_top_builddir/utils/lstopo"
+
+error()
+{
+    echo $@ 2>&1
+}
+
+name="$1"; shift
+if [ -z "$name" ] ; then
+  echo "$0 <savepath>"
+  echo "  Saves the Linux topology files (/sys, /proc, ...) under <savepath>.tar.bz2"
+  echo "  and the corresponding lstopo verbose output under <savepath>.output"
+  exit -1
+fi
+basename=`basename "$name"`
+dirname=`dirname "$name"`
+
+if ! mkdir -p "$dirname" ; then
+    error "Failed to create directory $dirname."
+    exit 1
+fi
+
+destdir=`mktemp -d`
+
+# Get all files from the given path (either a file or a directory)
+# ignore errors since some files may be missing, and some may be
+# Restricted to root (but we don't need them).
+# Use cat so that we properly get proc/sys files even if their
+# file length is wrong
+savepath() {
+  local dest="$1"
+  local path="$2"
+  # gather all directories, including empty ones
+  find "$path" -type d 2>/dev/null | while read dir ; do	\
+    mkdir -p "$dest/$dir" 2>/dev/null ;		\
+  done
+  # gather all files now
+  find "$path" -type f 2>/dev/null | while read file ; do	\
+    mkdir -p "$dest/"`dirname $file` ;		\
+    cat "$file" > "$dest/$file" 2>/dev/null ;	\
+  done
+}
+
+# Gather the following list of files and directories
+cat << EOF | while read path ; do savepath "$destdir/$basename" "$path" ; done
+/sys/devices/system/cpu/
+/sys/devices/system/node/
+/sys/class/dmi/id/
+/sys/kernel/mm/hugepages/
+/proc/cpuinfo
+/proc/meminfo
+/proc/stat
+/proc/device-tree/cpus
+EOF
+
+# Create the archive and keep the tree in /tmp for testing
+( cd "$destdir/" && tar cfj "$basename.tar.bz2" "$basename" )
+mv "$destdir/$basename.tar.bz2" "$dirname/$basename.tar.bz2"
+echo "Hierarchy gathered in $dirname/$basename.tar.bz2 and kept in $destdir/$basename/"
+
+# Generate the output as well
+if [ ! -x "$lstopo" ]
+then
+    error "Could not find lstopo executable in the install or build dir."
+    exit 1
+fi
+# we need "Topology not from this system" in the output so as to make test-topology.sh happy
+export HWLOC_THISSYSTEM=0
+"$lstopo" - -v > "$dirname/$basename.output"
+echo "Expected topology output stored in $dirname/$basename.output"
+
+exit 0


Property changes on: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/hwloc-gather-topology.sh.in
___________________________________________________________________
Added: svn:executable
   + *

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/test-topology.sh.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/test-topology.sh.in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux/test-topology.sh.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -2,7 +2,9 @@
 #-*-sh-*-
 
 #
-# Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+# Copyright © 2009 CNRS
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
 # See COPYING in top-level directory.
 #
@@ -10,11 +12,11 @@
 # Check the conformance of `lstopo' for all the Linux sysfs
 # hierarchies available here.  Return true on success.
 
-
+HWLOC_top_srcdir="@HWLOC_top_srcdir@"
 HWLOC_top_builddir="@HWLOC_top_builddir@"
 lstopo="$HWLOC_top_builddir/utils/lstopo"
 
-topology="$1"
+actual_output="$1"
 
 error()
 {
@@ -43,8 +45,18 @@
     then
 	result=1
     else
-	diff -uBb "$expected_output" "$output"
-	result=$?
+	if [ "$HWLOC_UPDATE_TEST_TOPOLOGY_OUTPUT" != 1 ]
+	then
+	    diff -uBb "$expected_output" "$output"
+	    result=$?
+	else
+	    if ! diff "$expected_output" "$output" >/dev/null
+	    then
+		cp -f "$output" "$expected_output"
+		echo "Updated $expected_output"
+	    fi
+	    result=0
+	fi
     fi
 
     rm "$output"
@@ -74,17 +86,33 @@
     exit 1
 fi
 
+topology="${actual_output%.output}"
+if [ "$topology" = "$actual_output" ] ;
+then
+    error "Input file \`$1' should end with .output"
+    exit 1
+fi
+actual_options="$topology".options
+
+# if there's a .source file, use the tarball name it contains instead of $topology
+if [ -f "$topology".source ] ; then
+    actual_source="$HWLOC_top_srcdir"/tests/linux/`cat "$topology".source`
+else
+    actual_source="$topology".tar.bz2
+fi
+
+actual_exclude="$HWLOC_top_srcdir/tests/linux/$topology".exclude
+[ -f "$actual_exclude" ] && tar_options="--exclude-from=$actual_exclude"
+
 result=1
 
 dir="`mktemp -d`"
 
-if ! ( gunzip -c "$topology" | ( cd "$dir" && tar xf - ) )
+if ! ( bunzip2 -c "$actual_source" | ( cd "$dir" && tar xf - $tar_options ) )
 then
     error "failed to extract topology \`$topology'"
 else
     actual_dir="`echo "$dir"/*`"
-    actual_output="$topology".output
-    actual_options="$topology".options
 
     if test_eligible "$actual_dir" "$actual_output"
     then

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux-libnuma.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux-libnuma.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/linux-libnuma.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -14,94 +16,167 @@
 int main(void)
 {
   hwloc_topology_t topology;
-  hwloc_cpuset_t set, set2;
+  hwloc_bitmap_t set, set2, nocpunodeset;
   hwloc_obj_t node;
   struct bitmask *bitmask, *bitmask2;
   nodemask_t nodemask, nodemask2;
   unsigned long mask;
   unsigned long maxnode;
+  int i;
 
   hwloc_topology_init(&topology);
   hwloc_topology_load(topology);
 
-  /* convert full nodemask/bitmask to cpuset */
-  set = hwloc_cpuset_alloc();
+  /* convert full stuff between cpuset and libnuma */
+  set = hwloc_bitmap_alloc();
+  nocpunodeset = hwloc_bitmap_alloc();
   /* gather all nodes if any, or the whole system if no nodes */
   if (hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE)) {
     node = NULL;
-    while ((node = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, node)) != NULL)
-      hwloc_cpuset_or(set, set, node->cpuset);
+    while ((node = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, node)) != NULL) {
+      hwloc_bitmap_or(set, set, node->cpuset);
+      if (hwloc_bitmap_iszero(node->cpuset))
+	hwloc_bitmap_set(nocpunodeset, node->os_index);
+    }
   } else {
-    hwloc_cpuset_or(set, set, hwloc_topology_get_complete_cpuset(topology));
+    hwloc_bitmap_or(set, set, hwloc_topology_get_complete_cpuset(topology));
   }
 
-  set2 = hwloc_cpuset_alloc();
+  set2 = hwloc_bitmap_alloc();
   hwloc_cpuset_from_linux_libnuma_bitmask(topology, set2, numa_all_nodes_ptr);
-  assert(hwloc_cpuset_isequal(set, set2));
-  hwloc_cpuset_free(set2);
+  assert(hwloc_bitmap_isequal(set, set2));
+  hwloc_bitmap_free(set2);
 
-  set2 = hwloc_cpuset_alloc();
+  set2 = hwloc_bitmap_alloc();
   hwloc_cpuset_from_linux_libnuma_nodemask(topology, set2, &numa_all_nodes);
-  assert(hwloc_cpuset_isequal(set, set2));
-  hwloc_cpuset_free(set2);
+  assert(hwloc_bitmap_isequal(set, set2));
+  hwloc_bitmap_free(set2);
 
-
-  /* convert full cpuset to nodemask/bitmask */
   bitmask = hwloc_cpuset_to_linux_libnuma_bitmask(topology, set);
+  hwloc_bitmap_foreach_begin(i, nocpunodeset) { numa_bitmask_setbit(bitmask, i); } hwloc_bitmap_foreach_end();
   assert(numa_bitmask_equal(bitmask, numa_all_nodes_ptr));
   numa_bitmask_free(bitmask);
 
   hwloc_cpuset_to_linux_libnuma_nodemask(topology, set, &nodemask);
+  hwloc_bitmap_foreach_begin(i, nocpunodeset) { nodemask_set(&nodemask, i); } hwloc_bitmap_foreach_end();
   assert(!memcmp(&nodemask, &numa_all_nodes, sizeof(nodemask_t)));
-  hwloc_cpuset_free(set);
 
-  /* convert empty nodemask/bitmask to cpuset */
+  hwloc_bitmap_free(set);
+  hwloc_bitmap_free(nocpunodeset);
+
+  /* convert full stuff between nodeset and libnuma */
+  if (hwloc_get_nbobjs_by_type(topology, HWLOC_OBJ_NODE)) {
+    set = hwloc_bitmap_dup(hwloc_get_root_obj(topology)->complete_nodeset);
+  } else {
+    set = hwloc_bitmap_alloc();
+    hwloc_bitmap_fill(set);
+  }
+
+  set2 = hwloc_bitmap_alloc();
+  hwloc_nodeset_from_linux_libnuma_bitmask(topology, set2, numa_all_nodes_ptr);
+  assert(hwloc_bitmap_isequal(set, set2));
+  hwloc_bitmap_free(set2);
+
+  set2 = hwloc_bitmap_alloc();
+  hwloc_nodeset_from_linux_libnuma_nodemask(topology, set2, &numa_all_nodes);
+  assert(hwloc_bitmap_isequal(set, set2));
+  hwloc_bitmap_free(set2);
+
+  bitmask = hwloc_nodeset_to_linux_libnuma_bitmask(topology, set);
+  assert(numa_bitmask_equal(bitmask, numa_all_nodes_ptr));
+  numa_bitmask_free(bitmask);
+
+  hwloc_nodeset_to_linux_libnuma_nodemask(topology, set, &nodemask);
+  assert(!memcmp(&nodemask, &numa_all_nodes, sizeof(nodemask_t)));
+
+  hwloc_bitmap_free(set);
+
+  /* convert empty stuff between cpuset and libnuma */
   nodemask_zero(&nodemask);
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   hwloc_cpuset_from_linux_libnuma_nodemask(topology, set, &nodemask);
-  assert(hwloc_cpuset_iszero(set));
-  hwloc_cpuset_free(set);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
 
   bitmask = numa_bitmask_alloc(1);
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   hwloc_cpuset_from_linux_libnuma_bitmask(topology, set, bitmask);
   numa_bitmask_free(bitmask);
-  assert(hwloc_cpuset_iszero(set));
-  hwloc_cpuset_free(set);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
 
   mask=0;
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   hwloc_cpuset_from_linux_libnuma_ulongs(topology, set, &mask, sizeof(mask)*8);
-  assert(hwloc_cpuset_iszero(set));
-  hwloc_cpuset_free(set);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
 
-
-  /* convert empty nodemask/bitmask from cpuset */
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   bitmask = hwloc_cpuset_to_linux_libnuma_bitmask(topology, set);
   bitmask2 = numa_bitmask_alloc(1);
   assert(numa_bitmask_equal(bitmask, bitmask2));
   numa_bitmask_free(bitmask);
   numa_bitmask_free(bitmask2);
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   hwloc_cpuset_to_linux_libnuma_nodemask(topology, set, &nodemask);
   nodemask_zero(&nodemask2);
   assert(nodemask_equal(&nodemask, &nodemask2));
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
-  set = hwloc_cpuset_alloc();
+  set = hwloc_bitmap_alloc();
   maxnode = sizeof(mask)*8;
   hwloc_cpuset_to_linux_libnuma_ulongs(topology, set, &mask, &maxnode);
   assert(!mask);
   assert(!maxnode);
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
+  /* convert empty stuff between nodeset and libnuma */
+  nodemask_zero(&nodemask);
+  set = hwloc_bitmap_alloc();
+  hwloc_nodeset_from_linux_libnuma_nodemask(topology, set, &nodemask);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
 
-  /* convert first node nodemask/bitmask from/to cpuset */
+  bitmask = numa_bitmask_alloc(1);
+  set = hwloc_bitmap_alloc();
+  hwloc_nodeset_from_linux_libnuma_bitmask(topology, set, bitmask);
+  numa_bitmask_free(bitmask);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
+
+  mask=0;
+  set = hwloc_bitmap_alloc();
+  hwloc_nodeset_from_linux_libnuma_ulongs(topology, set, &mask, sizeof(mask)*8);
+  assert(hwloc_bitmap_iszero(set));
+  hwloc_bitmap_free(set);
+
+  set = hwloc_bitmap_alloc();
+  bitmask = hwloc_nodeset_to_linux_libnuma_bitmask(topology, set);
+  bitmask2 = numa_bitmask_alloc(1);
+  assert(numa_bitmask_equal(bitmask, bitmask2));
+  numa_bitmask_free(bitmask);
+  numa_bitmask_free(bitmask2);
+  hwloc_bitmap_free(set);
+
+  set = hwloc_bitmap_alloc();
+  hwloc_nodeset_to_linux_libnuma_nodemask(topology, set, &nodemask);
+  nodemask_zero(&nodemask2);
+  assert(nodemask_equal(&nodemask, &nodemask2));
+  hwloc_bitmap_free(set);
+
+  set = hwloc_bitmap_alloc();
+  maxnode = sizeof(mask)*8;
+  hwloc_nodeset_to_linux_libnuma_ulongs(topology, set, &mask, &maxnode);
+  assert(!mask);
+  assert(!maxnode);
+  hwloc_bitmap_free(set);
+
+  /* convert first node between cpuset/nodeset and libnuma */
   node = hwloc_get_next_obj_by_type(topology, HWLOC_OBJ_NODE, NULL);
   if (node) {
+    /* convert first node between cpuset and libnuma */
     hwloc_cpuset_to_linux_libnuma_nodemask(topology, node->cpuset, &nodemask);
     assert(nodemask_isset(&nodemask, node->os_index));
     nodemask_clr(&nodemask, node->os_index);
@@ -125,6 +200,81 @@
       assert(maxnode = node->os_index + 1);
       assert(mask == (1U<<node->os_index));
     }
+
+    set = hwloc_bitmap_alloc();
+    nodemask_zero(&nodemask);
+    nodemask_set(&nodemask, node->os_index);
+    hwloc_cpuset_from_linux_libnuma_nodemask(topology, set, &nodemask);
+    assert(hwloc_bitmap_isequal(set, node->cpuset));
+    hwloc_bitmap_free(set);
+
+    set = hwloc_bitmap_alloc();
+    bitmask = numa_bitmask_alloc(1);
+    numa_bitmask_setbit(bitmask, 0);
+    hwloc_cpuset_from_linux_libnuma_bitmask(topology, set, bitmask);
+    numa_bitmask_free(bitmask);
+    assert(hwloc_bitmap_isequal(set, node->cpuset));
+    hwloc_bitmap_free(set);
+
+    set = hwloc_bitmap_alloc();
+    if (node->os_index >= sizeof(mask)*8) {
+      mask = 0;
+    } else {
+      mask = 1 << node->os_index;
+    }
+    hwloc_cpuset_from_linux_libnuma_ulongs(topology, set, &mask, 1);
+    assert(hwloc_bitmap_isequal(set, node->cpuset));
+    hwloc_bitmap_free(set);
+
+    /* convert first node between nodeset and libnuma */
+    hwloc_nodeset_to_linux_libnuma_nodemask(topology, node->nodeset, &nodemask);
+    assert(nodemask_isset(&nodemask, node->os_index));
+    nodemask_clr(&nodemask, node->os_index);
+    nodemask_zero(&nodemask2);
+    assert(nodemask_equal(&nodemask, &nodemask2));
+
+    bitmask = hwloc_nodeset_to_linux_libnuma_bitmask(topology, node->nodeset);
+    assert(numa_bitmask_isbitset(bitmask, node->os_index));
+    numa_bitmask_clearbit(bitmask, node->os_index);
+    bitmask2 = numa_bitmask_alloc(1);
+    assert(numa_bitmask_equal(bitmask, bitmask2));
+    numa_bitmask_free(bitmask);
+    numa_bitmask_free(bitmask2);
+
+    maxnode = sizeof(mask)*8;
+    hwloc_nodeset_to_linux_libnuma_ulongs(topology, node->nodeset, &mask, &maxnode);
+    if (node->os_index >= sizeof(mask)*8) {
+      assert(!maxnode);
+      assert(!mask);
+    } else {
+      assert(maxnode = node->os_index + 1);
+      assert(mask == (1U<<node->os_index));
+    }
+
+    set = hwloc_bitmap_alloc();
+    nodemask_zero(&nodemask);
+    nodemask_set(&nodemask, node->os_index);
+    hwloc_nodeset_from_linux_libnuma_nodemask(topology, set, &nodemask);
+    assert(hwloc_bitmap_isequal(set, node->nodeset));
+    hwloc_bitmap_free(set);
+
+    set = hwloc_bitmap_alloc();
+    bitmask = numa_bitmask_alloc(1);
+    numa_bitmask_setbit(bitmask, 0);
+    hwloc_nodeset_from_linux_libnuma_bitmask(topology, set, bitmask);
+    numa_bitmask_free(bitmask);
+    assert(hwloc_bitmap_isequal(set, node->nodeset));
+    hwloc_bitmap_free(set);
+
+    set = hwloc_bitmap_alloc();
+    if (node->os_index >= sizeof(mask)*8) {
+      mask = 0;
+    } else {
+      mask = 1 << node->os_index;
+    }
+    hwloc_nodeset_from_linux_libnuma_ulongs(topology, set, &mask, 1);
+    assert(hwloc_bitmap_isequal(set, node->nodeset));
+    hwloc_bitmap_free(set);
   }
 
 

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/myriexpress.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/myriexpress.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/myriexpress.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,77 @@
+/*
+ * Copyright © 2010 INRIA
+ * See COPYING in top-level directory.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <myriexpress.h>
+#include <hwloc.h>
+#include <hwloc/myriexpress.h>
+
+/* check the myriexpress helpers */
+
+int main(void)
+{
+  hwloc_topology_t topology;
+  mx_return_t ret;
+  unsigned i, count;
+  int err;
+
+  putenv("MX_ERRORS_ARE_FATAL=0");
+
+  ret = mx_init();
+  if (ret != MX_SUCCESS) {
+    fprintf(stderr, "mx_init failed, %s\n", mx_strerror(ret));
+    return 0;
+  }
+
+  mx_get_info(NULL, MX_NIC_COUNT, NULL, 0, &count, sizeof(count));
+  if (ret != MX_SUCCESS) {
+    fprintf(stderr, "mx_get_info MX_NIC_COUNT failed, %s\n", mx_strerror(ret));
+    return 0;
+  }
+
+  hwloc_topology_init(&topology);
+  hwloc_topology_load(topology);
+
+  for(i=0; i<count; i++) {
+    mx_endpoint_t ep;
+    char *cpuset_string;
+    hwloc_bitmap_t set;
+
+    ret = mx_open_endpoint(i, MX_ANY_ENDPOINT, 0, NULL, 0, &ep);
+    if (ret != MX_SUCCESS)
+      continue;
+    set = hwloc_bitmap_alloc();
+    err = hwloc_mx_endpoint_get_device_cpuset(topology, ep, set);
+    if (err < 0) {
+      perror("hwloc_mx_endpoint_get_device_cpuset failed");
+      return -1;
+    }
+    hwloc_bitmap_asprintf(&cpuset_string, set);
+    printf("got cpuset %s for endpoint on board #%d\n",
+	   cpuset_string, i);
+    free(cpuset_string);
+    hwloc_bitmap_free(set);
+    mx_close_endpoint(ep);
+
+    set = hwloc_bitmap_alloc();
+    err = hwloc_mx_board_get_device_cpuset(topology, i, set);
+    if (err < 0) {
+      perror("hwloc_mx_board_get_device_cpuset failed");
+      return -1;
+    }
+    hwloc_bitmap_asprintf(&cpuset_string, set);
+    printf("got cpuset %s for board #%d\n",
+           cpuset_string, i);
+    free(cpuset_string);
+    hwloc_bitmap_free(set);
+  }
+
+  hwloc_topology_destroy(topology);
+
+  mx_finalize();
+
+  return 0;
+}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/openfabrics-verbs.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/openfabrics-verbs.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/openfabrics-verbs.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -18,6 +20,7 @@
   hwloc_topology_t topology;
   struct ibv_device **dev_list, *dev;
   int count, i;
+  int err;
 
   dev_list = ibv_get_device_list(&count);
   if (!dev_list) {
@@ -30,22 +33,22 @@
   hwloc_topology_load(topology);
 
   for(i=0; i<count; i++) {
-    hwloc_cpuset_t set;
+    hwloc_bitmap_t set;
     dev = dev_list[i];
 
-    set = hwloc_cpuset_alloc();
-    hwloc_ibv_get_device_cpuset(topology, dev, set);
-    if (!set) {
+    set = hwloc_bitmap_alloc();
+    err = hwloc_ibv_get_device_cpuset(topology, dev, set);
+    if (err < 0) {
       printf("failed to get cpuset for device %d (%s)\n",
 	     i, ibv_get_device_name(dev));
     } else {
       char *cpuset_string = NULL;
-      hwloc_cpuset_asprintf(&cpuset_string, set);
+      hwloc_bitmap_asprintf(&cpuset_string, set);
       printf("got cpuset %s for device %d (%s)\n",
 	     cpuset_string, i, ibv_get_device_name(dev));
       free(cpuset_string);
-      hwloc_cpuset_free(set);
     }
+    hwloc_bitmap_free(set);
   }
 
   hwloc_topology_destroy(topology);

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,5 @@
-# Copyright 2009 INRIA, Université Bordeaux 1
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009 Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CFLAGS = $(HWLOC_CFLAGS)
@@ -53,7 +54,7 @@
         -I$(HWLOC_top_srcdir)/include \
         -I$(HWLOC_top_srcdir)/tests/ports/include \
         -DHWLOC_COMPILE_PORTS \
-        -DHWLOC_SOLARIS_SYS -DHAVE_LIBLGRP -DHAVE_LIBKSTAT \
+        -DHWLOC_SOLARIS_SYS -DHAVE_LIBLGRP -DHAVE_LIBKSTAT -DHAVE_LGRP_LATENCY_COOKIE \
         -DHWLOC_AIX_SYS \
         -DHWLOC_OSF_SYS \
         -DHWLOC_WIN_SYS \

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/cpuset.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/cpuset.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/cpuset.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/kstat.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/kstat.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/kstat.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/numa.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/numa.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/numa.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -14,4 +15,15 @@
 int rad_get_cpus(radid_t rad, cpuset_t cpuset);
 ssize_t rad_get_physmem(radid_t rad);
 
+typedef struct {
+  unsigned long mattr_policy;
+  radid_t mattr_rad;
+  radset_t mattr_radset;
+} memalloc_attr_t;
+
+void *nmmap(void *addr, size_t len, int prot, unsigned long flags, int filedes, off_t off, memalloc_attr_t *attr );
+int nmadvise(const void *addr, long len, int behavior, memalloc_attr_t *attr);
+
+
+
 #endif /* HWLOC_PORT_NUMA_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/pthread_np.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/pthread_np.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/pthread_np.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/radset.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/radset.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/radset.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -72,6 +73,9 @@
 } memalloc_policy_t;
 #define MPOL_NO_MIGRATE 0x100
 
+#define MADV_CURRENT 1
+#define MADV_INSIST 2
+
 int nloc(numa_attr_t *numa_attr, radset_t radset);
 
 #endif /* HWLOC_PORT_RADSET_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/cpuset.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/cpuset.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/cpuset.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,5 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/lgrp_user.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/lgrp_user.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/lgrp_user.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -33,6 +34,12 @@
 	LGRP_LAT_CPU_TO_MEM
 } lgrp_lat_between_t;
 
+typedef enum lgrp_affinity {
+	LGRP_AFF_NONE,
+	LGRP_AFF_WEAK,
+	LGRP_AFF_STRONG,
+} lgrp_affinity_t;
+
 lgrp_cookie_t lgrp_init(lgrp_view_t view);
 
 int lgrp_nlgrps(lgrp_cookie_t cookie);
@@ -41,7 +48,14 @@
 int lgrp_children(lgrp_cookie_t cookie, lgrp_id_t parent, lgrp_id_t *lgrp_array, unsigned int lgrp_array_size);
 lgrp_mem_size_t lgrp_mem_size(lgrp_cookie_t cookie, lgrp_id_t lgrp, lgrp_mem_size_flag_t type, lgrp_content_t content);
 int lgrp_latency_cookie(lgrp_cookie_t cookie, lgrp_id_t from, lgrp_id_t to, lgrp_lat_between_t between);
+int lgrp_affinity_set(idtype_t idtype, id_t id, lgrp_id_t lgrp, lgrp_affinity_t aff);
+lgrp_affinity_t lgrp_affinity_get(idtype_t idtype, id_t id, lgrp_id_t lgrp);
 
 int lgrp_fini(lgrp_cookie_t cookie);
 
+/* Should actually be in sys/mman.h, but don't want to interfere with the system one */
+#define MADV_ACCESS_DEFAULT 6
+#define MADV_ACCESS_LWP     7
+#define MADV_ACCESS_MANY    8
+
 #endif /* HWLOC_PORT_SYS_LGRP_USER_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/mpctl.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/mpctl.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/mpctl.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/processor.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/processor.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/processor.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/procset.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/procset.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/procset.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/rset.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/rset.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/rset.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -10,13 +11,26 @@
 
 #include "thread.h"
 
+typedef unsigned int uint_t;
 typedef void *rsethandle_t;
 
 #define RS_EMPTY 3
 #define RS_ALL 2
 #define RS_PARTITION 3
 
+#define RS_UNION 1
+#define RS_INTERSECTION 2
+#define RS_EXCLUSION 3
+#define RS_COPY 4
+#define RS_FIRST 5
+#define RS_NEXT 6
+#define RS_NEXT_WRAP 7
+#define RS_ISEMPTY 8
+#define RS_ISEQUAL 9
+#define RS_ISCONTAINED 10
 #define RS_TESTRESOURCE 11
+#define RS_ADDRESOURCE 12
+#define RS_DELRESOURCE 13
 
 typedef int rsinfo_t;
 #define R_NUMPROCS 0
@@ -37,6 +51,10 @@
 #define R_FILDES 5
 #define R_THREAD 6
 
+#define P_DEFAULT 0
+#define P_FIRST_TOUCH 1
+#define P_BALANCED 2	/* This is the default */
+
 rsethandle_t rs_alloc (unsigned int flags);
 int rs_numrads(rsethandle_t rset, unsigned int sdl, unsigned int flags);
 int rs_getrad (rsethandle_t rset, rsethandle_t rad, unsigned int sdl, unsigned int index, unsigned int flags);
@@ -70,4 +88,7 @@
 int ra_detachrset (rstype_t rstype, rsid_t rsid, unsigned int flags);
 int ra_getrset (rstype_t rstype, rsid_t rsid, unsigned int flags, rsethandle_t rset);
 
+void * ra_mmap(void *addr, off64_t len, int prot, int flags, int fildes, off64_t off, rstype_t rstype, rsid_t rsid, unsigned int att_flags);
+
+
 #endif /* HWLOC_PORT_SYS_RSET_H */

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/sysctl.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/sysctl.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/sysctl.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/thread.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/thread.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/sys/thread.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/windows.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/windows.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/ports/include/windows.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,6 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -20,7 +21,8 @@
 typedef unsigned long ULONG_PTR, DWORD_PTR, DWORD, *PDWORD, *PDWORD_PTR;
 typedef const char *LPCSTR;
 typedef int (*FARPROC)();
-typedef void *PVOID;
+typedef void *PVOID,*LPVOID;
+typedef ULONG_PTR SIZE_T;
 
 // This is to cope with linux using integers for hwloc_pid_t and hwloc_thread_t
 //typedef PVOID HANDLE;
@@ -40,6 +42,12 @@
 
 #define ERROR_INSUFFICIENT_BUFFER 122L
 
+#define MEM_COMMIT	0x1000
+#define MEM_RESERVE	0x2000
+#define MEM_RELEASE	0x8000
+
+#define PAGE_EXECUTE_READWRITE	0x0040
+
 WINAPI HINSTANCE LoadLibrary(LPCSTR);
 WINAPI void *GetProcAddress(HINSTANCE, LPCSTR);
 WINAPI DWORD GetLastError(void);
@@ -51,6 +59,8 @@
 HANDLE WINAPI GetCurrentThread(void);
 HANDLE WINAPI GetCurrentProcess(void);
 
+PVOID WINAPI VirtualAlloc(PVOID,DWORD,DWORD,DWORD);
+
 BOOL GetNumaAvailableMemoryNode(UCHAR Node, PULONGLONG AvailableBytes);
 
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16amd64-8n2c-cpusets.xml
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16amd64-8n2c-cpusets.xml	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16amd64-8n2c-cpusets.xml	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,18 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE topology SYSTEM "hwloc.dtd">
 <topology>
-  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000f06f" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffef" allowed_cpuset="0x0000f07f" nodeset="0x000000ff" complete_nodeset="0x000000ff" allowed_nodeset="0x0000003e" dmi_board_vendor="TYAN Computer Corp" dmi_board_name="S4881 ">
+  <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000f06f" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffef" allowed_cpuset="0x0000f07f" nodeset="0x000000ff" complete_nodeset="0x000000ff" allowed_nodeset="0x0000003e">
+    <info name="DMIBoardVendor" value="TYAN Computer Corp"/>
+    <info name="DMIBoardName" value="S4881 "/>
     <object type="NUMANode" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
       <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
-        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
               <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0">
               <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" nodeset="0x00000001" complete_nodeset="0x00000001" allowed_nodeset="0x0"/>
             </object>
@@ -22,15 +24,15 @@
     </object>
     <object type="NUMANode" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" local_memory="8589934592">
       <object type="Socket" os_level="-1" os_index="1" cpuset="0x0000000c" complete_cpuset="0x0000000c" online_cpuset="0x0000000c" allowed_cpuset="0x0000000c" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
-        <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
               <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002">
               <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" nodeset="0x00000002" complete_nodeset="0x00000002" allowed_nodeset="0x00000002"/>
             </object>
@@ -40,8 +42,8 @@
     </object>
     <object type="NUMANode" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000030" online_cpuset="0x00000020" allowed_cpuset="0x00000030" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" local_memory="8589934592">
       <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000020" complete_cpuset="0x00000030" online_cpuset="0x00000020" allowed_cpuset="0x00000030" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004">
-        <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004">
               <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020" nodeset="0x00000004" complete_nodeset="0x00000004" allowed_nodeset="0x00000004"/>
             </object>
@@ -51,8 +53,8 @@
     </object>
     <object type="NUMANode" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" local_memory="8589934592">
       <object type="Socket" os_level="-1" os_index="3" cpuset="0x00000040" complete_cpuset="0x000000c0" online_cpuset="0x000000c0" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008">
-        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008">
               <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" nodeset="0x00000008" complete_nodeset="0x00000008" allowed_nodeset="0x00000008"/>
             </object>
@@ -64,15 +66,15 @@
     <object type="NUMANode" os_level="-1" os_index="5" cpuset="0x0" complete_cpuset="0x00000c00" online_cpuset="0x00000c00" allowed_cpuset="0x0" nodeset="0x00000020" complete_nodeset="0x00000020" allowed_nodeset="0x00000020" local_memory="8589934592"/>
     <object type="NUMANode" os_level="-1" os_index="6" cpuset="0x00003000" complete_cpuset="0x00003000" online_cpuset="0x00003000" allowed_cpuset="0x00003000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
       <object type="Socket" os_level="-1" os_index="6" cpuset="0x00003000" complete_cpuset="0x00003000" online_cpuset="0x00003000" allowed_cpuset="0x00003000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
-        <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
               <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0">
               <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000" nodeset="0x00000040" complete_nodeset="0x00000040" allowed_nodeset="0x0"/>
             </object>
@@ -82,15 +84,15 @@
     </object>
     <object type="NUMANode" os_level="-1" os_index="7" cpuset="0x0000c000" complete_cpuset="0x0000c000" online_cpuset="0x0000c000" allowed_cpuset="0x0000c000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
       <object type="Socket" os_level="-1" os_index="7" cpuset="0x0000c000" complete_cpuset="0x0000c000" online_cpuset="0x0000c000" allowed_cpuset="0x0000c000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
-        <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
               <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0" cache_size="65536" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0">
               <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" nodeset="0x00000080" complete_nodeset="0x00000080" allowed_nodeset="0x0"/>
             </object>

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t-offlines.xml
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t-offlines.xml	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t-offlines.xml	2010-11-24 09:21:55 UTC (rev 7494)
@@ -3,16 +3,16 @@
 <topology>
   <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000905b" complete_cpuset="0x0001915b" online_cpuset="0x0000905b" allowed_cpuset="0x0000915b">
     <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001011" complete_cpuset="0x00001011" online_cpuset="0x00001011" allowed_cpuset="0x00001011">
-      <object type="Cache" os_level="-1" cpuset="0x00001011" complete_cpuset="0x00001011" online_cpuset="0x00001011" allowed_cpuset="0x00001011" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00001011" complete_cpuset="0x00001011" online_cpuset="0x00001011" allowed_cpuset="0x00001011" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
               <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010">
               <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
               <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000"/>
@@ -22,9 +22,9 @@
       </object>
     </object>
     <object type="Socket" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
-      <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
               <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
             </object>
@@ -33,16 +33,16 @@
       </object>
     </object>
     <object type="Socket" os_level="-1" os_index="3" cpuset="0x00008008" complete_cpuset="0x00008008" online_cpuset="0x00008008" allowed_cpuset="0x00008008">
-      <object type="Cache" os_level="-1" cpuset="0x00008008" complete_cpuset="0x00008008" online_cpuset="0x00008008" allowed_cpuset="0x00008008" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00008008" complete_cpuset="0x00008008" online_cpuset="0x00008008" allowed_cpuset="0x00008008" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008">
               <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" cache_size="16384" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000">
               <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000"/>
             </object>
@@ -51,9 +51,9 @@
       </object>
     </object>
     <object type="Socket" os_level="-1" os_index="2" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040">
-      <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040">
               <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
             </object>

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t.xml
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t.xml	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/16em64t-4s2c2t.xml	2010-11-24 09:21:55 UTC (rev 7494)
@@ -2,18 +2,22 @@
 <!DOCTYPE topology SYSTEM "hwloc.dtd">
 <topology>
   <object type="Machine" os_level="-1" os_index="0" cpuset="0x0000ffff" complete_cpuset="0x0000ffff" online_cpuset="0x0000ffff" allowed_cpuset="0x0000ffff">
+    <page_type size="4096" count="500"/>
+    <page_type size="8192" count="0"/>
+    <info name="infowithvalue" value="value"/>
+    <info name="infowithoutvalue" value=""/>
     <object type="Socket" os_level="-1" os_index="0" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111">
-      <object type="Cache" os_level="-1" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00001111" complete_cpuset="0x00001111" online_cpuset="0x00001111" allowed_cpuset="0x00001111" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000101" complete_cpuset="0x00000101" online_cpuset="0x00000101" allowed_cpuset="0x00000101">
               <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
               <object type="PU" os_level="-1" os_index="8" cpuset="0x00000100" complete_cpuset="0x00000100" online_cpuset="0x00000100" allowed_cpuset="0x00000100"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00001010" complete_cpuset="0x00001010" online_cpuset="0x00001010" allowed_cpuset="0x00001010">
               <object type="PU" os_level="-1" os_index="4" cpuset="0x00000010" complete_cpuset="0x00000010" online_cpuset="0x00000010" allowed_cpuset="0x00000010"/>
               <object type="PU" os_level="-1" os_index="12" cpuset="0x00001000" complete_cpuset="0x00001000" online_cpuset="0x00001000" allowed_cpuset="0x00001000"/>
@@ -23,17 +27,17 @@
       </object>
     </object>
     <object type="Socket" os_level="-1" os_index="1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222">
-      <object type="Cache" os_level="-1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00002222" complete_cpuset="0x00002222" online_cpuset="0x00002222" allowed_cpuset="0x00002222" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000202" complete_cpuset="0x00000202" online_cpuset="0x00000202" allowed_cpuset="0x00000202">
               <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
               <object type="PU" os_level="-1" os_index="9" cpuset="0x00000200" complete_cpuset="0x00000200" online_cpuset="0x00000200" allowed_cpuset="0x00000200"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="16384" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00002020" complete_cpuset="0x00002020" online_cpuset="0x00002020" allowed_cpuset="0x00002020">
               <object type="PU" os_level="-1" os_index="5" cpuset="0x00000020" complete_cpuset="0x00000020" online_cpuset="0x00000020" allowed_cpuset="0x00000020"/>
               <object type="PU" os_level="-1" os_index="13" cpuset="0x00002000" complete_cpuset="0x00002000" online_cpuset="0x00002000" allowed_cpuset="0x00002000"/>
@@ -43,17 +47,17 @@
       </object>
     </object>
     <object type="Socket" os_level="-1" os_index="2" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444">
-      <object type="Cache" os_level="-1" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00004444" complete_cpuset="0x00004444" online_cpuset="0x00004444" allowed_cpuset="0x00004444" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000404" complete_cpuset="0x00000404" online_cpuset="0x00000404" allowed_cpuset="0x00000404">
               <object type="PU" os_level="-1" os_index="2" cpuset="0x00000004" complete_cpuset="0x00000004" online_cpuset="0x00000004" allowed_cpuset="0x00000004"/>
               <object type="PU" os_level="-1" os_index="10" cpuset="0x00000400" complete_cpuset="0x00000400" online_cpuset="0x00000400" allowed_cpuset="0x00000400"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="16384" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00004040" complete_cpuset="0x00004040" online_cpuset="0x00004040" allowed_cpuset="0x00004040">
               <object type="PU" os_level="-1" os_index="6" cpuset="0x00000040" complete_cpuset="0x00000040" online_cpuset="0x00000040" allowed_cpuset="0x00000040"/>
               <object type="PU" os_level="-1" os_index="14" cpuset="0x00004000" complete_cpuset="0x00004000" online_cpuset="0x00004000" allowed_cpuset="0x00004000"/>
@@ -63,17 +67,17 @@
       </object>
     </object>
     <object type="Socket" os_level="-1" os_index="3" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888">
-      <object type="Cache" os_level="-1" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888" cache_size="4194304" depth="3">
-        <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="16384" depth="1">
+      <object type="Cache" os_level="-1" cpuset="0x00008888" complete_cpuset="0x00008888" online_cpuset="0x00008888" allowed_cpuset="0x00008888" cache_size="4194304" depth="3" cache_linesize="0">
+        <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="0" cpuset="0x00000808" complete_cpuset="0x00000808" online_cpuset="0x00000808" allowed_cpuset="0x00000808">
               <object type="PU" os_level="-1" os_index="3" cpuset="0x00000008" complete_cpuset="0x00000008" online_cpuset="0x00000008" allowed_cpuset="0x00000008"/>
               <object type="PU" os_level="-1" os_index="11" cpuset="0x00000800" complete_cpuset="0x00000800" online_cpuset="0x00000800" allowed_cpuset="0x00000800"/>
             </object>
           </object>
         </object>
-        <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="1048576" depth="2">
-          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="16384" depth="1">
+        <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="1048576" depth="2" cache_linesize="0">
+          <object type="Cache" os_level="-1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080" cache_size="16384" depth="1" cache_linesize="0">
             <object type="Core" os_level="-1" os_index="1" cpuset="0x00008080" complete_cpuset="0x00008080" online_cpuset="0x00008080" allowed_cpuset="0x00008080">
               <object type="PU" os_level="-1" os_index="7" cpuset="0x00000080" complete_cpuset="0x00000080" online_cpuset="0x00000080" allowed_cpuset="0x00000080"/>
               <object type="PU" os_level="-1" os_index="15" cpuset="0x00008000" complete_cpuset="0x00008000" online_cpuset="0x00008000" allowed_cpuset="0x00008000"/>

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/8em64t-2mi2ma2c.xml
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/8em64t-2mi2ma2c.xml	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/8em64t-2mi2ma2c.xml	2010-11-24 09:21:55 UTC (rev 7494)
@@ -3,17 +3,17 @@
 <topology>
   <object type="System" os_level="-1" os_index="0">
     <object type="Group" os_level="-1" depth="0">
-      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" dmi_board_vendor="Dell Inc." dmi_board_name="0F331C" local_memory="1016368">
+      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" local_memory="1016368">
         <page_type size="4096" count="65536"/>
         <page_type size="1048576" count="1024"/>
         <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003">
-          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2">
-            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1">
+          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2" cache_linesize="0">
+            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
                 <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
               </object>
             </object>
-            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1">
+            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
                 <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
               </object>
@@ -21,16 +21,18 @@
           </object>
         </object>
       </object>
-      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" dmi_board_vendor="Dell Inc." dmi_board_name="0F331C" local_memory="1016368">
+      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" local_memory="1016368">
         <page_type size="8192" count="1048576"/>
+        <info name="DMIBoardVendor" value="Dell Inc."/>
+        <info name="DMIBoardName" value="0F331C"/>
         <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003">
-          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2">
-            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1">
+          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2" cache_linesize="0">
+            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
                 <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
               </object>
             </object>
-            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1">
+            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
                 <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
               </object>
@@ -40,16 +42,18 @@
       </object>
     </object>
     <object type="Group" os_level="-1" depth="0">
-      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" dmi_board_vendor="Dell Inc." dmi_board_name="0F331C" local_memory="1016368">
-        <page_type size="2048" count="0"/>
+      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" local_memory="1016368">
+        <page_type size="2048" count="1"/>
+        <info name="DMIBoardVendor" value="Dell Inc."/>
+        <info name="DMIBoardName" value="0F331C"/>
         <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003">
-          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2">
-            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1">
+          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2" cache_linesize="0">
+            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
                 <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
               </object>
             </object>
-            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1">
+            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
                 <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
               </object>
@@ -57,18 +61,20 @@
           </object>
         </object>
       </object>
-      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" dmi_board_vendor="Dell Inc." dmi_board_name="0F331C" local_memory="1016368">
-        <page_type size="2048" count="0"/>
+      <object type="Machine" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" local_memory="1016368">
+        <page_type size="2048" count="2"/>
         <page_type size="4096" count="65536"/>
         <page_type size="1048576" count="2048"/>
+        <info name="DMIBoardVendor" value="Dell Inc."/>
+        <info name="DMIBoardName" value="0F331C"/>
         <object type="Socket" os_level="-1" os_index="0" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003">
-          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2">
-            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1">
+          <object type="Cache" os_level="-1" cpuset="0x00000003" complete_cpuset="0x00000003" online_cpuset="0x00000003" allowed_cpuset="0x00000003" cache_size="2097152" depth="2" cache_linesize="0">
+            <object type="Cache" os_level="-1" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001">
                 <object type="PU" os_level="-1" os_index="0" cpuset="0x00000001" complete_cpuset="0x00000001" online_cpuset="0x00000001" allowed_cpuset="0x00000001"/>
               </object>
             </object>
-            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1">
+            <object type="Cache" os_level="-1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002" cache_size="32768" depth="1" cache_linesize="0">
               <object type="Core" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002">
                 <object type="PU" os_level="-1" os_index="1" cpuset="0x00000002" complete_cpuset="0x00000002" online_cpuset="0x00000002" allowed_cpuset="0x00000002"/>
               </object>

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,5 @@
-# Copyright 2009 INRIA, Université Bordeaux 1
+# Copyright © 2009 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CFLAGS = $(HWLOC_CFLAGS)

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/test-topology.sh.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/test-topology.sh.in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xml/test-topology.sh.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -2,7 +2,9 @@
 #-*-sh-*-
 
 #
-# Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+# Copyright © 2009 CNRS
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2010 Cisco Systems, Inc.  All rights reserved.
 # See COPYING in top-level directory.
 #
@@ -39,11 +41,23 @@
 file="$tmp/lstopo_xml.output.xml"
 
 set -e
-$lstopo --xml "$1" "$file"
-diff @HWLOC_DIFF_U@ "$1" "$file"
+$lstopo --if xml --input "$1" --of xml "$file"
+
+if [ "$HWLOC_UPDATE_TEST_TOPOLOGY_OUTPUT" != 1 ]
+then
+    diff @HWLOC_DIFF_U@ "$1" "$file"
+else
+    if ! diff "$1" "$file" >/dev/null
+    then
+	cp -f "$file" "$1"
+	echo "Updated $1"
+    fi
+fi
+
 if [ -n "@XMLLINT@" ]
 then
-  cp "$HWLOC_top_srcdir"/src/hwloc.dtd "$tmp/"
-  @XMLLINT@ --valid "$file" > /dev/null
+    cp "$HWLOC_top_srcdir"/src/hwloc.dtd "$tmp/"
+    @XMLLINT@ --valid "$file" > /dev/null
 fi
+
 rm -rf "$tmp"

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xmlbuffer.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xmlbuffer.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/tests/xmlbuffer.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,51 @@
+/*
+ * Copyright © 2010 INRIA
+ * See COPYING in top-level directory.
+ */
+
+#include <stdio.h>
+#include <assert.h>
+#include <libxml/xmlstring.h>
+#include <libxml/xmlmemory.h>
+#include <private/config.h>
+#include <hwloc.h>
+
+/* check the CUDA Driver API helpers */
+
+int main(void)
+{
+  hwloc_topology_t topology;
+  int size1, size2;
+  char *buf1, *buf2;
+  int err = 0;
+
+  hwloc_topology_init(&topology);
+  hwloc_topology_load(topology);
+  assert(hwloc_topology_is_thissystem(topology));
+  hwloc_topology_export_xmlbuffer(topology, &buf1, &size1);
+  hwloc_topology_destroy(topology);
+  printf("exported to buffer %p length %d\n", buf1, size1);
+
+  hwloc_topology_init(&topology);
+  hwloc_topology_set_xmlbuffer(topology, buf1, size1);
+  hwloc_topology_load(topology);
+  assert(!hwloc_topology_is_thissystem(topology));
+  hwloc_topology_export_xmlbuffer(topology, &buf2, &size2);
+  hwloc_topology_destroy(topology);
+  printf("re-exported to buffer %p length %d\n", buf2, size2);
+
+  if (strcmp(buf1, buf2)) {
+    printf("### First exported buffer is:\n");
+    printf(buf1);
+    printf("### End of first export buffer\n");
+    printf("### Second exported buffer is:\n");
+    printf(buf2);
+    printf("### End of second export buffer\n");
+    err = 1;
+  }
+
+  xmlFree(BAD_CAST buf1);
+  xmlFree(BAD_CAST buf2);
+
+  return err;
+}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/Makefile.am
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/Makefile.am	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/Makefile.am	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,5 @@
-# Copyright 2009 INRIA, Université Bordeaux 1
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009-2010 Université Bordeaux 1
 # Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 
 AM_CFLAGS = $(HWLOC_CFLAGS)
@@ -9,9 +10,11 @@
 
 EXTRA_DIST = test-hwloc-distrib.output
 
+noinst_HEADERS = misc.h
+
 # Only build the utilities if we're building in standalone mode
 if HWLOC_BUILD_UTILS
-bin_PROGRAMS = lstopo hwloc-calc hwloc-bind hwloc-distrib
+bin_PROGRAMS = lstopo hwloc-calc hwloc-bind hwloc-distrib hwloc-ps
 endif
 
 lstopo_SOURCES = lstopo.h lstopo.c lstopo-color.c lstopo-text.c lstopo-draw.c lstopo-fig.c
@@ -39,7 +42,7 @@
 
 # Only install man pages if we're building in standalone mode
 if HWLOC_BUILD_UTILS
-man1_pages = lstopo.1 hwloc-bind.1 hwloc-distrib.1 hwloc-calc.1
+man1_pages = lstopo.1 hwloc-bind.1 hwloc-distrib.1 hwloc-calc.1 hwloc-ps.1
 man7_pages = hwloc.7
 man_pages = $(man7_pages) $(man1_pages)
 EXTRA_DIST += $(man1_pages:.1=.1in) $(man7_pages:.7=.7in)

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.1in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.1in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.1in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 .\" -*- nroff -*-
-.\" Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+.\" Copyright © 2009-2010 INRIA
+.\" Copyright © 2010 Université of Bordeaux
+.\" Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 .TH HWLOC-BIND "1" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
 .SH NAME
 hwloc-bind \- Launch a command that is bound to specific processors
@@ -20,8 +22,22 @@
 .
 See below for a description of valid <location> formats.
 .TP 10
+\fB\-\-cpubind\fR
+Use following arguments for CPU binding (default).
+.TP
+\fB\-\-membind\fR
+Use following arguments for memory binding.
+.TP
+\fB\-\-mempolicy\fR <policy>
+Change the memory binding policy.
+The available policies are default, firsttouch, bind, interleave
+replicate and nexttouch.
+If a binding set is given, the default policy is bind.
+.TP
 \fB\-\-get\fR
 Report the current bindings.
+When combined with \fB\-\-membind\fR, report the memory binding
+instead of CPU binding.
 .TP
 \fB\-\-single\fR
 Bind on a single CPU to prevent migration.
@@ -41,6 +57,10 @@
 \fB\-l\fR \fB\-\-logical\fR
 take logical indexes instead of physical/OS indexes (default)
 .TP
+\fB\-\-taskset\fR
+Manipulate CPU set strings in the format recognized by the taskset command-line
+program instead of hwloc-specific CPU set string format.
+.TP
 \fB\-v\fR
 Verbose output.
 .TP
@@ -70,6 +90,8 @@
 .SH EXAMPLES
 .PP
 hwloc-bind's operation is best described through several examples.
+More details about how locations are specified on the hwloc-bind
+command line are described in hwloc(7).
 .
 .PP
 To run the echo command on the first logical processor of the second
@@ -92,10 +114,19 @@
 hwloc-bind can do.
 .
 .PP
-To run on the three first sockets on the second and third nodes:
+To run on the first three sockets on the second and third nodes:
 
     hwloc-bind node:1-2.socket:0:3 echo hello
 
+which is also equivalent to:
+
+    hwloc-bind node:1-2.socket:0-2 echo hello
+
+Note that if you attempt to bind to objects that do not exist,
+hwloc-bind will not warn unless 
+.I -v 
+was specified.
+
 To run on processor with physical index 2 in socket with physical index 1:
 
     hwloc-bind --physical socket:1.core:2 echo hello
@@ -108,6 +139,10 @@
 
     hwloc-bind socket:0 ~socket:0.core:1 ~socket:0.core:4 echo hello
 
+To bind memory on second memory node and run on first node (when supported by the OS):
+
+    hwloc-bind --cpubind node:1 --membind node:0 echo hello
+
 The --get option can report current bindings.  This example shows
 nesting hwloc-bind invocations to set a binding and then report it:
 
@@ -124,6 +159,15 @@
 
     hwloc-bind 0x00004444,0x44000000 echo hello
     hwloc-bind `hwloc-calc node:1.socket:2` echo hello
+
+Memory binding may also be reported:
+
+    hwloc-bind --membind node:1 --mempolicy interleave -- hwloc-bind --get --membind
+
+This returns a string describing the memory binding, such as "0x000000f0
+(interleave)".  Note that if the system does not contain any NUMA
+nodes, the reported string will indicate that the process is bound to
+the entire system memory (e.g., "0xf...f").
 .
 .\" **************************
 .\"    Return value section

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-bind.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -17,33 +19,42 @@
   fprintf(where, " <location> may be a space-separated list of cpusets or objects\n");
   fprintf(where, "            as supported by the hwloc-calc utility.\n");
   fprintf(where, "Options:\n");
-  fprintf(where, "  -l --logical\ttake logical object indexes (default)\n");
-  fprintf(where, "  -p --physical\ttake physical object indexes\n");
-  fprintf(where, "  --single\tbind on a single CPU to prevent migration\n");
-  fprintf(where, "  --strict\trequire strict binding\n");
-  fprintf(where, "  --get\t\tretrieve current process binding\n");
-  fprintf(where, "  --pid <pid>\toperate on process <pid>\n");
-  fprintf(where, "  -v\t\tverbose messages\n");
-  fprintf(where, "  --version\treport version and exit\n");
+  fprintf(where, "  --cpubind      Use following arguments for cpu binding (default)\n");
+  fprintf(where, "  --membind      Use following arguments for memory binding\n");
+  fprintf(where, "  --mempolicy <default|firsttouch|bind|interleave|replicate|nexttouch>\n"
+		 "                 Change the memory binding policy (default is bind)\n");
+  fprintf(where, "  -l --logical   Take logical object indexes (default)\n");
+  fprintf(where, "  -p --physical  Take physical object indexes\n");
+  fprintf(where, "  --single       Bind on a single CPU to prevent migration\n");
+  fprintf(where, "  --strict       Require strict binding\n");
+  fprintf(where, "  --get          Retrieve current process binding\n");
+  fprintf(where, "  --pid <pid>    Operate on process <pid>\n");
+  fprintf(where, "  --taskset      Manipulate taskset-specific cpuset strings\n");
+  fprintf(where, "  -v             Show verbose messages\n");
+  fprintf(where, "  --version      Report version and exit\n");
 }
 
 int main(int argc, char *argv[])
 {
   hwloc_topology_t topology;
   unsigned depth;
-  hwloc_cpuset_t cpu_set; /* invalid until bind_cpus is set */
+  hwloc_bitmap_t cpubind_set, membind_set;
+  int cpubind = 1; /* membind if 0 */
   int get_binding = 0;
-  int bind_cpus = 0;
   int single = 0;
   int verbose = 0;
   int logical = 1;
-  int flags = 0;
+  int taskset = 0;
+  int cpubind_flags = 0;
+  hwloc_membind_policy_t membind_policy = HWLOC_MEMBIND_BIND;
+  int membind_flags = 0;
   int opt;
   int ret;
   hwloc_pid_t pid = 0;
   char **orig_argv = argv;
 
-  cpu_set = hwloc_cpuset_alloc();
+  cpubind_set = hwloc_bitmap_alloc();
+  membind_set = hwloc_bitmap_alloc();
 
   hwloc_topology_init(&topology);
   hwloc_topology_load(topology);
@@ -76,7 +87,8 @@
 	goto next;
       }
       else if (!strcmp(argv[0], "--strict")) {
-	flags |= HWLOC_CPUBIND_STRICT;
+	cpubind_flags |= HWLOC_CPUBIND_STRICT;
+	membind_flags |= HWLOC_MEMBIND_STRICT;
 	goto next;
       }
       else if (!strcmp(argv[0], "--pid")) {
@@ -100,71 +112,174 @@
         logical = 0;
         goto next;
       }
+      if (!strcmp(argv[0], "--taskset")) {
+        taskset = 1;
+        goto next;
+      }
       else if (!strcmp (argv[0], "--get")) {
-	  get_binding = 1;
+	get_binding = 1;
+	goto next;
+      }
+      else if (!strcmp (argv[0], "--cpubind")) {
+	  cpubind = 1;
 	  goto next;
       }
+      else if (!strcmp (argv[0], "--membind")) {
+	  cpubind = 0;
+	  goto next;
+      }
+      else if (!strcmp (argv[0], "--mempolicy")) {
+	if (!strncmp(argv[1], "default", 2))
+	  membind_policy = HWLOC_MEMBIND_DEFAULT;
+	else if (!strncmp(argv[1], "firsttouch", 2))
+	  membind_policy = HWLOC_MEMBIND_FIRSTTOUCH;
+	else if (!strncmp(argv[1], "bind", 2))
+	  membind_policy = HWLOC_MEMBIND_BIND;
+	else if (!strncmp(argv[1], "interleace", 2))
+	  membind_policy = HWLOC_MEMBIND_INTERLEAVE;
+	else if (!strncmp(argv[1], "replicate", 2))
+	  membind_policy = HWLOC_MEMBIND_REPLICATE;
+	else if (!strncmp(argv[1], "nexttouch", 2))
+	  membind_policy = HWLOC_MEMBIND_NEXTTOUCH;
+	else {
+	  fprintf(stderr, "Unrecognized memory binding policy %s\n", argv[1]);
+          usage (stderr);
+          exit(EXIT_FAILURE);
+	}
+	opt = 1;
+	goto next;
+      }
 
+      fprintf (stderr, "Unrecognized option: %s\n", argv[0]);
       usage(stderr);
       return EXIT_FAILURE;
     }
 
-    ret = hwloc_mask_process_arg(topology, depth, argv[0], logical, cpu_set, verbose);
+    ret = hwloc_mask_process_arg(topology, depth, argv[0], logical,
+				 cpubind ? cpubind_set : membind_set,
+				 taskset, verbose);
     if (ret < 0) {
       if (verbose)
 	fprintf(stderr, "assuming the command starts at %s\n", argv[0]);
       break;
     }
 
-    /* we found at least one binding argument */
-    bind_cpus = 1;
-
   next:
     argc -= opt+1;
     argv += opt+1;
   }
 
   if (get_binding) {
-    char *s;
+    char *s, *policystr = NULL;
     int err;
-    if (pid)
-      err = hwloc_get_proc_cpubind(topology, pid, cpu_set, 0);
+    if (cpubind) {
+      if (pid)
+	err = hwloc_get_proc_cpubind(topology, pid, cpubind_set, 0);
+      else
+	err = hwloc_get_cpubind(topology, cpubind_set, 0);
+      if (err) {
+	const char *errmsg = strerror(errno);
+        if (pid)
+	  fprintf(stderr, "hwloc_get_proc_cpubind %d failed (errno %d %s)\n", pid, errno, errmsg);
+        else
+	  fprintf(stderr, "hwloc_get_cpubind failed (errno %d %s)\n", errno, errmsg);
+	return EXIT_FAILURE;
+      }
+      if (taskset)
+	hwloc_bitmap_taskset_asprintf(&s, cpubind_set);
+      else
+	hwloc_bitmap_asprintf(&s, cpubind_set);
+    } else {
+      hwloc_membind_policy_t policy;
+      if (pid)
+	err = hwloc_get_proc_membind(topology, pid, membind_set, &policy, 0);
+      else
+	err = hwloc_get_membind(topology, membind_set, &policy, 0);
+      if (err) {
+	const char *errmsg = strerror(errno);
+        if (pid)
+	  fprintf(stderr, "hwloc_get_proc_membind %d failed (errno %d %s)\n", pid, errno, errmsg);
+        else
+	  fprintf(stderr, "hwloc_get_membind failed (errno %d %s)\n", errno, errmsg);
+	return EXIT_FAILURE;
+      }
+      if (taskset)
+	hwloc_bitmap_taskset_asprintf(&s, membind_set);
+      else
+	hwloc_bitmap_asprintf(&s, membind_set);
+      switch (policy) {
+      case HWLOC_MEMBIND_DEFAULT: policystr = "default"; break;
+      case HWLOC_MEMBIND_FIRSTTOUCH: policystr = "firsttouch"; break;
+      case HWLOC_MEMBIND_BIND: policystr = "bind"; break;
+      case HWLOC_MEMBIND_INTERLEAVE: policystr = "interleave"; break;
+      case HWLOC_MEMBIND_REPLICATE: policystr = "replicate"; break;
+      case HWLOC_MEMBIND_NEXTTOUCH: policystr = "nexttouch"; break;
+      default: fprintf(stderr, "unknown memory policy %u\n", policy); assert(0); break;
+      }
+    }
+    if (policystr)
+      printf("%s (%s)\n", s, policystr);
     else
-      err = hwloc_get_cpubind(topology, cpu_set, 0);
-    if (err) {
-      const char *errmsg = strerror(errno);
-      fprintf(stderr, "hwloc_get_cpubind failed (errno %d %s)\n", errno, errmsg);
-      return EXIT_FAILURE;
-    }
-    s = hwloc_cpuset_printf_value(cpu_set);
-    printf("%s\n", s);
+      printf("%s\n", s);
     free(s);
     return EXIT_SUCCESS;
   }
 
-  if (bind_cpus) {
+  if (!hwloc_bitmap_iszero(cpubind_set)) {
     if (verbose) {
-      char *s = hwloc_cpuset_printf_value(cpu_set);
+      char *s;
+      hwloc_bitmap_asprintf(&s, cpubind_set);
       fprintf(stderr, "binding on cpu set %s\n", s);
       free(s);
     }
     if (single)
-      hwloc_cpuset_singlify(cpu_set);
+      hwloc_bitmap_singlify(cpubind_set);
     if (pid)
-      ret = hwloc_set_proc_cpubind(topology, pid, cpu_set, flags);
+      ret = hwloc_set_proc_cpubind(topology, pid, cpubind_set, cpubind_flags);
     else
-      ret = hwloc_set_cpubind(topology, cpu_set, flags);
+      ret = hwloc_set_cpubind(topology, cpubind_set, cpubind_flags);
     if (ret) {
       int bind_errno = errno;
       const char *errmsg = strerror(bind_errno);
-      char *s = hwloc_cpuset_printf_value(cpu_set);
-      fprintf(stderr, "hwloc_set_cpubind %s failed (errno %d %s)\n", s, bind_errno, errmsg);
+      char *s;
+      hwloc_bitmap_asprintf(&s, cpubind_set);
+      if (pid)
+        fprintf(stderr, "hwloc_set_proc_cpubind %s %d failed (errno %d %s)\n", s, pid, bind_errno, errmsg);
+      else
+        fprintf(stderr, "hwloc_set_cpubind %s failed (errno %d %s)\n", s, bind_errno, errmsg);
       free(s);
     }
   }
 
-  hwloc_cpuset_free(cpu_set);
+  if (!hwloc_bitmap_iszero(membind_set)) {
+    if (verbose) {
+      char *s;
+      hwloc_bitmap_asprintf(&s, membind_set);
+      fprintf(stderr, "binding on memory set %s\n", s);
+      free(s);
+    }
+    if (single)
+      hwloc_bitmap_singlify(membind_set);
+    if (pid)
+      ret = hwloc_set_proc_membind(topology, pid, membind_set, membind_policy, membind_flags);
+    else
+      ret = hwloc_set_membind(topology, membind_set, membind_policy, membind_flags);
+    if (ret) {
+      int bind_errno = errno;
+      const char *errmsg = strerror(bind_errno);
+      char *s;
+      hwloc_bitmap_asprintf(&s, membind_set);
+      if (pid)
+        fprintf(stderr, "hwloc_set_proc_membind %s %d failed (errno %d %s)\n", s, pid, bind_errno, errmsg);
+      else
+        fprintf(stderr, "hwloc_set_membind %s failed (errno %d %s)\n", s, bind_errno, errmsg);
+      free(s);
+    }
+  }
 
+  hwloc_bitmap_free(cpubind_set);
+  hwloc_bitmap_free(membind_set);
+
   hwloc_topology_destroy(topology);
 
   if (pid)

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.1in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.1in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.1in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,6 @@
 .\" -*- nroff -*-
+.\" Copyright © 2010 INRIA
+.\" Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
 .TH HWLOC-CALC "1" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
 .SH NAME
 hwloc-calc \- Operate on cpu mask strings and objects
@@ -35,22 +37,51 @@
 \fB\-\-lo\fR \fB\-\-logical\-output\fR
 Use logical indexes instead of physical/OS indexes for output (default).
 .TP
-\fB\-\-PUlist\fR
-Report the comma-separated list of processing units' indexes instead of the cpu mask string.
+\fB\-\-intersect <type|depth>\fR
+Find the list of objects of the given type or depth that intersect the CPU set and
+report the comma-separated list of their indexes instead of the cpu mask string.
+This may be used for determining the list of objects above or below the input
+objects.
 When combined with \fB\-\-physical\fR, the list is convenient to pass to external
-tools such as taskset or numactl \fB\-\-physcpubind\fR.
+tools such as taskset or numactl \fB\-\-physcpubind\fR or \fB\-\-membind\fR.
+This is different from \-\-largest since the latter requires that all reported
+objects are strictly included inside the input objects.
 .TP
-\fB\-\-nodelist\fR
-Report the comma-separated list of memory nodes' indexes instead of the cpu mask string.
-When combined with \fB\-\-physical\fR, the list is convenient to pass to external
-tools such as numactl \fB\-\-membind\fR.
+\fB\-\-largest\fR
+Report (in a human readable format) the list of largest objects which exactly
+include all input objects.
+None of these output objects intersect each other, and the sum of them is
+exactly equivalent to the input. No largest object is included in the input
+This is different from \-\-intersect where reported objects may not be
+strictly included in the input.
 .TP
-\fB\-\-objects\fR
-Report the list of highest objects instead of the cpu mask string.
-.TP
 \fB\-\-single\fR
 Singlify the output to a single CPU.
 .TP
+\fB\-\-taskset\fR
+Manipulate CPU set strings in the format recognized by the taskset command-line
+program instead of hwloc-specific CPU set string format.
+.TP
+\fB\-i\fR <file>, \fB\-\-input\fR <file>
+Read topology from XML file <file> (instead of discovering the
+topology on the local machine).  If <file> is "\-", the standard input
+is used.  XML support must have been compiled in to hwloc for this
+option to be usable.
+.TP
+\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
+Read topology from the chroot specified by <directory> (instead of
+discovering the topology on the local machine).  This option is
+generally only available on Linux.
+.TP
+\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
+Simulate a fake hierarchy (instead of discovering the topology on the
+local machine). If <specification> is "node:2 pu:3", the topology will
+contain two NUMA nodes with 3 processing units in each of them.
+.TP
+\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
+Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR
+and \fBsynthetic\fR.
+.TP
 \fB\-v\fR
 Verbose output.
 .TP
@@ -68,6 +99,22 @@
 indexes) or CPU mask strings (no logical or physical index involved).
 .
 .PP
+If objects or CPU mask strings are given on the command-line,
+they are combined and a single output is printed.
+If no object or CPU mask strings are given on the command-line,
+the program will read the standard input.
+It will combine multiple objects or CPU mask strings that are
+given on the same line of the standard input line with spaces
+as separators.
+Different input lines will be processed separately.
+.
+.PP
+Command-line arguments and options are processed in order.
+For instance, it means that changing the type of input indexes
+with \fB\-\-li\fR or changing the input topology with \fB\-i\fR
+only affects the processing the following arguments.
+.
+.PP
 .B NOTE:
 It is highly recommended that you read the hwloc(7) overview page
 before reading this man page.  Most of the concepts described in
@@ -101,17 +148,17 @@
 To display the list of logical processors included in the second
 socket:
 
-    $ hwloc-calc --PUlist socket:1
+    $ hwloc-calc --intersect PU socket:1
     0,2,4,6
 
 To display the list of NUMA nodes, by physical indexes, that intersect a given CPU mask:
 
-    $ hwloc-calc --physical --nodelist 0xf0f0f0f0
+    $ hwloc-calc --physical --intersect NUMAnode 0xf0f0f0f0
     0,2
 
 To display the physical index of a processor given by its logical index:
 
-    $ hwloc-calc PU:2 --physical-output --PUlist
+    $ hwloc-calc PU:2 --physical-output --intersect PU
     3
 
 To combine both physical and logical indexes as input:
@@ -119,6 +166,21 @@
     $ hwloc-calc PU:2 --physical-input PU:3
     0x0000000c
 
+To synthetize a set of cores into largest objects on a 2-node 2-socket 2-core machine:
+
+    $ hwloc-calc core:0 --largest
+    Core:0
+    $ hwloc-calc core:0-1 --largest
+    Socket:0
+    $ hwloc-calc core:4-7 --largest
+    NUMANode:1
+    $ hwloc-calc core:2-6 --largest
+    Socket:1 Socket:2 Core:6
+    $ hwloc-calc socket:2 --largest
+    Socket:2
+    $ hwloc-calc socket:2-3 --largest
+    NUMANode:1
+
 .
 .\" **************************
 .\"    Return value section

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,8 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
@@ -8,46 +10,103 @@
 #include <hwloc-calc.h>
 #include <hwloc.h>
 
+#include "misc.h"
+
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 
-static void usage(FILE *where)
+void usage(const char *callname __hwloc_attribute_unused, FILE *where)
 {
   fprintf(where, "Usage: hwloc-calc [options] <location> ...\n");
   fprintf(where, " <location> may be a space-separated list of cpusets or objects\n");
   fprintf(where, "            as supported by the hwloc-bind utility.\n");
   fprintf(where, "Options:\n");
-  fprintf(where, "  -l --logical\tuse logical object indexes (default)\n");
-  fprintf(where, "  -p --physical\tuse physical object indexes\n");
-  fprintf(where, "  --li --logical-input\tuse logical indexes for input (default)\n");
-  fprintf(where, "  --lo --logical-output\tuse logical indexes for output (default)\n");
-  fprintf(where, "  --pi --physical-input\tuse physical indexes for input\n");
-  fprintf(where, "  --po --physical-output\tuse physical indexes for output\n");
-  fprintf(where, "  --PUlist\treport the list of processing units' indexes in the CPU set\n");
-  fprintf(where, "  --nodelist\treport the list of memory nodes' indexes near the CPU set\n");
-  fprintf(where, "  --objects\treport the list of largest objects in the CPU set\n");
-  fprintf(where, "  --single\tsinglify the output to a single CPU\n");
-  fprintf(where, "  -v\t\tverbose messages\n");
-  fprintf(where, "  --version\treport version and exit\n");
+  fprintf(where, "  -l --logical              Use logical object indexes (default)\n");
+  fprintf(where, "  -p --physical             Use physical object indexes\n");
+  fprintf(where, "  --li --logical-input      Use logical indexes for input (default)\n");
+  fprintf(where, "  --lo --logical-output     Use logical indexes for output (default)\n");
+  fprintf(where, "  --pi --physical-input     Use physical indexes for input\n");
+  fprintf(where, "  --po --physical-output    Use physical indexes for output\n");
+  fprintf(where, "  --intersect <type|depth>  Report the list of object indexes intersecting the CPU set\n");
+  fprintf(where, "  --largest                 Report the list of largest objects in the CPU set\n");
+  fprintf(where, "  --single                  Singlify the output to a single CPU\n");
+  fprintf(where, "  --taskset                 Manipulate taskset-specific cpuset strings\n");
+  hwloc_utils_input_format_usage(where, 10);
+  fprintf(where, "  -v                        Show verbose messages\n");
+  fprintf(where, "  --version                 Report version and exit\n");
 }
 
+static int verbose = 0;
+static int logicali = 1;
+static int logicalo = 1;
+static int listdepth = -1;
+static int showobjs = 0;
+static int singlify = 0;
+static int taskset = 0;
+
+static void
+hwloc_calc_output(hwloc_topology_t topology, hwloc_bitmap_t set)
+{
+  if (singlify)
+    hwloc_bitmap_singlify(set);
+
+  if (showobjs) {
+    hwloc_bitmap_t remaining = hwloc_bitmap_dup(set);
+    int first = 1;
+    while (!hwloc_bitmap_iszero(remaining)) {
+      char type[64];
+      unsigned idx;
+      hwloc_obj_t obj = hwloc_get_first_largest_obj_inside_cpuset(topology, remaining);
+      hwloc_obj_type_snprintf(type, sizeof(type), obj, 1);
+      idx = logicalo ? obj->logical_index : obj->os_index;
+      if (idx == (unsigned) -1)
+        printf("%s%s", first ? "" : " ", type);
+      else
+        printf("%s%s:%u", first ? "" : " ", type, idx);
+      hwloc_bitmap_andnot(remaining, remaining, obj->cpuset);
+      first = 0;
+    }
+    printf("\n");
+    hwloc_bitmap_free(remaining);
+  } else if (listdepth != -1) {
+    hwloc_obj_t proc, prev = NULL;
+    while ((proc = hwloc_get_next_obj_covering_cpuset_by_depth(topology, set, listdepth, prev)) != NULL) {
+      if (prev)
+	printf(",");
+      printf("%u", logicalo ? proc->logical_index : proc->os_index);
+      prev = proc;
+    }
+    printf("\n");
+  } else {
+    char *string = NULL;
+    if (taskset)
+      hwloc_bitmap_taskset_asprintf(&string, set);
+    else
+      hwloc_bitmap_asprintf(&string, set);
+    printf("%s\n", string);
+    free(string);
+  }
+}
+
 int main(int argc, char *argv[])
 {
   hwloc_topology_t topology;
+  char *input = NULL;
+  enum hwloc_utils_input_format input_format = HWLOC_UTILS_INPUT_DEFAULT;
+  int input_changed = 0;
   unsigned depth;
-  hwloc_cpuset_t set;
-  int verbose = 0;
-  int logicali = 1;
-  int logicalo = 1;
-  int nodelist = 0;
-  int pulist = 0;
-  int showobjs = 0;
-  int singlify = 0;
+  hwloc_bitmap_t set;
+  int cmdline_args = 0;
   char **orig_argv = argv;
+  hwloc_obj_type_t listtype = (hwloc_obj_type_t) -1;
+  char *callname;
+  int opt;
 
-  set = hwloc_cpuset_alloc();
+  callname = argv[0];
 
+  set = hwloc_bitmap_alloc();
+
   hwloc_topology_init(&topology);
   hwloc_topology_load(topology);
   depth = hwloc_topology_get_depth(topology);
@@ -59,18 +118,40 @@
         goto next;
       }
       if (!strcmp(argv[1], "--help")) {
-	usage(stdout);
+	usage(callname, stdout);
 	return EXIT_SUCCESS;
       }
-      if (!strcasecmp(argv[1], "--pulist") || !strcmp(argv[1], "--proclist") /* backward compat with 0.9 */) {
-	pulist = 1;
+      if (!strcmp(argv[1], "--intersect")) {
+	if (argc <= 2) {
+	  usage(callname, stderr);
+	  return EXIT_SUCCESS;
+	}
+	listtype = hwloc_obj_type_of_string(argv[2]);
+	if (listtype == (hwloc_obj_type_t) -1) {
+	  char *endptr;
+	  unsigned depth = strtoul(argv[2], &endptr, 0);
+	  if (*endptr) {
+	    fprintf(stderr, "unrecognized list type or depth %s\n", argv[2]);
+	    usage(callname, stderr);
+	    return EXIT_SUCCESS;
+	  }
+	  listdepth = depth;
+	}
+	argv++;
+	argc--;
+	goto next;
+      }
+      if (!strcasecmp(argv[1], "--pulist") || !strcmp(argv[1], "--proclist")) {
+	/* backward compat with 1.0 */
+	listtype = HWLOC_OBJ_PU;
         goto next;
       }
       if (!strcmp(argv[1], "--nodelist")) {
-	nodelist = 1;
+	/* backward compat with 1.0 */
+	listtype = HWLOC_OBJ_NODE;
         goto next;
       }
-      if (!strcmp(argv[1], "--objects")) {
+      if (!strcmp(argv[1], "--largest")  || !strcmp(argv[1], "--objects") /* backward compat with 1.0 */) {
 	showobjs = 1;
         goto next;
       }
@@ -108,11 +189,33 @@
 	singlify = 1;
 	goto next;
       }
-      usage(stderr);
+      if (!strcmp(argv[1], "--taskset")) {
+	taskset = 1;
+	goto next;
+      }
+      if (hwloc_utils_lookup_input_option(argv+1, argc, &opt,
+					  &input, &input_format,
+					  callname)) {
+	argv += opt;
+	argc -= opt;
+	input_changed = 1;
+	goto next;
+      }
+
+      fprintf (stderr, "Unrecognized option: %s\n", argv[1]);
+      usage(callname, stderr);
       return EXIT_FAILURE;
     }
 
-    if (hwloc_mask_process_arg(topology, depth, argv[1], logicali, set, verbose) < 0)
+    if (input_changed && input) {
+      hwloc_utils_enable_input_format(topology, input, input_format, verbose, callname);
+      hwloc_topology_load(topology);
+      depth = hwloc_topology_get_depth(topology);
+      input_changed = 0;
+    }
+
+    cmdline_args++;
+    if (hwloc_mask_process_arg(topology, depth, argv[1], logicali, set, taskset, verbose) < 0)
       fprintf(stderr, "ignored unrecognized argument %s\n", argv[1]);
 
  next:
@@ -120,55 +223,44 @@
     argv++;
   }
 
-  if (singlify)
-   hwloc_cpuset_singlify(set);
+  if (listtype != (hwloc_obj_type_t) -1) {
+    listdepth = hwloc_get_type_depth(topology, listtype);
+    if (listdepth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+      fprintf(stderr, "unavailable list type %s\n", hwloc_obj_type_string(listtype));
+      goto out;
+    } else  if (listdepth == HWLOC_TYPE_DEPTH_MULTIPLE) {
+      fprintf(stderr, "cannot list type %s with multiple depth, please use the relevant depth directly\n", hwloc_obj_type_string(listtype));
+      goto out;
+    }
+  }
 
-  if (showobjs) {
-    hwloc_cpuset_t remaining = hwloc_cpuset_dup(set);
-    int first = 1;
-    while (!hwloc_cpuset_iszero(remaining)) {
-      char type[64];
-      unsigned idx;
-      hwloc_obj_t obj = hwloc_get_first_largest_obj_inside_cpuset(topology, remaining);
-      hwloc_obj_type_snprintf(type, sizeof(type), obj, 1);
-      idx = logicalo ? obj->logical_index : obj->os_index;
-      if (idx == (unsigned) -1)
-        printf("%s%s", first ? "" : " ", type);
-      else
-        printf("%s%s:%u", first ? "" : " ", type, idx);
-      hwloc_cpuset_andnot(remaining, remaining, obj->cpuset);
-      first = 0;
+  if (cmdline_args) {
+    /* process command-line arguments */
+    hwloc_calc_output(topology, set);
+
+  } else {
+    /* process stdin arguments line-by-line */
+#define HWLOC_CALC_LINE_LEN 1024
+    char line[HWLOC_CALC_LINE_LEN];
+    while (fgets(line, sizeof(line), stdin)) {
+      char *current = line;
+      hwloc_bitmap_zero(set);
+      while (1) {
+	char *token = strtok(current, " \n");
+	if (!token)
+	  break;
+	current = NULL;
+	if (hwloc_mask_process_arg(topology, depth, token, logicali, set, taskset, verbose) < 0)
+	  fprintf(stderr, "ignored unrecognized argument %s\n", argv[1]);
+      }
+      hwloc_calc_output(topology, set);
     }
-    printf("\n");
-    hwloc_cpuset_free(remaining);
-  } else if (pulist) {
-    hwloc_obj_t proc, prev = NULL;
-    while ((proc = hwloc_get_next_obj_covering_cpuset_by_type(topology, set, HWLOC_OBJ_PU, prev)) != NULL) {
-      if (prev)
-	printf(",");
-      printf("%u", logicalo ? proc->logical_index : proc->os_index);
-      prev = proc;
-    }
-    printf("\n");
-  } else if (nodelist) {
-    hwloc_obj_t node, prev = NULL;
-    while ((node = hwloc_get_next_obj_covering_cpuset_by_type(topology, set, HWLOC_OBJ_NODE, prev)) != NULL) {
-      if (prev)
-	printf(",");
-      printf("%u", logicalo ? node->logical_index : node->os_index);
-      prev = node;
-    }
-    printf("\n");
-  } else {
-    char *string = NULL;
-    hwloc_cpuset_asprintf(&string, set);
-    printf("%s\n", string);
-    free(string);
   }
 
+ out:
   hwloc_topology_destroy(topology);
 
-  hwloc_cpuset_free(set);
+  hwloc_bitmap_free(set);
 
   return EXIT_SUCCESS;
 }

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-calc.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -26,35 +28,36 @@
 } hwloc_mask_append_mode_t;
 
 static inline int
-hwloc_mask_append_cpuset(hwloc_cpuset_t set, hwloc_const_cpuset_t newset,
+hwloc_mask_append_cpuset(hwloc_bitmap_t set, hwloc_const_bitmap_t newset,
 		       hwloc_mask_append_mode_t mode, int verbose)
 {
-  char *s1 = hwloc_cpuset_printf_value(newset);
-  char *s2 = hwloc_cpuset_printf_value(set);
+  char *s1, *s2;
+  hwloc_bitmap_asprintf(&s1, newset);
+  hwloc_bitmap_asprintf(&s2, set);
   switch (mode) {
   case HWLOC_MASK_APPEND_ADD:
     if (verbose)
       fprintf(stderr, "adding %s to %s\n",
           s1, s2);
-    hwloc_cpuset_or(set, set, newset);
+    hwloc_bitmap_or(set, set, newset);
     break;
   case HWLOC_MASK_APPEND_CLR:
     if (verbose)
       fprintf(stderr, "clearing %s from %s\n",
           s1, s2);
-    hwloc_cpuset_andnot(set, set, newset);
+    hwloc_bitmap_andnot(set, set, newset);
     break;
   case HWLOC_MASK_APPEND_AND:
     if (verbose)
       fprintf(stderr, "and'ing %s from %s\n",
           s1, s2);
-    hwloc_cpuset_and(set, set, newset);
+    hwloc_bitmap_and(set, set, newset);
     break;
   case HWLOC_MASK_APPEND_XOR:
     if (verbose)
       fprintf(stderr, "xor'ing %s from %s\n",
           s1, s2);
-    hwloc_cpuset_xor(set, set, newset);
+    hwloc_bitmap_xor(set, set, newset);
     break;
   default:
     assert(0);
@@ -65,7 +68,7 @@
 }
 
 static inline hwloc_obj_t __hwloc_attribute_pure
-hwloc_mask_get_obj_inside_cpuset_by_depth(hwloc_topology_t topology, hwloc_const_cpuset_t rootset,
+hwloc_mask_get_obj_inside_cpuset_by_depth(hwloc_topology_t topology, hwloc_const_bitmap_t rootset,
 					 unsigned depth, unsigned i, int logical)
 {
   if (logical) {
@@ -82,8 +85,8 @@
 
 static inline int
 hwloc_mask_append_object(hwloc_topology_t topology, unsigned topodepth,
-		       hwloc_const_cpuset_t rootset, const char *string, int logical,
-		       hwloc_cpuset_t set, int verbose)
+		       hwloc_const_bitmap_t rootset, const char *string, int logical,
+		       hwloc_bitmap_t set, int verbose)
 {
   hwloc_obj_t obj;
   unsigned depth, width;
@@ -165,7 +168,8 @@
 
     obj = hwloc_mask_get_obj_inside_cpuset_by_depth(topology, rootset, depth, i, logical);
     if (verbose || !obj) {
-      char * s = hwloc_cpuset_printf_value(rootset);
+      char *s;
+      hwloc_bitmap_asprintf(&s, rootset);
       if (obj)
 	printf("object #%u depth %u below cpuset %s found\n",
 	       i, depth, s);
@@ -190,8 +194,8 @@
 
 static inline int
 hwloc_mask_process_arg(hwloc_topology_t topology, unsigned topodepth,
-		     const char *arg, int logical, hwloc_cpuset_t set,
-		     int verbose)
+		     const char *arg, int logical, hwloc_bitmap_t set,
+		     int taskset, int verbose)
 {
   char *colon;
   hwloc_mask_append_mode_t mode = HWLOC_MASK_APPEND_ADD;
@@ -210,15 +214,53 @@
 
   colon = strchr(arg, ':');
   if (colon) {
-    hwloc_cpuset_t newset = hwloc_cpuset_alloc();
+    hwloc_bitmap_t newset = hwloc_bitmap_alloc();
     err = hwloc_mask_append_object(topology, topodepth, hwloc_topology_get_complete_cpuset(topology), arg, logical, newset, verbose);
     if (!err)
       err = hwloc_mask_append_cpuset(set, newset, mode, verbose);
-    hwloc_cpuset_free(newset);
+    hwloc_bitmap_free(newset);
+
+  } else if (taskset) {
+    /* try to parse as a list of integer starting with 0xf...f or 0x */
+    char *tmp = (char*) arg;
+    hwloc_bitmap_t newset;
+    if (strncasecmp(tmp, "0xf...f", 7) == 0) {
+      tmp += 7;
+      if (0 == *tmp) {
+        err = -1;
+        goto out;
+      }
+    } else {
+      if (strncasecmp(tmp, "0x", 2) != 0) {
+        err = -1;
+        goto out;
+      }
+      tmp += 2;
+      if (0 == *tmp) {
+        err = -1;
+        goto out;
+      }
+    }
+    if (strlen(tmp) != strspn(tmp, "0123456789abcdefABCDEF")) {
+      err = -1;
+      goto out;
+    }
+    newset = hwloc_bitmap_alloc();
+    hwloc_bitmap_taskset_sscanf(newset, arg);
+    err = hwloc_mask_append_cpuset(set, newset, mode, verbose);
+    hwloc_bitmap_free(newset);
+
   } else {
-    /* try to parse as a comma-separated list of integer with 0x as an optional prefix */
+    /* try to parse as a comma-separated list of integer with 0x as an optional prefix, and possibly starting with 0xf...f */
     char *tmp = (char*) arg;
-    hwloc_cpuset_t newset;
+    hwloc_bitmap_t newset;
+    if (strncasecmp(tmp, "0xf...f,", 8) == 0) {
+      tmp += 8;
+      if (0 == *tmp) {
+        err = -1;
+        goto out;
+      }
+    }
     while (1) {
       char *next = strchr(tmp, ',');
       size_t len;
@@ -238,10 +280,10 @@
         break;
       tmp = next+1;
     }
-    newset = hwloc_cpuset_alloc();
-    hwloc_cpuset_from_string(newset, arg);
+    newset = hwloc_bitmap_alloc();
+    hwloc_bitmap_sscanf(newset, arg);
     err = hwloc_mask_append_cpuset(set, newset, mode, verbose);
-    hwloc_cpuset_free(newset);
+    hwloc_bitmap_free(newset);
   }
 
  out:

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.1in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.1in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.1in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,4 +1,6 @@
 .\" -*- nroff -*-
+.\" Copyright © 2010 INRIA
+.\" Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 .TH HWLOC-DISTRIB "1" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
 .SH NAME
 hwloc-distrib \- Build a number of cpu masks distributed on the system
@@ -18,20 +20,51 @@
 \fB\-\-single\fR
 Singlify each output to a single CPU.
 .TP
+\fB\-\-taskset\fR
+Show CPU set strings in the format recognized by the taskset command-line
+program instead of hwloc-specific CPU set string format.
+.TP
 \fB\-v\fR
 Verbose messages.
 .TP
-\fB\-\-xml\fR <path>
-Read topology from XML file <path> (instead of discovering the
-topology on the local machine).  If <path> is "\-", the standard input
+\fB\-i\fR <file>, \fB\-\-input\fR <file>
+Read topology from XML file <file> (instead of discovering the
+topology on the local machine).  If <file> is "\-", the standard input
 is used.  XML support must have been compiled in to hwloc for this
 option to be usable.
 .TP
-\fB\-\-synthetic\fR <specification>
+\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
+Read topology from the chroot specified by <directory> (instead of
+discovering the topology on the local machine).  This option is
+generally only available on Linux.
+.TP
+\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
 Simulate a fake hierarchy (instead of discovering the topology on the
 local machine). If <specification> is "node:2 pu:3", the topology will
 contain two NUMA nodes with 3 processing units in each of them.
 .TP
+\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
+Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR
+and \fBsynthetic\fR.
+.TP
+\fB\-\-ignore\fR <type>
+Ignore all objects of type <type> in the topology.
+.TP
+\fB\-\-from\fR <type>
+Distribute starting from objects of the given type instead of from
+the top of the topology hierarchy, i.e. ignoring the structure given by objects
+above.
+.TP
+\fB\-\-top\fR <type>
+Distribute down to objects of the given type instead of down to the bottom of
+the topology hierarchy, i.e. ignoring the structure given by objects below.
+This may be useful if some latitude is desired for the binding, e.g. just bind
+on sockets and not to precise cores or caches.
+.TP
+\fB\-\-at\fR <type>
+Distribute among objects of the given type.  This is equivalent to specifying
+both \fB\-\-from\fR and \fB\-\-to\fR at the same time.
+.TP
 \fB\-\-version\fR
 Report version and exit.
 .
@@ -40,9 +73,16 @@
 .\" **************************
 .SH DESCRIPTION
 .
-hwloc-distrib generates a series of CPU masks in an attempt to
-distribute a set of processes around multiple processors in a single
-server.  These masks can be used with hwloc-bind(1).
+hwloc-distrib generates a series of CPU masks corresponding to a distribution of
+a given number of elements over the topology of the machine. The distribution
+is done recursively from the top of the hierarchy (or from the level specified
+by option \fB\-\-from\fR) down to the bottom of the hierarchy (or down to the
+level specified by option \fB\-\-to\fR, or until only one element remains),
+splitting the number of elements at each encountered hierarchy level not ignored
+by options \fB\-\-ignore\fR.
+
+This can e.g. be used to distribute a set of processes hierarchically according
+to the topology of a machine. These masks can be used with hwloc-bind(1).
 .
 .PP
 .B NOTE:
@@ -50,7 +90,6 @@
 before reading this man page.  Most of the concepts described in
 hwloc(7) directly apply to the hwloc-bind utility.
 .
-.
 .\" **************************
 .\"    Examples Section
 .\" **************************
@@ -77,13 +116,13 @@
     0x00000010
     0x00001000
 
-Each output line may be converted independently with hwloc-calc and xargs:
+Each output line may be converted independently with hwloc-calc:
 
-    $ hwloc-distrib 4 --single | xargs -n 1 hwloc-calc --objects
-    PU:0
-    PU:1
-    PU:2
-    PU:3
+    $ hwloc-distrib 4 --single | hwloc-calc --taskset
+    0x1
+    0x100
+    0x10
+    0x1000
 
 To convert the output into a list of processors that may be passed to
 dplace -c inside a mpirun command line:

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-distrib.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -7,31 +9,43 @@
 #include <private/private.h>
 #include <hwloc.h>
 
+#include "misc.h"
+
 #include <unistd.h>
 
-static void usage(FILE *where)
+void usage(const char *callname __hwloc_attribute_unused, FILE *where)
 {
   fprintf(where, "Usage: hwloc-distrib [options] number\n");
   fprintf(where, "Options:\n");
-  fprintf(where, "   --single\tsinglify each output to a single CPU\n");
-  fprintf(where, "   -v\t\t\tverbose messages\n");
-  fprintf(where, "   --synthetic \"2 2\"\tsimulate a fake hierarchy\n");
-#ifdef HWLOC_HAVE_XML
-  fprintf(where, "   --xml <path>\t\tread topology from XML file <path>\n");
-#endif
-  fprintf(where, "   --version\t\treport version and exit\n");
+  fprintf(where, "  --single         Singlify each output to a single CPU\n");
+  fprintf(where, "  --taskset        Show taskset-specific cpuset strings\n");
+  hwloc_utils_input_format_usage(where, 0);
+  fprintf(where, "  --ignore <type>  Ignore objects of the given type\n");
+  fprintf(where, "  --from <type>    Distribute starting from objects of the given type\n");
+  fprintf(where, "  --to <type>      Distribute down to objects of the given type\n");
+  fprintf(where, "  --at <type>      Distribute among objects of the given type\n");
+  fprintf(where, "  -v               Show verbose messages\n");
+  fprintf(where, "  --version        Report version and exit\n");
 }
 
 int main(int argc, char *argv[])
 {
   long n = -1;
-  char * synthetic = NULL;
-  const char * xmlpath = NULL;
+  char *callname;
+  char *input = NULL;
+  enum hwloc_utils_input_format input_format = HWLOC_UTILS_INPUT_DEFAULT;
+  int taskset = 0;
   int singlify = 0;
   int verbose = 0;
+  hwloc_obj_type_t from_type = (hwloc_obj_type_t) -1, to_type = (hwloc_obj_type_t) -1;
   char **orig_argv = argv;
+  hwloc_topology_t topology;
+  int opt;
 
+  hwloc_topology_init(&topology);
+
   /* skip argv[0], handle options */
+  callname = argv[0];
   argv++;
   argc--;
 
@@ -47,50 +61,78 @@
 	singlify = 1;
 	goto next;
       }
+      if (!strcmp(argv[0], "--taskset")) {
+	taskset = 1;
+	goto next;
+      }
       if (!strcmp(argv[0], "-v")) {
 	verbose = 1;
 	goto next;
       }
       if (!strcmp(argv[0], "--help")) {
-	usage(stdout);
+	usage(callname, stdout);
 	return EXIT_SUCCESS;
       }
-      if (!strcmp (argv[0], "--synthetic")) {
+      if (hwloc_utils_lookup_input_option(argv, argc, &opt,
+					  &input, &input_format,
+					  callname)) {
+	argv += opt;
+	argc -= opt;
+	goto next;
+      }
+      else if (!strcmp (argv[0], "--ignore")) {
 	if (argc <= 2) {
-	  usage(stdout);
+	  usage(callname, stdout);
 	  exit(EXIT_FAILURE);
 	}
-	synthetic = argv[1];
+	hwloc_topology_ignore_type(topology, hwloc_obj_type_of_string(argv[1]));
+	argc--;
 	argv++;
+	goto next;
+      }
+      else if (!strcmp (argv[0], "--from")) {
+	if (argc <= 2) {
+	  usage(callname, stdout);
+	  exit(EXIT_FAILURE);
+	}
+	from_type = hwloc_obj_type_of_string(argv[1]);
 	argc--;
+	argv++;
 	goto next;
       }
-      else if (!strcmp (argv[0], "--version")) {
-          printf("%s %s\n", orig_argv[0], VERSION);
-          exit(EXIT_SUCCESS);
+      else if (!strcmp (argv[0], "--to")) {
+	if (argc <= 2) {
+	  usage(callname, stdout);
+	  exit(EXIT_FAILURE);
+	}
+	to_type = hwloc_obj_type_of_string(argv[1]);
+	argc--;
+	argv++;
+	goto next;
       }
-#ifdef HWLOC_HAVE_XML
-      if (!strcmp (argv[0], "--xml")) {
+      else if (!strcmp (argv[0], "--at")) {
 	if (argc <= 2) {
-	  usage(stdout);
+	  usage(callname, stdout);
 	  exit(EXIT_FAILURE);
 	}
-	xmlpath = argv[1];
+	from_type = to_type = hwloc_obj_type_of_string(argv[1]);
 	argc--;
 	argv++;
-	if (!strcmp(xmlpath, "-"))
-	  xmlpath = "/dev/stdin";
 	goto next;
       }
-#endif /* HWLOC_HAVE_XML */
+      else if (!strcmp (argv[0], "--version")) {
+          printf("%s %s\n", orig_argv[0], VERSION);
+          exit(EXIT_SUCCESS);
+      }
 
-      usage(stderr);
+      fprintf (stderr, "Unrecognized option: %s\n", argv[0]);
+      usage(callname, stderr);
       return EXIT_FAILURE;
     }
 
     if (n != -1) {
       fprintf(stderr,"duplicate number\n");
-      usage(stderr);
+      usage(callname, stderr);
       return EXIT_FAILURE;
     }
     n = atol(argv[0]);
@@ -102,7 +144,7 @@
 
   if (n == -1) {
     fprintf(stderr,"need a number\n");
-    usage(stderr);
+    usage(callname, stderr);
     return EXIT_FAILURE;
   }
 
@@ -110,29 +152,66 @@
     fprintf(stderr, "distributing %ld\n", n);
 
   {
-    long i;
-    hwloc_cpuset_t cpuset[n];
-    hwloc_topology_t topology;
+    unsigned i;
+    int from_depth, to_depth;
+    unsigned chunks;
+    hwloc_bitmap_t cpuset[n];
 
-    hwloc_topology_init(&topology);
-    if (synthetic)
-      hwloc_topology_set_synthetic(topology, synthetic);
-    if (xmlpath)
-      hwloc_topology_set_xml(topology, xmlpath);
+    if (input)
+      hwloc_utils_enable_input_format(topology, input, input_format, verbose, callname);
     hwloc_topology_load(topology);
 
-    hwloc_distribute(topology, hwloc_get_root_obj(topology), cpuset, n);
-    for (i = 0; i < n; i++) {
-      char *str = NULL;
-      if (singlify)
-	hwloc_cpuset_singlify(cpuset[i]);
-      hwloc_cpuset_asprintf(&str, cpuset[i]);
-      printf("%s\n", str);
-      free(str);
-      hwloc_cpuset_free(cpuset[i]);
+    if (from_type == (hwloc_obj_type_t) -1) {
+      from_depth = 0;
+    } else {
+      from_depth = hwloc_get_type_depth(topology, from_type);
+      if (from_depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+	fprintf(stderr, "unavailable type %s to distribute among, ignoring\n", hwloc_obj_type_string(from_type));
+	from_depth = 0;
+      } else if (from_depth == HWLOC_TYPE_DEPTH_MULTIPLE) {
+	fprintf(stderr, "multiple depth for type %s to distribute among, ignoring\n", hwloc_obj_type_string(from_type));
+	from_depth = 0;
+      }
     }
-    hwloc_topology_destroy(topology);
+
+    if (to_type == (hwloc_obj_type_t) -1) {
+      to_depth = INT_MAX;
+    } else {
+      to_depth = hwloc_get_type_depth(topology, to_type);
+      if (to_depth == HWLOC_TYPE_DEPTH_UNKNOWN) {
+	fprintf(stderr, "unavailable type %s to distribute among, ignoring\n", hwloc_obj_type_string(to_type));
+	to_depth = INT_MAX;
+      } else if (to_depth == HWLOC_TYPE_DEPTH_MULTIPLE) {
+	fprintf(stderr, "multiple depth for type %s to distribute among, ignoring\n", hwloc_obj_type_string(to_type));
+	to_depth = INT_MAX;
+      }
+    }
+
+    chunks =  hwloc_get_nbobjs_by_depth(topology, from_depth);
+    {
+      hwloc_obj_t roots[chunks];
+
+      for (i = 0; i < chunks; i++)
+        roots[i] = hwloc_get_obj_by_depth(topology, from_depth, i);
+
+      hwloc_distributev(topology, roots, chunks, cpuset, n, to_depth);
+
+      for (i = 0; i < n; i++) {
+	char *str = NULL;
+	if (singlify)
+	  hwloc_bitmap_singlify(cpuset[i]);
+	if (taskset)
+	  hwloc_bitmap_taskset_asprintf(&str, cpuset[i]);
+	else
+	  hwloc_bitmap_asprintf(&str, cpuset[i]);
+	printf("%s\n", str);
+	free(str);
+	hwloc_bitmap_free(cpuset[i]);
+      }
+    }
   }
 
+  hwloc_topology_destroy(topology);
+
   return EXIT_SUCCESS;
 }

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.1in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.1in	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.1in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,63 @@
+.\" -*- nroff -*-
+.\" Copyright © 2010 INRIA
+.\" Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
+.TH HWLOC-PS "1" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.SH NAME
+hwloc-ps \- List currently-running processes that are bound.
+.
+.\" **************************
+.\"    Synopsis Section
+.\" **************************
+.SH SYNOPSIS
+.
+.B hwloc-ps
+[\fIoptions\fR]
+.
+.\" **************************
+.\"    Options Section
+.\" **************************
+.SH OPTIONS
+.
+.TP 10
+\fB\-a\fR
+list all processes, even those that are not bound to any
+specific part of the machine.
+.TP
+\fB\-p\fR \fB\-\-physical\fR
+report OS/physical indexes instead of logical indexes
+.TP
+\fB\-l\fR \fB\-\-logical\fR
+report logical indexes instead of physical/OS indexes (default)
+.TP
+\fB\-c\fR \fB\-\-cpuset\fR
+show process bindings as cpusets instead of objects.
+.
+.\" **************************
+.\"    Description Section
+.\" **************************
+.SH DESCRIPTION
+.
+By default, hwloc-ps lists only those currently-running processes that
+are bound; it displays their their identifier, command-line and
+binding.  The binding may be reported as objects or cpusets.
+.
+The output is a plain list. If you wish to annotate the hierarchical
+topology with processes so as to see how they are actual distributed
+on the machine, you might want to use lstopo --ps instead (which also
+only shows processes that are bound).
+.
+.PP
+The
+.I -a
+switch can be used to show
+.I all
+processes, if desired.
+.
+.\" **************************
+.\"    See also section
+.\" **************************
+.SH SEE ALSO
+.
+.ft R
+hwloc(7), lstopo(1), hwloc-calc(1), hwloc-distrib(1)
+.sp

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.c	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc-ps.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,164 @@
+/*
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
+ * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * See COPYING in top-level directory.
+ */
+
+#include <private/config.h>
+#include <hwloc.h>
+
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <dirent.h>
+#include <fcntl.h>
+
+static void usage(char *name, FILE *where)
+{
+  fprintf (where, "Usage: %s [ options ] ... [ filename ]\n", name);
+  fprintf (where, "Options:\n");
+  fprintf (where, "  -a             Show all processes, including those that are not bound\n");
+  fprintf (where, "  -l --logical   Use logical object indexes (default)\n");
+  fprintf (where, "  -p --physical  Use physical object indexes\n");
+  fprintf (where, "  -c --cpuset    Show cpuset instead of objects\n");
+}
+
+int main(int argc, char *argv[])
+{
+  const struct hwloc_topology_support *support;
+  hwloc_topology_t topology;
+  hwloc_obj_t root;
+  hwloc_bitmap_t cpuset;
+  int logical = 1;
+  int show_cpuset = 0;
+  DIR *dir;
+  struct dirent *dirent;
+  int show_all = 0;
+  char *callname;
+  int err;
+  int opt;
+
+  callname = strrchr(argv[0], '/');
+  if (!callname)
+    callname = argv[0];
+  else
+    callname++;
+
+  while (argc >= 2) {
+    opt = 0;
+    if (!strcmp(argv[1], "-a"))
+      show_all = 1;
+    else if (!strcmp(argv[1], "-l") || !strcmp(argv[1], "--logical")) {
+      logical = 1;
+    } else if (!strcmp(argv[1], "-p") || !strcmp(argv[1], "--physical")) {
+      logical = 0;
+    } else if (!strcmp(argv[1], "-c") || !strcmp(argv[1], "--cpuset")) {
+      show_cpuset = 1;
+    } else {
+      fprintf (stderr, "Unrecognized option: %s\n", argv[1]);
+      usage (callname, stderr);
+      exit(EXIT_FAILURE);
+    }
+    argc -= opt+1;
+    argv += opt+1;
+  }
+
+  err = hwloc_topology_init(&topology);
+  if (err)
+    goto out;
+
+  err = hwloc_topology_load(topology);
+  if (err)
+    goto out_with_topology;
+
+  root = hwloc_get_root_obj(topology);
+
+  support = hwloc_topology_get_support(topology);
+
+  if (!support->cpubind->get_thisproc_cpubind)
+    goto out_with_topology;
+
+  dir  = opendir("/proc");
+  if (!dir)
+    goto out_with_topology;
+
+  cpuset = hwloc_bitmap_alloc();
+  if (!cpuset)
+    goto out_with_dir;
+
+  while ((dirent = readdir(dir))) {
+    long pid;
+    char *end;
+    char name[64] = "";
+    char *cpuset_str = NULL;
+
+    pid = strtol(dirent->d_name, &end, 10);
+    if (*end)
+      /* Not a number */
+      continue;
+
+#ifdef HWLOC_LINUX_SYS
+    {
+      char path[6 + strlen(dirent->d_name) + 1 + 7 + 1];
+      int file;
+      ssize_t n;
+
+      snprintf(path, sizeof(path), "/proc/%s/cmdline", dirent->d_name);
+
+      if ((file = open(path, O_RDONLY)) >= 0) {
+        n = read(file, name, sizeof(name) - 1);
+        close(file);
+
+        if (n <= 0)
+          /* Ignore kernel threads and errors */
+          continue;
+        name[n] = 0;
+      }
+    }
+#endif /* HWLOC_LINUX_SYS */
+
+    if (hwloc_get_proc_cpubind(topology, pid, cpuset, 0))
+      continue;
+
+    if (hwloc_bitmap_isequal(cpuset, root->cpuset) && !show_all)
+      continue;
+
+    printf("%ld\t", pid);
+
+    if (show_cpuset) {
+      hwloc_bitmap_asprintf(&cpuset_str, cpuset);
+      printf("%s", cpuset_str);
+    } else {
+      hwloc_bitmap_t remaining = hwloc_bitmap_dup(cpuset);
+      int first = 1;
+      while (!hwloc_bitmap_iszero(remaining)) {
+        char type[64];
+        unsigned idx;
+        hwloc_obj_t obj = hwloc_get_first_largest_obj_inside_cpuset(topology, remaining);
+        hwloc_obj_type_snprintf(type, sizeof(type), obj, 1);
+        idx = logical ? obj->logical_index : obj->os_index;
+        if (idx == (unsigned) -1)
+          printf("%s%s", first ? "" : " ", type);
+        else
+          printf("%s%s:%u", first ? "" : " ", type, idx);
+        hwloc_bitmap_andnot(remaining, remaining, obj->cpuset);
+        first = 0;
+      }
+      hwloc_bitmap_free(remaining);
+    }
+
+    printf("\t\t%s\n", name);
+    free(cpuset_str);
+  }
+
+  err = 0;
+  hwloc_bitmap_free(cpuset);
+
+ out_with_dir:
+  closedir(dir);
+ out_with_topology:
+  hwloc_topology_destroy(topology);
+ out:
+  return err;
+}

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc.7in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc.7in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/hwloc.7in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,8 @@
 .\" -*- nroff -*-
+.\" Copyright © 2010 INRIA
+.\" Copyright © 2010 Université of Bordeaux
 .\" Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
-.TH HWLOC "1" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
+.TH HWLOC "7" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
 .SH NAME
 hwloc - General information about hwloc ("hardware locality").
 .
@@ -90,7 +92,7 @@
 the topology, the Nth tuple's object must have a shallower topology
 depth than the (N+1)th tuple's object.  Put simply: as you move right
 in a tuple chain, objects must go deeper in the topology tree.
-When using logical indexes (default),
+When using logical indexes (which is the default),
 indexes specified in chained tuples are relative to the scope of the
 parent object.  For example, "socket:0.core:1" refers to the second
 core in the first socket.
@@ -111,20 +113,30 @@
 of 8 digits that are all zeoro can be left empty; "0xff0,,0x13" is
 equivalent to "0xff0,0x00000000,0x13".
 .
+If the location is prefixed with the special string "0xf...f", then
+all unspecified bits are set (as if the set were infinite). For
+example, "0xf...f,0x1" sets both the first bit and all bits starting
+with the 33rd.  The string "0xf...f" -- with no other specified values
+-- sets all bits.
+.
 .PP
 Multiple locations can be specified on the hwloc-bind command line
 (delimited by whitespace); the first token of the execution command is
 assumed to either follow "--" (if specified) or the first token that
 is unrecognized as a location.
 .
-By default, multiple locations are added, meaning that the binding
-will be wider in the sense that the process may run on more objects.
-If prefixed with "~", the given location will be cleared instead of
-added to the current list of locations.
-If prefixed with "x", the given location will be and'ed instead of
-added to the current list.
-If prefixed with "^", the given location will be xor'ed.
+.PP
+By default, if multiple locations are specified, they are added,
+meaning that the binding will be wider in the sense that the process
+may run on more objects.  
 .
+.PP
+If prefixed with "~", the given location
+will be cleared instead of added to the current list of locations.  If
+prefixed with "x", the given location will be and'ed instead of added
+to the current list.  If prefixed with "^", the given location will be
+xor'ed.
+.
 More complex operations may be performed by using
 .R hwloc-calc
 to compute intermediate values.
@@ -156,13 +168,13 @@
 logical processors, such as hardware threads.
 .
 .TP
-.B proc
+.B pu
 Short for 
-.I processor 
+.I processor unit
 (not 
 .IR process !).  
 The smallest physical execution unit that hwloc recognizes.  For
-example, there may be multiple procs on a core (e.g.,
+example, there may be multiple PUs on a core (e.g.,
 hardware threads).
 .PP
 The additional
@@ -180,11 +192,7 @@
 .I logical
 values or
 .I physical 
-values.  
-While
-.B hwloc-bind accepts logical indexes as
-.BR input
-by default.
+values.  Most hwloc utilities accept logical indexes by default.
 Passing
 .B --physical
 switches to physical/OS indexes.
@@ -208,24 +216,31 @@
 following:
 .
 
-  System(32GB)
-    Node#0(16GB)
-      Socket#0 + L2(4MB)
-        L1(32KB) + Core#16 + P#0
-        L1(32KB) + Core#18 + P#2
-      Socket#1 + L2(4MB)
-	L1(32KB) + Core#16 + P#1
-	L1(32KB) + Core#18 + P#3
+  Machine (47GB)
+    NUMANode p#0 (24GB) + Socket p#0 + L3 (12MB)
+      L2 (256KB) + L1 (32KB) + Core p#0 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#1 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#2 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#8 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#9 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#10 + PU p#0
+    NUMANode p#1 (24GB) + Socket p#1 + L3 (12MB)
+      L2 (256KB) + L1 (32KB) + Core p#0 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#1 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#2 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#8 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#9 + PU p#0
+      L2 (256KB) + L1 (32KB) + Core p#10 + PU p#0
 
-The first core on the second socket is logically number 2 (i.e.,
-logically the 3rd core, starting from 0).  Its physical index is
-16, but note that another core
+In this example, the first core on the second socket is logically
+number 6 (i.e., logically the 7th core, starting from 0).  Its
+physical index is 0, but note that another core
 .I also 
-has a physical index of 16.  Hence, physical indexes may only be
-relevant within the scope of their parent (or set of grandparents).
-In this example, to uniquely identify logical core 2 with
+has a physical index of 0.  Hence, physical indexes may only be
+relevant within the scope of their parent (or set of ancestors).
+In this example, to uniquely identify logical core 6 with
 physical indexes, you must specify (at a minimum) both a socket and a
-core: socket 1, core 16.
+core: socket 1, core 0.
 .PP
 Index values, regardless of whether they are logical or physical, can
 be expressed in several different forms (where X, Y, and N are
@@ -275,7 +290,7 @@
 .SH SEE ALSO
 .
 Hwloc's command line tool documentation: lstopo(1), hwloc-bind(1),
-hwloc-calc(1), hwloc-distrib(1).
+hwloc-calc(1), hwloc-distrib(1), hwloc-ps(1).
 .
 .PP
 Hwloc has many C API functions, each of which have their own man page.

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-cairo.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-cairo.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-cairo.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -33,6 +35,8 @@
 #include <X11/Xutil.h>
 #include <X11/keysym.h>
 #include <X11/cursorfont.h>
+/* Avoid Xwindow's definition conflict with Windows' use for fields names.  */
+#undef Status
 #endif /* CAIRO_HAS_XLIB_SURFACE */
 
 #include <stdio.h>
@@ -455,9 +459,10 @@
 void
 output_svg(hwloc_topology_t topology, const char *filename, int logical, int verbose_mode __hwloc_attribute_unused)
 {
-  FILE *output = open_file(filename, "w");
+  FILE *output;
   cairo_surface_t *cs;
 
+  output = open_file(filename, "w");
   if (!output) {
     fprintf(stderr, "Failed to open %s for writing (%s)\n", filename, strerror(errno));
     return;

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-color.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-color.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-color.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-draw.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-draw.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-draw.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,8 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
@@ -360,20 +362,20 @@
 
   RECURSE_HORIZ(level, &null_draw_methods, 0, gridsize);
 
-  if (hwloc_cpuset_isset(level->online_cpuset, level->os_index))
-    if (!hwloc_cpuset_isset(level->allowed_cpuset, level->os_index))
+  if (hwloc_bitmap_isset(level->online_cpuset, level->os_index))
+    if (!hwloc_bitmap_isset(level->allowed_cpuset, level->os_index))
       methods->box(output, FORBIDDEN_R_COLOR, FORBIDDEN_G_COLOR, FORBIDDEN_B_COLOR, depth, x, *retwidth, y, *retheight);
     else {
-      hwloc_cpuset_t bind = hwloc_cpuset_alloc();
+      hwloc_bitmap_t bind = hwloc_bitmap_alloc();
       if (pid != (hwloc_pid_t) -1 && pid != 0)
         hwloc_get_proc_cpubind(topology, pid, bind, 0);
       else if (pid == 0)
         hwloc_get_cpubind(topology, bind, 0);
-      if (bind && hwloc_cpuset_isset(bind, level->os_index))
+      if (bind && hwloc_bitmap_isset(bind, level->os_index))
         methods->box(output, RUNNING_R_COLOR, RUNNING_G_COLOR, RUNNING_B_COLOR, depth, x, *retwidth, y, *retheight);
       else
         methods->box(output, THREAD_R_COLOR, THREAD_G_COLOR, THREAD_B_COLOR, depth, x, *retwidth, y, *retheight);
-      hwloc_cpuset_free(bind);
+      hwloc_bitmap_free(bind);
     }
   else
     methods->box(output, OFFLINE_R_COLOR, OFFLINE_G_COLOR, OFFLINE_B_COLOR, depth, x, *retwidth, y, *retheight);
@@ -381,7 +383,7 @@
   if (fontsize) {
     char text[64];
     lstopo_obj_snprintf(text, sizeof(text), level, logical);
-    if (hwloc_cpuset_isset(level->online_cpuset, level->os_index))
+    if (hwloc_bitmap_isset(level->online_cpuset, level->os_index))
       methods->text(output, 0, 0, 0, fontsize, depth-1, x + gridsize, y + gridsize, text);
     else
       methods->text(output, 0xff, 0xff, 0xff, fontsize, depth-1, x + gridsize, y + gridsize, text);

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-fig.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-fig.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-fig.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-text.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-text.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-text.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,6 +1,8 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
@@ -71,7 +73,10 @@
     fprintf(output, " cpuset=");
   if (show_cpuset) {
     char *cpusetstr;
-    hwloc_cpuset_asprintf(&cpusetstr, l->cpuset);
+    if (taskset)
+      hwloc_bitmap_taskset_asprintf(&cpusetstr, l->cpuset);
+    else
+      hwloc_bitmap_asprintf(&cpusetstr, l->cpuset);
     fprintf(output, "%s", cpusetstr);
     free(cpusetstr);
   }
@@ -85,7 +90,7 @@
   int group_identical = (verbose_mode <= 1) && !show_cpuset;
   if (group_identical
       && parent && parent->arity == 1
-      && l->cpuset && parent->cpuset && hwloc_cpuset_isequal(l->cpuset, parent->cpuset)) {
+      && l->cpuset && parent->cpuset && hwloc_bitmap_isequal(l->cpuset, parent->cpuset)) {
     /* in non-verbose mode, merge objects with their parent is they are exactly identical */
     fprintf(output, " + ");
   } else {
@@ -159,51 +164,51 @@
   }
 
   if (verbose_mode > 1) {
-    hwloc_const_cpuset_t complete = hwloc_topology_get_complete_cpuset(topology);
-    hwloc_const_cpuset_t topo = hwloc_topology_get_topology_cpuset(topology);
-    hwloc_const_cpuset_t online = hwloc_topology_get_online_cpuset(topology);
-    hwloc_const_cpuset_t allowed = hwloc_topology_get_allowed_cpuset(topology);
+    hwloc_const_bitmap_t complete = hwloc_topology_get_complete_cpuset(topology);
+    hwloc_const_bitmap_t topo = hwloc_topology_get_topology_cpuset(topology);
+    hwloc_const_bitmap_t online = hwloc_topology_get_online_cpuset(topology);
+    hwloc_const_bitmap_t allowed = hwloc_topology_get_allowed_cpuset(topology);
 
-    if (!hwloc_cpuset_isequal(topo, complete)) {
-      hwloc_cpuset_t unknown = hwloc_cpuset_alloc();
+    if (!hwloc_bitmap_isequal(topo, complete)) {
+      hwloc_bitmap_t unknown = hwloc_bitmap_alloc();
       char *unknownstr;
-      hwloc_cpuset_copy(unknown, complete);
-      hwloc_cpuset_andnot(unknown, unknown, topo);
-      hwloc_cpuset_asprintf(&unknownstr, unknown);
-      fprintf (output, "%d processors not represented in topology: %s\n", hwloc_cpuset_weight(unknown), unknownstr);
+      hwloc_bitmap_copy(unknown, complete);
+      hwloc_bitmap_andnot(unknown, unknown, topo);
+      hwloc_bitmap_asprintf(&unknownstr, unknown);
+      fprintf (output, "%d processors not represented in topology: %s\n", hwloc_bitmap_weight(unknown), unknownstr);
       free(unknownstr);
-      hwloc_cpuset_free(unknown);
+      hwloc_bitmap_free(unknown);
     }
-    if (!hwloc_cpuset_isequal(online, complete)) {
-      hwloc_cpuset_t offline = hwloc_cpuset_alloc();
+    if (!hwloc_bitmap_isequal(online, complete)) {
+      hwloc_bitmap_t offline = hwloc_bitmap_alloc();
       char *offlinestr;
-      hwloc_cpuset_copy(offline, complete);
-      hwloc_cpuset_andnot(offline, offline, online);
-      hwloc_cpuset_asprintf(&offlinestr, offline);
-      fprintf (output, "%d processors offline: %s\n", hwloc_cpuset_weight(offline), offlinestr);
+      hwloc_bitmap_copy(offline, complete);
+      hwloc_bitmap_andnot(offline, offline, online);
+      hwloc_bitmap_asprintf(&offlinestr, offline);
+      fprintf (output, "%d processors offline: %s\n", hwloc_bitmap_weight(offline), offlinestr);
       free(offlinestr);
-      hwloc_cpuset_free(offline);
+      hwloc_bitmap_free(offline);
     }
-    if (!hwloc_cpuset_isequal(allowed, online)) {
-      if (!hwloc_cpuset_isincluded(online, allowed)) {
-        hwloc_cpuset_t forbidden = hwloc_cpuset_alloc();
+    if (!hwloc_bitmap_isequal(allowed, online)) {
+      if (!hwloc_bitmap_isincluded(online, allowed)) {
+        hwloc_bitmap_t forbidden = hwloc_bitmap_alloc();
         char *forbiddenstr;
-        hwloc_cpuset_copy(forbidden, online);
-        hwloc_cpuset_andnot(forbidden, forbidden, allowed);
-        hwloc_cpuset_asprintf(&forbiddenstr, forbidden);
-        fprintf(output, "%d processors online but not allowed: %s\n", hwloc_cpuset_weight(forbidden), forbiddenstr);
+        hwloc_bitmap_copy(forbidden, online);
+        hwloc_bitmap_andnot(forbidden, forbidden, allowed);
+        hwloc_bitmap_asprintf(&forbiddenstr, forbidden);
+        fprintf(output, "%d processors online but not allowed: %s\n", hwloc_bitmap_weight(forbidden), forbiddenstr);
         free(forbiddenstr);
-        hwloc_cpuset_free(forbidden);
+        hwloc_bitmap_free(forbidden);
       }
-      if (!hwloc_cpuset_isincluded(allowed, online)) {
-        hwloc_cpuset_t potential = hwloc_cpuset_alloc();
+      if (!hwloc_bitmap_isincluded(allowed, online)) {
+        hwloc_bitmap_t potential = hwloc_bitmap_alloc();
         char *potentialstr;
-        hwloc_cpuset_copy(potential, allowed);
-        hwloc_cpuset_andnot(potential, potential, online);
-        hwloc_cpuset_asprintf(&potentialstr, potential);
-        fprintf(output, "%d processors allowed but not online: %s\n", hwloc_cpuset_weight(potential), potentialstr);
+        hwloc_bitmap_copy(potential, allowed);
+        hwloc_bitmap_andnot(potential, potential, online);
+        hwloc_bitmap_asprintf(&potentialstr, potential);
+        fprintf(output, "%d processors allowed but not online: %s\n", hwloc_bitmap_weight(potential), potentialstr);
         free(potentialstr);
-        hwloc_cpuset_free(potential);
+        hwloc_bitmap_free(potential);
       }
     }
     if (!hwloc_topology_is_thissystem(topology))

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-windows.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-windows.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-windows.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-xml.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-xml.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo-xml.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009 Université Bordeaux 1
  * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
@@ -15,7 +17,7 @@
 
 void output_xml(hwloc_topology_t topology, const char *filename, int logical __hwloc_attribute_unused, int verbose_mode __hwloc_attribute_unused)
 {
-  if (!strcasecmp(filename, "-.xml"))
+  if (!filename || !strcasecmp(filename, "-.xml"))
     filename = "-";
 
   hwloc_topology_export_xml(topology, filename);

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.1in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.1in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.1in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 .\" -*- nroff -*-
-.\" Copyright © 2010 Cisco Systems, Inc.  All rights reserved.
+.\" Copyright © 2009-2010 INRIA
+.\" Copyright © 2009-2010 Université of Bordeaux
+.\" Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
 .TH LSTOPO "1" "#HWLOC_DATE#" "#PACKAGE_VERSION#" "#PACKAGE_NAME#"
 .SH NAME
 lstopo \- Show the topology of the system (note that hwloc-bind(1)
@@ -20,11 +22,35 @@
 .SH OPTIONS
 .
 .TP
+\fB\-\-of\fR <format>, \fB\-\-output\-format\fR <format>
+Enforce the output in the given format.
+See the OUTPUT FORMATS section below.
+.TP
+\fB\-i\fR <file>, \fB\-\-input\fR <file>
+Read topology from XML file <file> (instead of discovering the
+topology on the local machine).  If <file> is "\-", the standard input
+is used.  XML support must have been compiled in to hwloc for this
+option to be usable.
+.TP
+\fB\-i\fR <directory>, \fB\-\-input\fR <directory>
+Read topology from the chroot specified by <directory> (instead of
+discovering the topology on the local machine).  This option is
+generally only available on Linux.
+.TP
+\fB\-i\fR <specification>, \fB\-\-input\fR <specification>
+Simulate a fake hierarchy (instead of discovering the topology on the
+local machine). If <specification> is "node:2 pu:3", the topology will
+contain two NUMA nodes with 3 processing units in each of them.
+.TP
+\fB\-\-if\fR <format>, \fB\-\-input\-format\fR <format>
+Enforce the input in the given format, among \fBxml\fR, \fBfsroot\fR
+and \fBsynthetic\fR.
+.TP
 \fB\-v\fR \fB\-\-verbose\fR
 Include additional detail.
 .TP
 \fB\-s\fR \fB\-\-silent\fR
-Opposite of --verbose (default).
+Reduce the amount of details to show.
 .TP
 \fB\-l\fR \fB\-\-logical\fR
 Display hwloc logical indexes instead of physical/OS indexes (default).
@@ -43,6 +69,12 @@
 Only display the cpuset of each object; do not display anything else
 about the object.
 .TP
+\fB\-\-taskset\fR
+Show CPU set strings in the format recognized by the taskset command-line
+program instead of hwloc-specific CPU set string format.
+This option should be combined with \fB\-\-cpuset\fR or \fB\-\-cpuset\-only\fR,
+otherwise it will imply \fB\-\-cpuset\fR.
+.TP
 \fB\-\-only\fR <type>
 Only show objects of the given type in the text output.
 .TP
@@ -61,32 +93,18 @@
 \fB\-\-merge\fR
 Do not show levels that do not have a hierarchical impact.
 .TP
-\fB\-\-xml\fR <path>
-Read topology from XML file <path> (instead of discovering the
-topology on the local machine).  If <path> is "\-", the standard input
-is used.  XML support must have been compiled in to hwloc for this
-option to be usable.
-.TP
-\fB\-\-fsys\-root\fR <path>
-Read topology from the chroot specified by <path> (instead of
-discovering the topology on the local machine).  This option is
-generally only available on Linux.
-.TP
 \fB\-\-pid\fR <pid>
 Detect topology as seen by process <pid>, i.e. as if process <pid> did the
 discovery itself, and show its current binding. Note that this can for instance
 change the set of allowed processors. If 0 is given as pid, the current binding for the lstopo process will be shown.
 .TP
-\fB\-\-top\fR
+\fB\-\-ps\fR \fB\-\-top\fR
 Show existing processes as misc objects in the output. To avoid uselessly
 cluttering the output, only processes that are restricted to some part of the
 machine are shown.  On Linux, kernel threads are not shown.
+If many processes appear, the output may become hard to read anyway,
+making the hwloc-ps program more practical.
 .TP
-\fB\-\-synthetic\fR <specification>
-Simulate a fake hierarchy (instead of discovering the topology on the
-local machine). If <specification> is "node:2 pu:3", the topology will
-contain two NUMA nodes with 3 processing units in each of them.
-.TP
 \fB\-\-fontsize\fR <size>
 Set size of text font.
 .TP
@@ -127,65 +145,81 @@
 .SH OUTPUT FORMATS
 .
 .PP
-The filename on the command line determines the format of the output.
+The filename on the command line usually determines the format of the output.
 There are a few filenames that indicate specific output formats and
 devices (e.g., a filename of "-" will output a text summary to
 stdout), but most filenames indicate the desired output format by 
 their suffix (e.g., "topo.png" will output a PNG-format file).
+.PP
+The format of the output may also be changed with "\-\-of".
+For instance, "\-\-of pdf" will generate a PDF-format file on the standard
+output, while "\-\-of fig toto" will output a Xfig-format file named "toto".
+
+.PP
+The list of currently supported formats is given below. Any of them may
+be used with "\-\-of" or as a filename suffix.
 .TP
-.B \-
+.B default
+Send the output to a window or to the console depending on the environment.
+.TP
+.B console
 Send a text summary to stdout.
 .
 .TP
-.B /dev/stdout
-Send a text summary to stdout.  It is effectively the same as
-specifying "\-".
+.B txt
+Output an ASCII art representation of the map.
+If outputting to stdout and if colors are supported on the terminal,
+the output will be colorized.
 .
 .TP
-.B <filename>.txt
-If the filename ends in ".txt", lstopo outputs an ASCII art
-representation of the map.
+.B fig
+Output a representation of the map that can be loaded in Xfig.
 .
 .TP
-.B \-.txt
-If the entire filename is "\-.txt", lstopo outputs the same ASCII art
-representation as other ".txt" filenames, but with two exceptions: 1)
-the output is sent to stdout, and 2) if colors are supported on the
-terminal, the ASCII art will be colorized.
-.
-.TP
-.B <filename>.fig
-If the filename ends in ".fig", lstopo outputs a representation of the
-map that can be loaded in Xfig.
-.
-.TP
-.B <filename>.pdf
-If the filename ends in ".pdf" and lstopo was compiled with the proper
+.B pdf
+If lstopo was compiled with the proper
 support, lstopo outputs a PDF representation of the map.
 .
 .TP
-.B <filename>.ps
-If the filename ends in ".ps" and lstopo was compiled with the proper
+.B ps
+If lstopo was compiled with the proper
 support, lstopo outputs a Postscript representation of the map.
 .
 .TP
-.B <filename>.png
-If the filename ends in ".png" and lstopo was compiled with the proper
+.B png
+If lstopo was compiled with the proper
 support, lstopo outputs a PNG representation of the map.
 .
 .TP
-.B <filename>.svg
-If the filename ends in ".svg" and lstopo was compiled with the proper
+.B svg
+If lstopo was compiled with the proper
 support, lstopo outputs an SVG representation of the map.
 .
 .TP
-.B <filename>.xml
-If the filename ends in ".xml" and lstopo was compiled with the proper
+.B xml
+If lstopo was compiled with the proper
 support, lstopo outputs an XML representation of the map.
-It may be reused later, even on another machine, with lstopo \-\-xml,
+It may be reused later, even on another machine, with lstopo \-\-input,
 the HWLOC_XMLFILE environment variable, or the hwloc_topology_set_xml()
 function.
+
+.PP
+The following special names may be used:
+.TP
+.B \-
+Send a text summary to stdout.
 .
+.TP
+.B /dev/stdout
+Send a text summary to stdout.  It is effectively the same as
+specifying "\-".
+.
+.TP
+.B \-.<format>
+If the entire filename is "\-.<format>", lstopo behaves as if
+"\-\-of <format> -" was given, which means a file of the given format
+is sent to the standard output.
+
 .PP
 See the output of "lstopo \-\-help" for a specific list of what
 graphical output formats are supported in your hwloc installation.
@@ -256,7 +290,7 @@
 
     machine1$ lstopo file.xml
     <transfer file.xml from machine1 to machine2>
-    machine2$ lstopo --xml file.xml
+    machine2$ lstopo --input file.xml
 
 To display a summary of the topology:
 
@@ -281,7 +315,7 @@
 Simulate a fake hierarchy; this example shows with 2 NUMA nodes of 2
 processor units:
 
-    lstopo --synthetic "n:2 2"
+    lstopo --input "n:2 2"
 
 To count the number of logical processors in the system
 
@@ -292,5 +326,5 @@
 .SH SEE ALSO
 .
 .ft R
-hwloc-bind(1)
+hwloc-bind(1), hwloc-ps(1)
 .sp

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.c
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.c	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.c	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,27 +1,35 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
- * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009-2010 Cisco Systems, Inc.  All rights reserved.
  * See COPYING in top-level directory.
  */
 
 #include <private/config.h>
 #include <hwloc.h>
+#ifdef HWLOC_LINUX_SYS
+#include <hwloc/linux.h>
+#endif /* HWLOC_LINUX_SYS */
 
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
 #include <dirent.h>
 #include <fcntl.h>
+#include <assert.h>
 
 #ifdef HWLOC_HAVE_CAIRO
 #include <cairo.h>
 #endif
 
 #include "lstopo.h"
+#include "misc.h"
 
 int logical = 1;
 hwloc_obj_type_t show_only = (hwloc_obj_type_t) -1;
 int show_cpuset = 0;
+int taskset = 0;
 unsigned int fontsize = 10;
 unsigned int gridsize = 10;
 unsigned int force_horiz = 0;
@@ -31,8 +39,12 @@
 
 FILE *open_file(const char *filename, const char *mode)
 {
-  const char *extn = strrchr(filename, '.');
+  const char *extn;
 
+  if (!filename)
+    return stdout;
+
+  extn = strrchr(filename, '.');
   if (filename[0] == '-' && extn == filename + 1)
     return stdout;
 
@@ -42,7 +54,10 @@
 static void add_process_objects(hwloc_topology_t topology)
 {
   hwloc_obj_t root;
-  hwloc_cpuset_t cpuset;
+  hwloc_bitmap_t cpuset;
+#ifdef HWLOC_LINUX_SYS
+  hwloc_bitmap_t task_cpuset;
+#endif /* HWLOC_LINUX_SYS */
   DIR *dir;
   struct dirent *dirent;
   const struct hwloc_topology_support *support;
@@ -57,12 +72,16 @@
   dir  = opendir("/proc");
   if (!dir)
     return;
-  cpuset = hwloc_cpuset_alloc();
+  cpuset = hwloc_bitmap_alloc();
+#ifdef HWLOC_LINUX_SYS
+  task_cpuset = hwloc_bitmap_alloc();
+#endif /* HWLOC_LINUX_SYS */
 
   while ((dirent = readdir(dir))) {
     long local_pid;
     char *end;
     char name[64];
+    int proc_cpubind;
 
     local_pid = strtol(dirent->d_name, &end, 10);
     if (*end)
@@ -71,8 +90,11 @@
 
     snprintf(name, sizeof(name), "%ld", local_pid);
 
+    proc_cpubind = hwloc_get_proc_cpubind(topology, local_pid, cpuset, 0) != -1;
+
 #ifdef HWLOC_LINUX_SYS
     {
+      /* Get the process name */
       char path[6 + strlen(dirent->d_name) + 1 + 7 + 1];
       char cmd[64], *c;
       int file;
@@ -94,91 +116,169 @@
         snprintf(name, sizeof(name), "%ld %s", local_pid, cmd);
       }
     }
+
+    {
+      /* Get threads */
+      char path[6+strlen(dirent->d_name) + 1 + 4 + 1];
+      DIR *task_dir;
+      struct dirent *task_dirent;
+
+      snprintf(path, sizeof(path), "/proc/%s/task", dirent->d_name);
+
+      if ((task_dir = opendir(path))) {
+        while ((task_dirent = readdir(task_dir))) {
+          long local_tid;
+          char *task_end;
+          char task_name[64];
+
+          local_tid = strtol(task_dirent->d_name, &task_end, 10);
+          if (*task_end)
+            /* Not a number, or the main task */
+            continue;
+
+          if (hwloc_linux_get_tid_cpubind(topology, local_tid, task_cpuset))
+            continue;
+
+          if (proc_cpubind && hwloc_bitmap_isequal(task_cpuset, cpuset))
+            continue;
+
+          snprintf(task_name, sizeof(task_name), "%s %li", name, local_tid);
+
+          hwloc_topology_insert_misc_object_by_cpuset(topology, task_cpuset, task_name);
+        }
+        closedir(task_dir);
+      }
+    }
 #endif /* HWLOC_LINUX_SYS */
 
-    if (hwloc_get_proc_cpubind(topology, local_pid, cpuset, 0))
+    if (!proc_cpubind)
       continue;
 
-    if (hwloc_cpuset_isincluded(root->cpuset, cpuset))
+    if (hwloc_bitmap_isincluded(root->cpuset, cpuset))
       continue;
 
     hwloc_topology_insert_misc_object_by_cpuset(topology, cpuset, name);
   }
 
-  hwloc_cpuset_free(cpuset);
+  hwloc_bitmap_free(cpuset);
+#ifdef HWLOC_LINUX_SYS
+  hwloc_bitmap_free(task_cpuset);
+#endif /* HWLOC_LINUX_SYS */
   closedir(dir);
 }
 
-static void usage(char *name, FILE *where)
+void usage(const char *name, FILE *where)
 {
-  fprintf (where, "Usage: %s [ options ] ... [ filename ]\n\n", name);
+  fprintf (where, "Usage: %s [ options ] ... [ filename.format ]\n\n", name);
   fprintf (where, "See lstopo(1) for more details.\n\n");
-  fprintf (where, "Supported output file formats: .txt, .fig"
+  fprintf (where, "Supported output file formats: console, txt, fig"
 #ifdef HWLOC_HAVE_CAIRO
 #if CAIRO_HAS_PDF_SURFACE
-		  ", .pdf"
+		  ", pdf"
 #endif /* CAIRO_HAS_PDF_SURFACE */
 #if CAIRO_HAS_PS_SURFACE
-		  ", .ps"
+		  ", ps"
 #endif /* CAIRO_HAS_PS_SURFACE */
 #if CAIRO_HAS_PNG_FUNCTIONS
-		  ", .png"
+		  ", png"
 #endif /* CAIRO_HAS_PNG_FUNCTIONS */
 #if CAIRO_HAS_SVG_SURFACE
-		  ", .svg"
+		  ", svg"
 #endif /* CAIRO_HAS_SVG_SURFACE */
 #endif /* HWLOC_HAVE_CAIRO */
 #ifdef HWLOC_HAVE_XML
-		  ", .xml"
+		  ", xml"
 #endif /* HWLOC_HAVE_XML */
 		  "\n");
-  fprintf (where, "\nOptions:\n");
-  fprintf (where, "   -l --logical          Display hwloc logical object indexes (default)\n");
-  fprintf (where, "   -p --physical         Display physical object indexes\n");
-  fprintf (where, "   -v --verbose          Include additional detail\n");
-  fprintf (where, "   -s --silent           Opposite of --verbose (default)\n");
-  fprintf (where, "   -c --cpuset           Show the cpuset of each object\n");
-  fprintf (where, "   -C --cpuset-only      Only show the cpuset of each ofbject\n");
-  fprintf (where, "   --only <type>         Only show the given type in the text output\n");
-  fprintf (where, "   --ignore <type>       Ignore objects of the given type\n");
-  fprintf (where, "   --no-caches           Do not show caches\n");
-  fprintf (where, "   --no-useless-caches   Do not show caches which do not have a hierarchical\n"
-                  "                         impact\n");
-  fprintf (where, "   --whole-system        Do not consider administration limitations\n");
-  fprintf (where, "   --merge               Do not show levels that do not have a hierarcical\n"
-                  "                         impact\n");
-#ifdef HWLOC_HAVE_XML
-  fprintf (where, "   --xml <path>          Read topology from XML file <path>\n");
-#endif
-#ifdef HWLOC_LINUX_SYS
-  fprintf (where, "   --fsys-root <path>    Chroot containing the /proc and /sys of another system\n");
-#endif
-  fprintf (where, "   --pid <pid>           Detect topology as seen by process <pid>\n");
-  fprintf (where, "   --top                 Display processes within the hierarchy\n");
-  fprintf (where, "   --synthetic \"n:2 2\"   Simulate a fake hierarchy, here with 2 NUMA nodes of 2\n"
-                  "                         processors\n");
-  fprintf (where, "   --fontsize 10         Set size of text font\n");
-  fprintf (where, "   --gridsize 10         Set size of margin between elements\n");
-  fprintf (where, "   --horiz               Horizontal graphic layout instead of nearly 4/3 ratio\n");
-  fprintf (where, "   --vert                Vertical graphic layout instead of nearly 4/3 ratio\n");
-  fprintf (where, "   --version             Report version and exit\n");
+  fprintf (where, "\nFormatting options:\n");
+  fprintf (where, "  -l --logical          Display hwloc logical object indexes (default)\n");
+  fprintf (where, "  -p --physical         Display physical object indexes\n");
+  fprintf (where, "Output options:\n");
+  fprintf (where, "  --output-format <format>\n");
+  fprintf (where, "  --of <format>         Force the output to use the given format\n");
+  fprintf (where, "Textual output options:\n");
+  fprintf (where, "  --only <type>         Only show objects of the given type in the text output\n");
+  fprintf (where, "  -v --verbose          Include additional details\n");
+  fprintf (where, "  -s --silent           Reduce the amount of details to show\n");
+  fprintf (where, "  -c --cpuset           Show the cpuset of each object\n");
+  fprintf (where, "  -C --cpuset-only      Only show the cpuset of each ofbject\n");
+  fprintf (where, "  --taskset             Show taskset-specific cpuset strings\n");
+  fprintf (where, "Object filtering options:\n");
+  fprintf (where, "  --ignore <type>       Ignore objects of the given type\n");
+  fprintf (where, "  --no-caches           Do not show caches\n");
+  fprintf (where, "  --no-useless-caches   Do not show caches which do not have a hierarchical\n"
+                  "                        impact\n");
+  fprintf (where, "  --merge               Do not show levels that do not have a hierarcical\n"
+                  "                        impact\n");
+  fprintf (where, "Input options:\n");
+  hwloc_utils_input_format_usage(where, 6);
+  fprintf (where, "  --pid <pid>           Detect topology as seen by process <pid>\n");
+  fprintf (where, "  --whole-system        Do not consider administration limitations\n");
+  fprintf (where, "Graphical output options:\n");
+  fprintf (where, "  --fontsize 10         Set size of text font\n");
+  fprintf (where, "  --gridsize 10         Set size of margin between elements\n");
+  fprintf (where, "  --horiz               Horizontal graphic layout instead of nearly 4/3 ratio\n");
+  fprintf (where, "  --vert                Vertical graphic layout instead of nearly 4/3 ratio\n");
+  fprintf (where, "Miscellaneous options:\n");
+  fprintf (where, "  --ps --top            Display processes within the hierarchy\n");
+  fprintf (where, "  --version             Report version and exit\n");
 }
 
+enum output_format {
+  LSTOPO_OUTPUT_DEFAULT,
+  LSTOPO_OUTPUT_CONSOLE,
+  LSTOPO_OUTPUT_TEXT,
+  LSTOPO_OUTPUT_FIG,
+  LSTOPO_OUTPUT_PNG,
+  LSTOPO_OUTPUT_PDF,
+  LSTOPO_OUTPUT_PS,
+  LSTOPO_OUTPUT_SVG,
+  LSTOPO_OUTPUT_XML
+};
+
+static enum output_format
+parse_output_format(const char *name, char *callname)
+{
+  if (!strncasecmp(name, "default", 3))
+    return LSTOPO_OUTPUT_DEFAULT;
+  else if (!strncasecmp(name, "console", 3))
+    return LSTOPO_OUTPUT_CONSOLE;
+  else if (!strcasecmp(name, "txt"))
+    return LSTOPO_OUTPUT_TEXT;
+  else if (!strcasecmp(name, "fig"))
+    return LSTOPO_OUTPUT_FIG;
+  else if (!strcasecmp(name, "png"))
+    return LSTOPO_OUTPUT_PNG;
+  else if (!strcasecmp(name, "pdf"))
+    return LSTOPO_OUTPUT_PDF;
+  else if (!strcasecmp(name, "ps"))
+    return LSTOPO_OUTPUT_PS;
+  else if (!strcasecmp(name, "svg"))
+    return LSTOPO_OUTPUT_SVG;
+  else if (!strcasecmp(name, "xml"))
+    return LSTOPO_OUTPUT_XML;
+
+  fprintf(stderr, "file format `%s' not supported\n", name);
+  usage(callname, stderr);
+  exit(EXIT_FAILURE);
+}
+
+#define LSTOPO_VERBOSE_MODE_DEFAULT 1
+
 int
 main (int argc, char *argv[])
 {
   int err;
-  int verbose_mode = 1;
+  int verbose_mode = LSTOPO_VERBOSE_MODE_DEFAULT;
   hwloc_topology_t topology;
   const char *filename = NULL;
   unsigned long flags = 0;
   int merge = 0;
   int ignorecache = 0;
   char * callname;
-  char * synthetic = NULL;
-  const char * xmlpath = NULL;
-  char * fsysroot = NULL;
-  int force_console = 0;
+  char * input = NULL;
+  enum hwloc_utils_input_format input_format = HWLOC_UTILS_INPUT_DEFAULT;
+  enum output_format output_format = LSTOPO_OUTPUT_DEFAULT;
   int opt;
 
   callname = strrchr(argv[0], '/');
@@ -196,10 +296,8 @@
       opt = 0;
       if (!strcmp (argv[1], "-v") || !strcmp (argv[1], "--verbose")) {
 	verbose_mode++;
-	force_console = 1;
       } else if (!strcmp (argv[1], "-s") || !strcmp (argv[1], "--silent")) {
 	verbose_mode--;
-	force_console = 1;
       } else if (!strcmp (argv[1], "-h") || !strcmp (argv[1], "--help")) {
 	usage(callname, stdout);
         exit(EXIT_SUCCESS);
@@ -211,7 +309,11 @@
 	show_cpuset = 1;
       else if (!strcmp (argv[1], "-C") || !strcmp (argv[1], "--cpuset-only"))
 	show_cpuset = 2;
-      else if (!strcmp (argv[1], "--only")) {
+      else if (!strcmp (argv[1], "--taskset")) {
+	taskset = 1;
+	if (!show_cpuset)
+	  show_cpuset = 1;
+      } else if (!strcmp (argv[1], "--only")) {
 	if (argc <= 2) {
 	  usage (callname, stderr);
 	  exit(EXIT_FAILURE);
@@ -255,51 +357,33 @@
 	gridsize = atoi(argv[2]);
 	opt = 1;
       }
-      else if (!strcmp (argv[1], "--synthetic")) {
-	if (argc <= 2) {
-	  usage (callname, stderr);
-	  exit(EXIT_FAILURE);
-	}
-	synthetic = argv[2]; opt = 1;
-      } else if (!strcmp (argv[1], "--xml")) {
-#ifdef HWLOC_HAVE_XML
-	if (argc <= 2) {
-	  usage (callname, stderr);
-	  exit(EXIT_FAILURE);
-	}
-	xmlpath = argv[2]; opt = 1;
-	if (!strcmp(xmlpath, "-")) {
-	  xmlpath = "/dev/stdin";
-        }
-#else /* HWLOC_HAVE_XML */
-        fprintf(stderr, "This installation of hwloc does not support --xml, sorry.\n");
-        exit(EXIT_FAILURE);
-#endif /* HWLOC_HAVE_XML */
-      } else if (!strcmp (argv[1], "--fsys-root")) {
-#ifdef HWLOC_LINUX_SYS
-	if (argc <= 2) {
-	  usage (callname, stderr);
-	  exit(EXIT_FAILURE);
-	}
-	fsysroot = argv[2]; opt = 1;
-#else /* HWLOC_LINUX_SYS */
-        fprintf(stderr, "This installation of hwloc does not support --fsys-root, sorry.\n");
-        exit(EXIT_FAILURE);
-#endif /* HWLOC_LINUX_SYS */
+
+      else if (hwloc_utils_lookup_input_option(argv+1, argc-1, &opt,
+					       &input, &input_format,
+					       callname)) {
+	/* nothing to do anymore */
+
       } else if (!strcmp (argv[1], "--pid")) {
 	if (argc <= 2) {
 	  usage (callname, stderr);
 	  exit(EXIT_FAILURE);
 	}
 	pid = atoi(argv[2]); opt = 1;
-      } else if (!strcmp (argv[1], "--top"))
+      } else if (!strcmp (argv[1], "--ps") || !strcmp (argv[1], "--top"))
         top = 1;
       else if (!strcmp (argv[1], "--version")) {
           printf("%s %s\n", callname, VERSION);
           exit(EXIT_SUCCESS);
+      } else if (!strcmp (argv[1], "--output-format") || !strcmp (argv[1], "--of")) {
+	if (argc <= 2) {
+	  usage (callname, stderr);
+	  exit(EXIT_FAILURE);
+	}
+        output_format = parse_output_format(argv[2], callname);
+        opt = 1;
       } else {
 	if (filename) {
-	  fprintf (stderr, "Unrecognized options: %s\n", argv[1]);
+	  fprintf (stderr, "Unrecognized option: %s\n", argv[1]);
 	  usage (callname, stderr);
 	  exit(EXIT_FAILURE);
 	} else
@@ -309,12 +393,8 @@
       argv += opt+1;
     }
 
-  if (show_only != (hwloc_obj_type_t)-1) {
+  if (show_only != (hwloc_obj_type_t)-1)
     merge = 0;
-    force_console = 1;
-  }
-  if (show_cpuset)
-    force_console = 1;
 
   hwloc_topology_set_flags(topology, flags);
 
@@ -326,21 +406,9 @@
   if (merge)
     hwloc_topology_ignore_all_keep_structure(topology);
 
-  if (synthetic)
-    if (hwloc_topology_set_synthetic(topology, synthetic))
-      return EXIT_FAILURE;
-  if (xmlpath) {
-    if (hwloc_topology_set_xml(topology, xmlpath)) {
-      perror("Setting target XML file");
-      return EXIT_FAILURE;
-    }
-  }
-  if (fsysroot) {
-    if (hwloc_topology_set_fsroot(topology, fsysroot)) {
-      perror("Setting target filesystem root");
-      return EXIT_FAILURE;
-    }
-  }
+  if (input)
+    hwloc_utils_enable_input_format(topology, input, input_format, verbose_mode > 1, callname);
+
   if (pid != (hwloc_pid_t) -1 && pid != 0) {
     if (hwloc_topology_set_pid(topology, pid)) {
       perror("Setting target pid");
@@ -361,52 +429,82 @@
     verbose_mode--;
   }
 
-  if (!filename) {
+  /* if the output format wasn't enforced, look at the filename */
+  if (filename && output_format == LSTOPO_OUTPUT_DEFAULT) {
+    if (!strcmp(filename, "-")
+	|| !strcmp(filename, "/dev/stdout")) {
+      output_format = LSTOPO_OUTPUT_CONSOLE;
+    } else {
+      char *dot = strrchr(filename, '.');
+      if (dot)
+        output_format = parse_output_format(dot+1, callname);
+    }
+  }
+
+  /* if  the output format wasn't enforced, think a bit about what the user probably want */
+  if (output_format == LSTOPO_OUTPUT_DEFAULT) {
+    if (show_cpuset
+        || show_only != (hwloc_obj_type_t)-1
+        || verbose_mode != LSTOPO_VERBOSE_MODE_DEFAULT)
+      output_format = LSTOPO_OUTPUT_CONSOLE;
+  }
+
+  switch (output_format) {
+    case LSTOPO_OUTPUT_DEFAULT:
 #ifdef HWLOC_HAVE_CAIRO
 #if CAIRO_HAS_XLIB_SURFACE && defined HWLOC_HAVE_X11
-    if (!force_console && getenv("DISPLAY"))
-      output_x11(topology, NULL, logical, verbose_mode);
-    else
+      if (getenv("DISPLAY"))
+        output_x11(topology, NULL, logical, verbose_mode);
+      else
 #endif /* CAIRO_HAS_XLIB_SURFACE */
 #endif /* HWLOC_HAVE_CAIRO */
 #ifdef HWLOC_WIN_SYS
-      output_windows(topology, NULL, logical, verbose_mode);
+        output_windows(topology, NULL, logical, verbose_mode);
 #else
-    output_console(topology, NULL, logical, verbose_mode);
+      output_console(topology, NULL, logical, verbose_mode);
 #endif
-  } else if (!strcmp(filename, "-")
-	  || !strcmp(filename, "/dev/stdout"))
-    output_console(topology, filename, logical, verbose_mode);
-  else if (strstr(filename, ".txt"))
-    output_text(topology, filename, logical, verbose_mode);
-  else if (strstr(filename, ".fig"))
-    output_fig(topology, filename, logical, verbose_mode);
+      break;
+
+    case LSTOPO_OUTPUT_CONSOLE:
+      output_console(topology, filename, logical, verbose_mode);
+      break;
+    case LSTOPO_OUTPUT_TEXT:
+      output_text(topology, filename, logical, verbose_mode);
+      break;
+    case LSTOPO_OUTPUT_FIG:
+      output_fig(topology, filename, logical, verbose_mode);
+      break;
 #ifdef HWLOC_HAVE_CAIRO
-#if CAIRO_HAS_PNG_FUNCTIONS
-  else if (strstr(filename, ".png"))
-    output_png(topology, filename, logical, verbose_mode);
-#endif /* CAIRO_HAS_PNG_FUNCTIONS */
-#if CAIRO_HAS_PDF_SURFACE
-  else if (strstr(filename, ".pdf"))
-    output_pdf(topology, filename, logical, verbose_mode);
-#endif /* CAIRO_HAS_PDF_SURFACE */
-#if CAIRO_HAS_PS_SURFACE
-  else if (strstr(filename, ".ps"))
-    output_ps(topology, filename, logical, verbose_mode);
+# if CAIRO_HAS_PNG_FUNCTIONS
+    case LSTOPO_OUTPUT_PNG:
+      output_png(topology, filename, logical, verbose_mode);
+      break;
+# endif /* CAIRO_HAS_PNG_FUNCTIONS */
+# if CAIRO_HAS_PDF_SURFACE
+    case LSTOPO_OUTPUT_PDF:
+      output_pdf(topology, filename, logical, verbose_mode);
+      break;
+# endif /* CAIRO_HAS_PDF_SURFACE */
+# if CAIRO_HAS_PS_SURFACE
+    case LSTOPO_OUTPUT_PS:
+      output_ps(topology, filename, logical, verbose_mode);
+      break;
 #endif /* CAIRO_HAS_PS_SURFACE */
 #if CAIRO_HAS_SVG_SURFACE
-  else if (strstr(filename, ".svg"))
-    output_svg(topology, filename, logical, verbose_mode);
+    case LSTOPO_OUTPUT_SVG:
+      output_svg(topology, filename, logical, verbose_mode);
+      break;
 #endif /* CAIRO_HAS_SVG_SURFACE */
 #endif /* HWLOC_HAVE_CAIRO */
 #ifdef HWLOC_HAVE_XML
-  else if (strstr(filename, ".xml"))
-    output_xml(topology, filename, logical, verbose_mode);
+    case LSTOPO_OUTPUT_XML:
+      output_xml(topology, filename, logical, verbose_mode);
+      break;
 #endif
-  else {
-    fprintf(stderr, "file format not supported\n");
-    usage(callname, stderr);
-    exit(EXIT_FAILURE);
+    default:
+      fprintf(stderr, "file format not supported\n");
+      usage(callname, stderr);
+      exit(EXIT_FAILURE);
   }
 
   hwloc_topology_destroy (topology);

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.h	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/lstopo.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -1,5 +1,7 @@
 /*
- * Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
  * See COPYING in top-level directory.
  */
 
@@ -11,6 +13,7 @@
 
 extern hwloc_obj_type_t show_only;
 extern int show_cpuset;
+extern int taskset;
 extern hwloc_pid_t pid;
 
 typedef void output_method (struct hwloc_topology *topology, const char *output, int logical, int verbose_mode);

Added: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/misc.h
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/misc.h	                        (rev 0)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/misc.h	2010-11-24 09:21:55 UTC (rev 7494)
@@ -0,0 +1,204 @@
+/*
+ * Copyright © 2009 CNRS
+ * Copyright © 2009-2010 INRIA
+ * Copyright © 2009-2010 Université Bordeaux 1
+ * Copyright © 2009 Cisco Systems, Inc.  All rights reserved.
+ * See COPYING in top-level directory.
+ */
+
+#include <private/config.h>
+#include <hwloc.h>
+
+#include <stdio.h>
+#include <string.h>
+#include <sys/stat.h>
+#include <unistd.h>
+#include <assert.h>
+
+extern void usage(const char *name, FILE *where);
+
+static inline void
+hwloc_utils_input_format_usage(FILE *where, int addspaces)
+{
+#ifdef HWLOC_HAVE_XML
+  fprintf (where, "  --input <XML file>\n");
+  fprintf (where, "  -i <XML file>   %*sRead topology from XML file <path>\n",
+	   addspaces, " ");
+#endif
+#ifdef HWLOC_LINUX_SYS
+  fprintf (where, "  --input <directory>\n");
+  fprintf (where, "  -i <directory>  %*sRead topology from chroot containing the /proc and /sys\n",
+	   addspaces, " ");
+  fprintf (where, "                  %*sof another system\n",
+	   addspaces, " ");
+#endif
+  fprintf (where, "  --input \"n:2 2\"\n");
+  fprintf (where, "  -i \"n:2 2\"      %*sSimulate a fake hierarchy, here with 2 NUMA nodes of 2\n",
+	   addspaces, " ");
+  fprintf (where, "                  %*sprocessors\n",
+	   addspaces, " ");
+  fprintf (where, "  --input-format <format>\n");
+  fprintf (where, "  --if <format>   %*sEnforce input format among "
+#ifdef HWLOC_HAVE_XML
+	   "xml, "
+#endif
+#ifdef HWLOC_LINUX_SYS
+	   "fsroot, "
+#endif
+	   "synthetic\n",
+	   addspaces, " ");
+}
+
+enum hwloc_utils_input_format {
+  HWLOC_UTILS_INPUT_DEFAULT,
+  HWLOC_UTILS_INPUT_XML,
+  HWLOC_UTILS_INPUT_FSROOT,
+  HWLOC_UTILS_INPUT_SYNTHETIC
+};
+
+static inline enum hwloc_utils_input_format
+hwloc_utils_parse_input_format(const char *name, const char *callname)
+{
+  if (!strncasecmp(name, "default", 3))
+    return HWLOC_UTILS_INPUT_DEFAULT;
+  else if (!strncasecmp(name, "xml", 1))
+    return HWLOC_UTILS_INPUT_XML;
+  else if (!strncasecmp(name, "fsroot", 1))
+    return HWLOC_UTILS_INPUT_FSROOT;
+  else if (!strncasecmp(name, "synthetic", 1))
+    return HWLOC_UTILS_INPUT_SYNTHETIC;
+
+  fprintf(stderr, "input format `%s' not supported\n", name);
+  usage(callname, stderr);
+  exit(EXIT_FAILURE);
+}
+
+static inline int
+hwloc_utils_lookup_input_option(char *argv[], int argc, int *consumed_opts,
+				char **inputp, enum hwloc_utils_input_format *input_formatp,
+				const char *callname)
+{
+  if (!strcmp (argv[0], "--input")
+	       || !strcmp (argv[0], "-i")) {
+    if (argc <= 1) {
+      usage (callname, stderr);
+      exit(EXIT_FAILURE);
+    }
+    if (strlen(argv[1]))
+      *inputp = argv[1];
+    else
+      *inputp = NULL;
+    *consumed_opts = 1;
+    return 1;
+  }
+  else if (!strcmp (argv[0], "--input-format")
+	   || !strcmp (argv[0], "--if")) {
+    if (argc <= 1) {
+      usage (callname, stderr);
+      exit(EXIT_FAILURE);
+    }
+    *input_formatp = hwloc_utils_parse_input_format (argv[1], callname);
+    *consumed_opts = 1;
+    return 1;
+  }
+
+  /* backward compat with 1.0 */
+  else if (!strcmp (argv[0], "--synthetic")) {
+    if (argc <= 1) {
+      usage (callname, stderr);
+      exit(EXIT_FAILURE);
+    }
+    *inputp = argv[1];
+    *input_formatp = HWLOC_UTILS_INPUT_SYNTHETIC;
+    *consumed_opts = 1;
+    return 1;
+  } else if (!strcmp (argv[0], "--xml")) {
+    if (argc <= 1) {
+      usage (callname, stderr);
+      exit(EXIT_FAILURE);
+    }
+    *inputp = argv[1];
+    *input_formatp = HWLOC_UTILS_INPUT_XML;
+    *consumed_opts = 1;
+    return 1;
+  } else if (!strcmp (argv[0], "--fsys-root")) {
+    if (argc <= 1) {
+      usage (callname, stderr);
+      exit(EXIT_FAILURE);
+    }
+    *inputp = argv[1];
+    *input_formatp = HWLOC_UTILS_INPUT_FSROOT;
+    *consumed_opts = 1;
+    return 1;
+  }
+
+  return 0;
+}
+
+static inline int
+hwloc_utils_enable_input_format(struct hwloc_topology *topology,
+				const char *input,
+				enum hwloc_utils_input_format input_format,
+				int verbose, const char *callname)
+{
+  if (input_format == HWLOC_UTILS_INPUT_DEFAULT) {
+    struct stat inputst;
+    int err;
+    err = stat(input, &inputst);
+    if (err < 0) {
+      if (verbose)
+	printf("assuming `%s' is a synthetic topology description\n", input);
+      input_format = HWLOC_UTILS_INPUT_SYNTHETIC;
+    } else if (S_ISDIR(inputst.st_mode)) {
+      if (verbose)
+	printf("assuming `%s' is a file-system root\n", input);
+      input_format = HWLOC_UTILS_INPUT_FSROOT;
+    } else if (S_ISREG(inputst.st_mode)) {
+      if (verbose)
+	printf("assuming `%s' is a XML file\n", input);
+      input_format = HWLOC_UTILS_INPUT_XML;
+    } else {
+      fprintf (stderr, "Unrecognized input file: %s\n", input);
+      usage (callname, stderr);
+    }
+  }
+
+  switch (input_format) {
+  case HWLOC_UTILS_INPUT_XML:
+#ifdef HWLOC_HAVE_XML
+    if (!strcmp(input, "-"))
+      input = "/dev/stdin";
+    if (hwloc_topology_set_xml(topology, input)) {
+      perror("Setting target XML file");
+      return EXIT_FAILURE;
+    }
+#else /* HWLOC_HAVE_XML */
+    fprintf(stderr, "This installation of hwloc does not support XML, sorry.\n");
+    exit(EXIT_FAILURE);
+#endif /* HWLOC_HAVE_XML */
+    break;
+
+  case HWLOC_UTILS_INPUT_FSROOT:
+#ifdef HWLOC_LINUX_SYS
+    if (hwloc_topology_set_fsroot(topology, input)) {
+      perror("Setting target filesystem root");
+      return EXIT_FAILURE;
+    }
+#else /* HWLOC_LINUX_SYS */
+    fprintf(stderr, "This installation of hwloc does not support changing the file-system root, sorry.\n");
+    exit(EXIT_FAILURE);
+#endif /* HWLOC_LINUX_SYS */
+    break;
+
+  case HWLOC_UTILS_INPUT_SYNTHETIC:
+    if (hwloc_topology_set_synthetic(topology, input))
+      return EXIT_FAILURE;
+    break;
+
+  case HWLOC_UTILS_INPUT_DEFAULT:
+    assert(0);
+  }
+
+  return 0;
+}
+

Modified: mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/test-hwloc-distrib.sh.in
===================================================================
--- mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/test-hwloc-distrib.sh.in	2010-11-24 09:18:34 UTC (rev 7493)
+++ mpich2/trunk/src/pm/hydra/tools/bind/hwloc/hwloc/utils/test-hwloc-distrib.sh.in	2010-11-24 09:21:55 UTC (rev 7494)
@@ -2,7 +2,9 @@
 #-*-sh-*-
 
 #
-# Copyright © 2009 CNRS, INRIA, Université Bordeaux 1
+# Copyright © 2009 CNRS
+# Copyright © 2009-2010 INRIA
+# Copyright © 2009 Université Bordeaux 1
 # See COPYING in top-level directory.
 #
 
@@ -20,17 +22,17 @@
 
 set -e
 (
-  ./hwloc-distrib --synthetic "2 2 2" 2
+  ./hwloc-distrib --if synthetic --input "2 2 2" 2
   echo
-  ./hwloc-distrib --synthetic "2 2 2" 4
+  ./hwloc-distrib --if synthetic --input "2 2 2" 4
   echo
-  ./hwloc-distrib --synthetic "2 2 2" 8
+  ./hwloc-distrib --if synthetic --input "2 2 2" 8
   echo
-  ./hwloc-distrib --synthetic "2 2 2" 13
+  ./hwloc-distrib --if synthetic --input "2 2 2" 13
   echo
-  ./hwloc-distrib --synthetic "2 2 2" 16
+  ./hwloc-distrib --if synthetic --input "2 2 2" 16
   echo
-  ./hwloc-distrib --synthetic "3 3 3" 4
+  ./hwloc-distrib --if synthetic --input "3 3 3" 4
 ) > "$file"
 diff @HWLOC_DIFF_U@ $srcdir/test-hwloc-distrib.output "$file"
 rm -rf "$tmp"



More information about the mpich2-commits mailing list